Skip to main content
Pure Technical Services

Troubleshooting: vSphere Plugin 4.2.0 and 3.1.3 does not allow adding arrays in certain versions of vCenter

Currently viewing public documentation. Please login to access the full scope of documentation.

KP_Ext_Announcement.png

Problem Identified by Customer

After the plugin is successfully installed, if you aren't able to add arrays to the plugin, you might have an issue that is fixed in plugin version 4.2.1. This issue has been seen on vCenter 5.5, 6.0 and 6.5 with the plugin versions 4.2 and 3.1.3.

In the HTML5 GUI, this is the error you'll see:

image-2019-12-13-08-19-25-595.png

Whereas in FLEX/FLASH you'll see something different:

screenshot-20200107-114217.png 

In this latter case it's vague so you'll need to work further through the Troubleshooting steps to verify the presence of SocketFactory errors in vsphere_client_virgo.log to know whether you've hit this issue for sure or not. 

Troubleshooting

To confirm the issue, please follow the below steps.

1. Go to the virgo logs on the vCenter; if the customer is using HTML5, they'll be at this path: /var/log/vmware/vsphere-ui/logs/vsphere_client_virgo.log

If the customer is using the Flex (Flash) client, they'll be at this path: /var/log/vmware/vsphere-client/logs/vsphere_client_virgo.log

2. You're going to look for this error: errorMessage='javax/net/SocketFactory'

Here is an example of the full body of the error on an HTML5 client:

[2019-12-13T02:23:56.831Z] [INFO ] SsoTokenRenewalExecutor-223  ######## 100029 200004 com.vmware.vsphere.client.security.sso.SsoTokenLifetimeManager    sessionId 100029, clientId 200004, Token expiration time: Sun Jan 12 02:23:56 UTC 2020
Token renewal scheduled approximately for: Sun Jan 12 02:18:56 UTC 2020
[2019-12-13T02:25:37.205Z] [WARN ] http-bio-5090-exec-7          com.purestorage.purestoragehtml.services.FlashArrayServiceImpl    Caught throwable. java.lang.NoClassDefFoundError: javax/net/SocketFactory
        at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:525)
        at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:387)
        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:168)
        at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:326)
        at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:605)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:440)
        at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
        at com.purestorage.purestoragehtml.services.util.FlashArrayHelper.checkConnection(Unknown Source)
        at com.purestorage.purestoragehtml.services.FlashArrayServiceImpl$1.invoke(Unknown Source)
        at com.purestorage.purestoragehtml.services.FlashArrayServiceImpl$1.invoke(Unknown Source)
        at com.purestorage.purestoragehtml.services.logging.TypedPureOperationLogger.invoke(Unknown Source)
        at com.purestorage.purestoragehtml.services.FlashArrayServiceImpl.createFlashArray(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
        at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
        at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at com.sun.proxy.$Proxy778.createFlashArray(Unknown Source)
        at com.purestorage.purestoragehtml.mvc.controller.FlashArrayServiceController.createFlashArray(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:100)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:604)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:565)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at com.vmware.vise.security.SessionManagementFilter.doFilter(SessionManagementFilter.java:134)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:689)
        at org.eclipse.virgo.web.tomcat.support.ApplicationNameTrackingValve.invoke(ApplicationNameTrackingValve.java:33)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:317)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)[2019-12-13T02:25:37.207Z] [ERROR] http-bio-5090-exec-7          com.purestorage.purestoragehtml.services.FlashArrayServiceImpl    createFlashArray : error = TypedPureResponse{error=PureResponseError{code=-4, errorMessage='javax/net/SocketFactory', detailMessage='null'}, result=null}
[2019-12-13T02:25:37.208Z] [INFO ] http-bio-5090-exec-7          com.purestorage.purestoragehtml.services.FlashArrayServiceImpl    createFlashArray : duration = 4 ms, params = CreateFlashArrayRequest(name=420-1, url=flasharray-m20-1.purecloud.com, username=pureuser, password=pureuser), result = TypedPureResponse{error=PureResponseError{code=-4, errorMessage='javax/net/SocketFactory', detailMessage='null'}, result=null}
^C

Resolution

The customer has two options currently:

1. If they are using HTML5, update to plugin version 4.2.1 (to manually update the plugin on the array, follow the instructions here or have the customer install 4.2.1 directly to their vCenter by using this guide for Powershell).
2. If they are using Flash/Flex, uninstall 3.1.3 and install 3.1.1.