Некоторое время назад я установил Hudson deamon на одном сервере (работающем при тестировании debian lenny). Все работало, пока не сделал апгрейд. В настоящее время Hudson недоступен на порту 8080 (который используется по умолчанию). Я искал проблемы с iptables, однако порт 8080 открыт для INPUT и OUTPUT. Файл конфигурации в / etc / default / hudson вроде в порядке, я его не трогал. А если я сделаю ps aux | grep hudson, работает hudson deamon.
Обновление 1: Что действительно странно для меня, так это то, что в /var/log/hudson/hudson.log я не получаю ошибки:
[Winstone 2010/02/10 17:10:04] - Control thread shutdown successfully
[Winstone 2010/02/10 17:10:04] - Winstone shutdown successfully
Running from: /usr/share/hudson/hudson.war
[Winstone 2010/02/10 17:10:43] - Beginning extraction from war file
hudson home directory: /var/lib/hudson
[Winstone 2010/02/10 17:10:44] - HTTP Listener started: port=8080
[Winstone 2010/02/10 17:10:44] - AJP13 Listener started: port=8009
[Winstone 2010/02/10 17:10:44] - Winstone Servlet Engine v0.9.10 running: controlPort=disabled
10 févr. 2010 17:10:44 hudson.model.Hudson$4 onAttained
INFO: Started initialization
10 févr. 2010 17:10:44 hudson.model.Hudson$4 onAttained
INFO: Listed all plugins
10 févr. 2010 17:10:44 hudson.model.Hudson$4 onAttained
INFO: Prepared all plugins
10 févr. 2010 17:10:44 hudson.model.Hudson$4 onAttained
INFO: Started all plugins
10 févr. 2010 17:10:46 hudson.model.Hudson$4 onAttained
INFO: Loaded all jobs
10 févr. 2010 17:10:46 hudson.model.Hudson$4 onAttained
INFO: Completed initialization
10 févr. 2010 17:10:47 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@caa559d: display name [Root WebApplicationContext]; startup date [Wed Feb 10 17:10:47 CET 2010]; root of context hierarchy
10 févr. 2010 17:10:47 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@caa559d]: org.springframework.beans.factory.support.DefaultListableBeanFactory@40d2f5f1
10 févr. 2010 17:10:47 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@40d2f5f1: defining beans [daoAuthenticationProvider,authenticationManager,userDetailsService]; root of factory hierarchy
10 févr. 2010 17:10:47 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@4d88a387: display name [Root WebApplicationContext]; startup date [Wed Feb 10 17:10:47 CET 2010]; root of context hierarchy
10 févr. 2010 17:10:47 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@4d88a387]: org.springframework.beans.factory.support.DefaultListableBeanFactory@6153e0c0
10 févr. 2010 17:10:47 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6153e0c0: defining beans [filter,legacy]; root of factory hierarchy
10 févr. 2010 17:10:47 hudson.TcpSlaveAgentListener <init>
INFO: JNLP slave agent listener started on TCP port 59750
Обновление 2:
Что я получаю с lsof -i -n -P | grep hudson:
java 28985 hudson 97u IPv6 2002707 0t0 TCP *:8080 (LISTEN)
java 28985 hudson 99u IPv6 2002708 0t0 TCP *:8009 (LISTEN)
java 28985 hudson 147u IPv6 2002711 0t0 TCP *:59750 (LISTEN)
java 28985 hudson 150u IPv6 2002712 0t0 UDP *:33848
Я не знаю, что могу проверить. Есть ли у кого-нибудь идея, чтобы помочь мне решить эту проблему?
После расследования я считаю, что знаю, откуда взялась проблема:
lsof -i -n -P | |grep hudson
java 28985 hudson 97u IPv6 2002707 0t0 TCP *:8080 (LISTEN)
java 28985 hudson 99u IPv6 2002708 0t0 TCP *:8009 (LISTEN)
java 28985 hudson 147u IPv6 2002711 0t0 TCP *:59750 (LISTEN)
java 28985 hudson 150u IPv6 2002712 0t0 UDP *:33848
Как видите, все службы Hudson используют ipv6. Чтобы решить эту проблему, мне нужно заставить java запускать hudson с ipv4, а не ipv6, отредактировав / etc / default / hudson:
JAVA_ARGS = "- Djava.net.preferIPv4Stack = true"
А теперь все работает!
Спасибо за вашу помощь :)
ОБНОВИТЬ: Эта ошибка возникла из-за моего дистрибутива: Debian Lenny Testing.
Чтобы решить эту проблему, отредактируйте /etc/sysctl.d/bindv6only.conf, чтобы установить net.ipv6.bindv6only на 0.
Эта проблема известна: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560044