首先,我将svn配置为可以通过apache DAV访问。
然后我有一个post-commit钩子,它通过一个简单的wget命令告诉jenkins持续集成服务器存储库已经更改(并构建它):
/opt/local/bin/wget (many-options) https://jenkins.domain.tld/subversion/${UUID}/notifyCommit?rev=$REV >> $LOGFILE该脚本检查wget返回码,然后回显一条错误消息并返回1退出(这样svn客户机就知道提交失败了)。
出现故障后,日志文件包含:
--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中,以确保解析不会失败,但我仍然有这个问题。
当然,我已经从CLI检查了post-commit命令,并且它工作正常。
我已经将这一行添加到提交后脚本中:
/usr/bin/host jenkins.domain.tld >> $LOGFILE解析器工作得很好。也许是wget的问题。
刚刚将wget调用替换为curl等效项,同样的问题:
curl: (6) Couldn't resolve host 'jenkins.domain.tld'发布于 2012-04-04 18:37:32
好吧,不是找到问题的根源,而是一个解决方案(相当难看):
apache :通过完全停止
,等待片刻,然后重新启动,我同时解决了这个问题。但这并不能解释这种行为的根本原因(因此没有令人满意的解决方案)。所以我把这个打开了。
发布于 2014-08-17 05:30:10
在升级到Ubuntu 14.04 LTS后,我遇到了同样的问题(不确定升级是否真的相关)。但是,我可以通过在提交后钩子中向wget添加显式超时配置来解决这个问题:
wget \
--timeout=10 \
--dns-timeout=10 \
...https://stackoverflow.com/questions/10008234
复制相似问题