1

首先,我将 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 客户端知道提交失败)。

失败后的 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以确保解决方案不会失败,但我仍然遇到问题。

当然,我已经检查了 CLI 中的 post-commit 命令,它可以工作。

我已将此行添加到提交后脚本中:

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

分辨率工作得很好......也许是一个 wget 问题。

刚刚用 curl 等效替换 wget 调用,同样的问题:

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

2 回答 2

1

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

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

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

于 2012-04-04T10:37:31.740 回答
0

升级到 Ubuntu 14.04 LTS 后,我遇到了同样的问题(不确定升级是否真的相关)。但是,我可以通过在我的 post-commit 挂钩中向 wget 添加显式超时配置来解决它:

wget \
   --timeout=10 \
   --dns-timeout=10 \
...
于 2014-08-16T21:30:09.810 回答