Issue
-
The Jenkins logs are polluted with SEVERE messages like the following:
SEVERE: Extended label are not currently supported. Dec 17, 2018 4:23:36 PM javax.jmdns.impl.DNSIncoming$MessageInputStream readName SEVERE: Extended label are not currently supported. Dec 17, 2018 4:23:36 PM javax.jmdns.impl.DNSIncoming$MessageInputStream readName SEVERE: bad domain name: possible circular name detected. Bad offset: 0xffffffff at 0x69 Dec 17, 2018 4:23:36 PM javax.jmdns.impl.constants.DNSRecordType typeForIndex SEVERE: Could not find record type for index: -1 Dec 17, 2018 4:23:36 PM javax.jmdns.impl.DNSIncoming readQuestion SEVERE: Could not find record type: dns[query,192.168.123.123:4321, length=107, id=0x0] 0: 0000000000010000 0001000043746561 6d732d746573746e 65776d6173746572 ........ ....Ctea ms-testn ewmaster 20: 2d302d7465616d73 2d746573746e6577 6d61737465722d64 656661756c742d73 -0-teams -testnew controller-d efault-s 40: 76632d636c757374 65722d6c6f63616c 056c6f63616c0000 ff0001c00c000100 vc-clust er-local .local.. ........ 60: 0100000e100004c0 a8c881 [...]
Environment
-
CloudBees CI (CloudBees Core) on modern cloud platforms - Managed controller
-
CloudBees CI (CloudBees Core) on modern cloud platforms - Operations Center
-
CloudBees Jenkins Enterprise
-
CloudBees Jenkins Enterprise - Managed controller
-
CloudBees Jenkins Enterprise - Operations center
Explanation
These logs are generated by JmDNS, a DNS multicast library that Jenkins uses for its auto-discovery feature.
At the moment of writing this article:
-
Jenkins uses an old fork of that library jenkinsci/jmdns
-
the auto-discovery feature is enabled by default
These SEVERE messages appear when Jenkins receives DNS Messages of a type that is not supported. Whether an instance is impacted or not strongly depends on the environment where it runs.
Resolution
There is a known improvement issue JENKINS-50816 to disable the DNS Multicast functionality by default or even detach it from Jenkins core. Until then, the workaround is to disable the functionality by adding the system property -Dhudson.DNSMultiCast.disabled=true
on Jenkins startup - see How to add Java arguments to Jenkins? to understand how to do this. A restart is required to apply the changes.