svn post-commit Временная ошибка в разрешении имен

Во-первых, я настроил svn для доступа через apache DAV.

Затем у меня есть ловушка после фиксации, которая сообщает серверу непрерывной интеграции jenkins, что хранилище изменилось с помощью простой команды wget (и соберите его):

/opt/local/bin/wget (many-options) https://jenkins.domain.tld/subversion/${UUID}/notifyCommit?rev=$REV >> $LOGFILE

Сценарий проверяет код возврата wget, а затем выводит сообщение об ошибке и завершается с 1 (таким образом, клиент svn знает, что фиксация не удалась).

LOGFILE содержит после сбоя:

--2012-04-04 10:56:54--  https://jenkins.domain.tld/subversion/4d729FFF-FFFF-4fb8-b8b5-be083cf6fe96/notifyCommit?rev=302
Résolution de jenkins.domain.tld (jenkins.domain.tld)... échec: Temporary failure in name resolution.
wget : impossible de résoudre l'adresse de l'hôte «jenkins.domain.tld»

Гостья jenkins.domain.tld был добавлен в /etc/hosts чтобы быть уверенным, что разрешение не может потерпеть неудачу, но у меня все еще есть проблема.

Конечно, я проверил команду post-commit из CLI, и она работает.

Я добавил эту строку в скрипт post-commit:

/usr/bin/host jenkins.domain.tld >> $LOGFILE

И разрешение работает просто отлично... может быть, проблема Wget.

Только что заменил wget call на эквивалент curl, та же проблема:

curl: (6) Couldn't resolve host 'jenkins.domain.tld'

2 ответа

Решение

Хорошо, не найдено происхождение проблемы, но есть решение (довольно некрасиво):

Обновление: я решил эту проблему, полностью остановив apache, подождав некоторое время, а затем снова запустив его. Но это не объясняет причину такого поведения (и, следовательно, нет удовлетворительного решения). Поэтому я оставляю это открытым.

От: https://serverfault.com/questions/129772/php-gethostbyname-suddenly-no-longer-resolves-names-to-ips-when-run-in-apache

После обновления до Ubuntu 14.04 LTS у меня возникла та же проблема (не уверен, было ли это обновление действительно связано). Тем не менее, я мог бы решить эту проблему, добавив явную конфигурацию тайм-аута в wget в моей ловушке post-commit:

wget \
   --timeout=10 \
   --dns-timeout=10 \
...
Другие вопросы по тегам