nextgenhealthcare / connect

The swiss army knife of healthcare integration.
Other
907 stars 274 forks source link

Web Service Sender - Generate Envelope - 500 Internal Server Error Maxes out CPU #4010

Closed rbeckman-nextgen closed 3 years ago

rbeckman-nextgen commented 4 years ago

Getting Operations from the WSDL URL works just fine, but when attempting to Generate Envelope, I receive a 500 Internal Server Error with the following stack trace after waiting for the operation to time out. At the same time, the CPU hit near 100% usage when it was previously idling around 2-5% usage.

This does not happen for all Operations, but potentially for Operations that are most likely not defined/served by the Web Service.

` There was an error generating the envelope.

Method failed: HTTP/1.1 500 Internal Server Error com.mirth.connect.client.core.ClientException: Method failed: HTTP/1.1 500 Internal Server Error at com.mirth.connect.client.core.ServerConnection.handleResponse(ServerConnection.java:451) at com.mirth.connect.client.core.ServerConnection.handleResponse(ServerConnection.java:413) at com.mirth.connect.client.core.ServerConnection.executeAsync(ServerConnection.java:274) at com.mirth.connect.client.core.ServerConnection.apply(ServerConnection.java:145) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255) at org.glassfish.jersey.client.JerseyInvocation$3.call(JerseyInvocation.java:722) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:228) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:718) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:459) at org.glassfish.jersey.client.proxy.WebResourceFactory.invoke(WebResourceFactory.java:379) at com.sun.proxy.$Proxy64.generateEnvelope(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 com.mirth.connect.client.core.Client$2.invoke(Client.java:249) at com.sun.proxy.$Proxy64.generateEnvelope(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 com.mirth.connect.client.ui.panels.connectors.ConnectorSettingsPanel$1$1.doInBackground(ConnectorSettingsPanel.java:195) at javax.swing.SwingWorker$1.call(SwingWorker.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at javax.swing.SwingWorker.run(SwingWorker.java:334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded at org.apache.xmlbeans.impl.store.Xobj.ensureParent(Xobj.java:613) at org.apache.xmlbeans.impl.store.Xobj.getNormal(Xobj.java:660) at org.apache.xmlbeans.impl.store.Cur.getNormal(Cur.java:2462) at org.apache.xmlbeans.impl.store.Cur.skip(Cur.java:1269) at org.apache.xmlbeans.impl.store.Cur.moveNode(Cur.java:1838) at org.apache.xmlbeans.impl.store.Cursor.insertNode(Cursor.java:189) at org.apache.xmlbeans.impl.store.Cursor._insertComment(Cursor.java:1783) at org.apache.xmlbeans.impl.store.Cursor.insertComment(Cursor.java:4325) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.determineMinMaxForSample(SampleXmlUtil.java:1127) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1060) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processSequence(SampleXmlUtil.java:1288) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1070) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.createSampleForType(SampleXmlUtil.java:250) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processElement(SampleXmlUtil.java:1183) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1067) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processSequence(SampleXmlUtil.java:1288) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1070) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.createSampleForType(SampleXmlUtil.java:250) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processElement(SampleXmlUtil.java:1183) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1067) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processSequence(SampleXmlUtil.java:1288) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1070) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.createSampleForType(SampleXmlUtil.java:250) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processElement(SampleXmlUtil.java:1183) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1067) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processSequence(SampleXmlUtil.java:1288) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1070) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.createSampleForType(SampleXmlUtil.java:250) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processElement(SampleXmlUtil.java:1183) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1067) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processSequence(SampleXmlUtil.java:1288) at com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil.processParticle(SampleXmlUtil.java:1070) `

Imported Issue. Original Details: Jira Issue Key: MIRTH-4132 Reporter: israelt Created: 2017-03-27T17:36:59.000-0700

rbeckman-nextgen commented 4 years ago

I have since upgraded to Mirth Connect 3.5.1 with 2GB allocated to Mirth Connect and ran into this issue again.

I double checked and its not an issue with the wsdl or xsd's not being available, it has to do with the way soapui is traversing an xsd while attempting to generate the envelope. Most suggestions recommend to allocating more memory to not get that OutOfMemoryError.

Imported Comment. Original Details: Author: israelt Created: 2017-10-20T14:12:33.000-0700

rbeckman-nextgen commented 4 years ago

Sounds like a bug in the third-party SoapUI library? Does adding more memory fix it?

Try with the actual standalone SoapUI product too, does a similar issue occur?

Imported Comment. Original Details: Author: narupley Created: 2017-10-20T14:59:46.000-0700