У меня есть виртуальная машина Xen, на которой я установил Jetty 7.4.5 для запуска экземпляра Hudson. Работал нормально около месяца. Сегодня мы заметили, что Хадсон не может создавать сборки. Проблема заключалась в том, что у нас больше нет места на диске, потому что у нас был файл журнала причала с 34 ГБ данных.
Этот файл содержит множество сообщений о DNS, как показано ниже:
21/09/2011 07:34:30 javax.jmdns.impl.DNSIncoming$MessageInputStream readName
GRAVE: Extended label are not currently supported.
21/09/2011 07:34:30 javax.jmdns.impl.DNSIncoming$MessageInputStream readName
GRAVE: Extended label are not currently supported.
21/09/2011 07:34:30 javax.jmdns.impl.DNSIncoming$MessageInputStream readName
GRAVE: Extended label are not currently supported.
21/09/2011 07:34:30 javax.jmdns.impl.DNSIncoming$MessageInputStream readName
GRAVE: Extended label are not currently supported.
21/09/2011 07:34:30 javax.jmdns.impl.constants.DNSRecordType typeForIndex
GRAVE: Could not find record type for index: 120
21/09/2011 07:34:30 javax.jmdns.impl.DNSIncoming readQuestion
GRAVE: Could not find record type: dns[query,10.10.2.53:5353, length=296, id=0x0, flags=0x6544:aa]
0: 6963654465736372 3d32342d706f7274 2031302f3130302f 3130303020457468 iceDescr =24-port .10/100/ 1000.Eth
20: 65726e6574205377 69746368c02b0021 000100000078001a 00000000a5500c53 ernet.Sw itch.+.! .....x.. .....P.S
40: 7769746368313832 396261056c6f6361 6c00c02b00100001 0000007800bc0d6d witch182 9ba.loca l..+.... ...x...m
60: 6f64656c3d534745 3230303015736572 69616c4e6f3d374e 3430304843303033 odel=SGE 2000.ser ialNo=7N 400HC003
80: 3137126877766572 73696f6e3d30302e 30302e303112666d 56657273696f6e3d 17.hwver sion=00. 00.01.fm Version=
a0: 332e302e302e3137 0d69667665727369 6f6e3d312e30174d 4143416464726573 3.0.0.17 .ifversi on=1.0.M ACAddres
c0: 733d303032323662 3138323962611164 6576696365547970 653d537769746368 s=00226b 1829ba.d eviceTyp e=Switch
e0: 09686f73746e616d 653d2f6465766963 6544657363723d32 342d706f72742031 .hostnam e=/devic eDescr=2 4-port.1
100: 302f3130302f3130 3030204574686572 6e65742053776974 6368c02b00210001 0/100/10 00.Ether net.Swit ch.+.!..
120: 00000078001a0000 ...x....
21/09/2011 07:34:30 javax.jmdns.impl.constants.DNSRecordClass classForIndex
AVISO: Could not find record class for index: 26
Мы скопировали файл журнала в другое место, удалили его с нашего сервера, чтобы освободить место, и заметили, что фактический файл журнала снова заполняется такими сообщениями. Также мы заметили, что пристань использует следующие порты (результат netstat):
tcp6 0 0 :::8080 :::* LISTEN 1598/java
tcp6 0 0 :::55224 :::* LISTEN 1598/java
udp6 0 0 :::33848 :::* 1598/java
udp6 0 0 :::5353 :::* 1598/java
Кто-нибудь знает, почему причал использует порты, отличные от 8080, и откуда приходят эти DNS-сообщения? Мы установили на него только хадсон.
Я не скажу последнего слова по этому поводу, но у меня была такая же проблема при запуске Jenkins (он содержит Hudson).
Хадсон использует Jmdns для реализации обнаружения службы в локальной сети (через широковещательную рассылку). Я считаю, что Хадсон паникует, когда отвечает что-то не с его планеты. Я не знаю, как сделать его счастливым, но в моем случае я отключил эту функцию. С Дженкинсом это происходит следующим образом:
java -Dhudson.DNSMultiCast.disabled=true -jar path/to/jenkins.war
Вы можете отключить регистрацию этих ошибок DNS, изменив настройки ведения журнала в Jenkins.
В веб-интерфейсе Jenkins перейдите по ссылке:
Управление Jenkins -> Системный журнал -> Уровни журнала (слева)
Добавьте следующую запись:
Название: javax.jmdns
Уровень: выключен
Таким образом, вы можете сохранить функцию многоадресной рассылки DNS, но без всех данных журнала.