Bug 1332452 - JMX interface is broken without ipv6
Summary: JMX interface is broken without ipv6
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: BLL.Infra
Version: 3.6.5.1
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified vote
Target Milestone: ---
: ---
Assignee: Ondra Machacek
QA Contact: Pavel Stehlik
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-05-03 09:00 UTC by Fabrice Bacchella
Modified: 2016-05-19 13:31 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-05-19 13:31:14 UTC
oVirt Team: Infra
rule-engine: planning_ack?
rule-engine: devel_ack?
rule-engine: testing_ack?


Attachments (Terms of Use)

Description Fabrice Bacchella 2016-05-03 09:00:47 UTC
When I set to ENGINE_JMX_INTERFACE=public to public on a server without IPv6 (the module ipv6.ko is blacklisted), ovirt-engine brake with this message :

2016-05-03 10:43:09,122 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.serverManagement.controller.management.http: org.jboss.msc.service.StartException in service
 jboss.serverManagement.controller.management.http: JBAS015811: Failed to start the http-interface service
        at org.jboss.as.server.mgmt.UndertowHttpManagementService.start(UndertowHttpManagementService.java:258) [wildfly-server-8.2.1.Final.jar:8.2.1.Final]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_74]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_74]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_74]
Caused by: java.lang.RuntimeException: java.net.SocketException: Protocol family unavailable
        at org.jboss.as.domain.http.server.ManagementHttpServer.start(ManagementHttpServer.java:156)
        at org.jboss.as.server.mgmt.UndertowHttpManagementService.start(UndertowHttpManagementService.java:224) [wildfly-server-8.2.1.Final.jar:8.2.1.Final]
        ... 5 more
Caused by: java.net.SocketException: Protocol family unavailable
        at sun.nio.ch.Net.bind0(Native Method) [rt.jar:1.8.0_74]
        at sun.nio.ch.Net.bind(Net.java:433) [rt.jar:1.8.0_74]
        at sun.nio.ch.Net.bind(Net.java:425) [rt.jar:1.8.0_74]
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) [rt.jar:1.8.0_74]
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) [rt.jar:1.8.0_74]
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67) [rt.jar:1.8.0_74]
        at org.xnio.nio.NioXnioWorker.createTcpConnectionServer(NioXnioWorker.java:182)

And the port 8706 is no longer open.
        at org.xnio.XnioWorker.createStreamConnectionServer(XnioWorker.java:243)
        at org.jboss.as.domain.http.server.ManagementHttpServer.start(ManagementHttpServer.java:135)
        ... 6 more

Comment 1 Ondra Machacek 2016-05-06 13:26:56 UTC
Can you please also share what OS and java vendor and version do you use?

Btw. you can workaround if you change <any-address/> to <any-ipv4-address/>,
but please be aware, that /usr/share/ovirt-engine/services/ovirt-engine/ovirt-engine.xml.in is rewritten 
during upgrades.

Comment 2 Fabrice Bacchella 2016-05-06 13:37:01 UTC
It was an up todate Centos 7.2.1511, fully patched, jvm is java-1.7.0-openjdk-1.7.0.101-2.6.6.1.el7_2.

I tried your workaround and it solve my problem. But it's difficult to use it in real life indeed.

Comment 3 Ondra Machacek 2016-05-09 15:41:04 UTC
Other option, which is not overridden during update is following:

$ cat /etc/ovirt-engine/engine.conf.d/99-ipv4.conf
ENGINE_PROPERTIES="${ENGINE_PROPERTIES} java.net.preferIPv4Stack=true"

If such solution is ok for you, please close this bz.

Comment 4 Ondra Machacek 2016-05-19 12:35:58 UTC
Btw. since wildfly10(oVirt 4) workaround from comment#1 won't work for you, so in order to use ipv4 only use comment#3 workaround.

More info available here[1] in section 'IPv4 versus IPv6':

The system properties java.net.preferIPv4Stack and java.net.preferIPv6Addresses are used to configure the JVM for use with IPv4 or IPv6 addresses. With WildFly, in order to run using IPv4 addresses, you need to specify java.net.preferIPv4Stack=true; in order to run with IPv6 addresses, you need to specify java.net.preferIPv4Stack=false (the JVM default) and java.net.preferIPv6Addresses=true. The latter ensures that any hostname to IP address conversions always return IPv6 address variants.

[1] https://docs.jboss.org/author/display/WFLY10/Interfaces+and+ports

Comment 5 Fabrice Bacchella 2016-05-19 13:31:14 UTC
java.net.preferIPv4Stack=true works for me.


Note You need to log in before you can comment on or make changes to this bug.