[ https://issues.apache.org/jira/browse/CXF-9103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17916224#comment-17916224 ]
Andriy Redko commented on CXF-9103: ----------------------------------- [~douglm] the 3.4.x release line is long out of maintenance, please update to more recent releases if possible. Thank you. > Apparent memory related issues calling getPort > ---------------------------------------------- > > Key: CXF-9103 > URL: https://issues.apache.org/jira/browse/CXF-9103 > Project: CXF > Issue Type: Bug > Components: WS-* Components > Affects Versions: 3.4.10 > Reporter: Mike Douglass > Priority: Minor > > Running a service for many years making batches of SOAP requests to query and > update a system. Recently made updates which required a move to Java17 with > wildfly 26.3 > Started getting intermittent exceptions as shown in the stack trace below. > These were only showing up in the deployed prod system - not on the dev > system or my laptop. Eventually discovered it was the heap allocated to the > jvm which triggered it. With a 2G heap after about 40 calls to getPort it > failed as below. > The main problem I have with this is that there is no indication what the > real error is and the error message doesn't help. Looking at the code there > is some logging at FINE level - DEBUG might be more useful. Also there are a > whole bunch of possible failures which all get expressed as "Unable to > locate/load..." (Mosytly looked at the code in CatalogXmlSchemaURIResolver > and what it called.) > It's probable the code was making an excesssive number of calls to > getService().getPort(...) (every request). I made changes to only create a > Service object once for each URI and only create the port once. This seems to > have fixed my issue. However, lacking any more detailed messages I've had to > guess at this solution. It also leaves open the possibility that this will > fail in the future if memory gets tight for some other reason. > I'd also note that the garbage collection stats don't seem to reflect any > major problems. > I've seen references in other ssues to WeakReference's - is it possible > something is being removed and causing this issue? > > Failed to create service. > at > org.bedework.synch.shared@5.0.11//org.bedework.synch.shared.cnctrs.AbstractConnector.getPort(AbstractConnector.java:270) > at > org.bedework.synch.common@5.0.11//org.bedework.synch.cnctrs.bedework.BedeworkConnector.getPort(BedeworkConnector.java:213) > at > org.bedework.synch.common@5.0.11//org.bedework.synch.cnctrs.bedework.BedeworkConnectorInstance.fetchItem(BedeworkConnectorIn > stance.java:286) > at > org.bedework.synch.common@5.0.11//org.bedework.synch.Synchling.processUpdates(Synchling.java:983) > at > org.bedework.synch.common@5.0.11//org.bedework.synch.Synchling.reSynch(Synchling.java:736) > at > org.bedework.synch.common@5.0.11//org.bedework.synch.Synchling.handleNotification(Synchling.java:132) > at > org.bedework.synch.common@5.0.11//org.bedework.synch.SynchEngineImpl.handleNotification(SynchEngineImpl.java:825) > at > org.bedework.synch.common@5.0.11//org.bedework.synch.SynchEngineImpl$NotificationInThread.run(SynchEngineImpl.java:227) > Caused by: javax.xml.ws.WebServiceException: > org.apache.cxf.service.factory.ServiceConstructionException: Failed to create > service. > at > org.apache.cxf.impl//org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:360) > at > org.apache.cxf.impl//org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:349) > at > javax.xml.ws.api@2.0.0.Final//javax.xml.ws.Service.getPort(Service.java:139) > at > org.bedework.synch.ws.xml@5.0.11//org.bedework.synch.wsmessages.SynchRemoteService.getSynchRSPort(SynchRemoteService.java:72 > ) > at > org.bedework.synch.shared@5.0.11//org.bedework.synch.shared.cnctrs.AbstractConnector.getPort(AbstractConnector.java:266) > ... 7 more > Caused by: org.apache.cxf.service.factory.ServiceConstructionException: > Failed to create service. > at > org.apache.cxf.impl//org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:169) > at > org.apache.cxf.impl//org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionService > FactoryBean.java:407) > at > org.apache.cxf.impl//org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServi > ceFactoryBean.java:527) > at > org.apache.cxf.impl//org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.ja > va:262) > at > org.apache.cxf.impl//org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199) > at > org.apache.cxf.impl//org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactor > y.java:103) > at > org.apache.cxf.impl//org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:91) > at > org.apache.cxf.impl//org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:159) > at > org.apache.cxf.impl//org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:142) > at > org.apache.cxf.impl//org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:492) > at > org.jboss.ws.jaxws-client@5.5.0.Final//org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImp > l.java:580) > at > org.apache.cxf.impl//org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:358) > ... 11 more > Caused by: org.apache.ws.commons.schema.XmlSchemaException: Unable to locate > imported document at 'http://www.w3.org/2001/xml.xsd', rel > ative to 'https://docs.oasis-open.org/xri/xrd/v1.0/os/xrd-1.0-os.xsd'. > at > org.apache.cxf@3.4.10//org.apache.cxf.catalog.CatalogXmlSchemaURIResolver.resolveEntity(CatalogXmlSchemaURIResolver.java:76) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:682) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:536) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1524) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:656) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:154) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:509) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:717) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:703) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:536) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1524) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:656) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:154) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:509) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:717) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:703) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:536) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1524) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:656) > at > org.apache.ws.xmlschema//org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:551) > at > org.apache.cxf@3.4.10//org.apache.cxf.common.xmlschema.SchemaCollection.read(SchemaCollection.java:129) > at > org.apache.cxf.impl//org.apache.cxf.wsdl11.SchemaUtil.extractSchema(SchemaUtil.java:145) > at > org.apache.cxf.impl//org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:74) > at > org.apache.cxf.impl//org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:66) > at > org.apache.cxf.impl//org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:61) > at > org.apache.cxf.impl//org.apache.cxf.wsdl11.WSDLServiceBuilder.getSchemas(WSDLServiceBuilder.java:378) > at > org.apache.cxf.impl//org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:345) > at > org.apache.cxf.impl//org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:209) > at > org.apache.cxf.impl//org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:161) > ... 22 more -- This message was sent by Atlassian Jira (v8.20.10#820010)