svn post-commit临时名称parsing失败

首先,我将svnconfiguration为可以通过apache DAV进行访问。

然后我有一个post-commit挂钩,告诉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以确保parsing不会失败,但我仍然有问题。

当然,我已经从CLI检查了提交后的命令,它的工作原理。

我已经将这行添加到post-commit脚本中:

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

和解决scheme工作得很好…也许是一个wget问题。

刚刚用相同的curlreplace了wget调用,同样的问题:

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

好吧,没有找到问题的根源,但一个解决方案(相当丑陋):

更新:我通过完全停止Apache来解决它,等待片刻,然后再次启动它。 但是这并不能解释这种行为的根源(因此没有令人满意的解决方案)。 所以我把这个打开。

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

升级到Ubuntu 14.04 LTS后,我有同样的问题(不知道升级是否真的相关)。 不过,我可以通过在我的post-commit hook中为wget添加显式超时配置来解决它:

 wget \ --timeout=10 \ --dns-timeout=10 \ ...