vCenter Server Appliance 6.0 performance charts fail to load with the error: Performance Charts service returned an invalid response
book
Article ID: 338135
calendar_today
Updated On:
Products
VMware vCenter Server
Issue/Introduction
Symptoms:
IPv6 is disabled in the vCenter Server Appliance
You see the error:
Performance Charts Service returns an invalid response.
In the /var/log/vmware/perfcharts/wrapper.log file, you see entries similar to: | <Month DD, YYYY><time> com.springsource.tcserver.security.PropertyDecoder < init > </time>jvm 1 | INFO: tcServer Runtime property decoder has been initialized in 2016 ms jvm 1 | <Month DD, YYYY><time> org.apache.coyote.AbstractProtocol init </time>jvm 1 | INFO: Initializing ProtocolHandler ["http-bio-127.0.0.1-13080"] jvm 1 | <Month DD, YYYY><time> AM org.apache.coyote.AbstractProtocol init </time>jvm 1 | INFO: Initializing ProtocolHandler ["http-bio-0:0:0:0:0:0:0:1-13080"] jvm 1 | <Month DD, YYYY><time> AM org.apache.coyote.AbstractProtocol init </time>jvm 1 | SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-0:0:0:0:0:0:0:1-13080"] jvm 1 | java.net.SocketException: Protocol family unavailable jvm 1 | at java.net.PlainSocketImpl.socketBind(Native Method) jvm 1 | at java.net.AbstractPlainSocketImpl.bind(Unknown Source) jvm 1 | at java.net.ServerSocket.bind(Unknown Source) jvm 1 | at java.net.ServerSocket.< init >(Unknown Source) jvm 1 | at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:55) jvm 1 | at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:401) jvm 1 | at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:646) jvm 1 | at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434) jvm 1 | at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119) jvm 1 | at org.apache.catalina.connector.Connector.initInternal(Connector.java:978) jvm 1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) jvm 1 | at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) jvm 1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) jvm 1 | at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:821) jvm 1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) jvm 1 | at org.apache.catalina.startup.Catalina.load(Catalina.java:638) jvm 1 | at org.apache.catalina.startup.Catalina.load(Catalina.java:663) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) jvm 1 | at java.lang.reflect.Method.invoke(Unknown Source) jvm 1 | at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280) jvm 1 | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) jvm 1 | at java.lang.reflect.Method.invoke(Unknown Source) jvm 1 | at org.tanukisoftware.wrapper.WrapperStartStopApp.run(WrapperStartStopApp.java:264) jvm 1 | at java.lang.Thread.run(Unknown Source)
Note: The preceding log excerpts are only examples. Date, time, and environmental variables may vary depending on your environment.
Environment
VMware vCenter Server Appliance 6.0.x
Cause
This issue is caused by IPv6 being disabled on the vCenter Server Appliance. The performance charts by default use IPv6 for communication and will not use IPv4 unless configured to do so.
Resolution
To resolve this issue, perform one of these options to disable IPv6 on the performance charts:
Disable IPv6 for the performance charts from the /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf file.
Open the vCenter Server console and log in as root.
Open /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf with a text editor:
vi /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf
Edit the line wrapper.java.additional.12=-Djava.net.preferIPv6Stack= to be false:
For example:
# Next three parameters are setting the garbage collBackector to ConcMarkSweep and are # enabling it to collect unused classes. wrapper.java.additional.9=-XX:+UseConcMarkSweepGC wrapper.java.additional.10=-XX:+CMSClassUnloadingEnabled wrapper.java.additional.11=-XX:+CMSPermGenSweepingEnabled wrapper.java.additional.12=-Djava.net.preferIPv6Stack=false
Save the changes and close the file.
Restart the performance chart service with these commands:
service-control --stop vmware-perfcharts
Then:
service-control --start vmware-perfcharts
Verify the service is running with this command:
service-control --status vmware-perfcharts
Disable IPv6 for the performance charts from the /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml file.
Open the vCenter Server console and log in as root.