Search the VMware Knowledge Base (KB)
View by Article ID

vCenter Server Appliance 6.0 performance charts fail to load with the error: Performance Charts service returned an invalid response (2118223)

  • 14 Ratings

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 >
    jvm 1 | INFO: tcServer Runtime property decoder has been initialized in 2016 ms
    jvm 1 | <Month DD, YYYY><TIME> org.apache.coyote.AbstractProtocol init
    jvm 1 | INFO: Initializing ProtocolHandler ["http-bio-127.0.0.1-13080"]
    jvm 1 | <Month DD, YYYY><TIME> AM org.apache.coyote.AbstractProtocol init
    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
    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.

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.
    1. Open the vCenter Server console and log in as root.
    2. Type shell.set --enabled true and press Enter.
    3. Type shell and press Enter.
    4. Make a backup of the wrapper.conf file:

      cp /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf.old

    5. Open /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf with a text editor:

      vi /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf

    6. 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

    7. Save the changes and close the file.
    8. Restart the performance chart service with these commands:

      service-control --stop vmware-perfcharts

      Then:

      service-control --start vmware-perfcharts

    9. 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.
    1. Open the vCenter Server console and log in as root.
    2. Type shell.set --enabled true and press Enter.
    3. Type shell and press Enter.
    4. Make a backup of the server.xml file:

      cp /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml.old

    5. Open /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml file with a text editor:

      vi /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml

    6. Remove the <!-- IPv6 configuration --> section::

      <!-- IPv6 configuration -->
      <Connector address="::1"
                         acceptCount="300"
                         maxThreads="300"
                         connectionTimeout="20000"
                         executor="tomcatThreadPool"
                         maxKeepAliveRequests="15"
                         port="${bio.http.port}"
                         protocol="org.apache.coyote.http11.Http11Protocol"/>


    7. Save the changes and close the file.
    8. Restart the performance chart service with these commands:

      service-control --stop vmware-perfcharts

      Then:

      service-control --start vmware-perfcharts

    9. Verify the service is running with this command:

      service-control --status vmware-perfcharts

See Also

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 14 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 14 Ratings
Actions
KB: