]
Jim Ma commented on JBWS-4080:
------------------------------
[~stmoebius] : I tried to fix this issue by add some synchronized block when unpublish
wsdl. Can you please copy this patched jar (attached file) to
wildfly-10.1.0.Final/modules/system/layers/base/org/jboss/ws/cxf/jbossws-cxf-server/main/
and verify if this works ? Thanks.
Unpublishing WSDL files takes very long (race condition?)
---------------------------------------------------------
Key: JBWS-4080
URL:
https://issues.jboss.org/browse/JBWS-4080
Project: JBoss Web Services
Issue Type: Bug
Components: jbossws-cxf
Affects Versions: jbossws-cxf-5.1.5.Final, jbossws-cxf-5.1.6.Final,
jbossws-cxf-5.1.7.Final, jbossws-cxf-5.1.8.Final, jbossws-cxf-5.1.9.Final
Environment: Windows, Java 8, Wildfly 10.1
Reporter: Stefan Moebius
Priority: Major
Fix For: jbossws-cxf-5.3.0.Final
Attachments: jbossws-cxf-server-5.1.5.Final.jar
The change done for JBWS-3992 causes shutdown of Wildfly 10.1 to take much longer,
causing timeouts in the Windows service manager.
The problem appears to be this:
There is a pool of “MSC service threads”. These threads are responsible among other
things for the publishing and also the unpublishing of web services, which involves the
creation and also the deletion of WSDL files, using WSDLFilePublisher. These threads
operate on deployment units, which means the JARs inside an EAR.
The WSDL files are published in this structure:
data/wsdl/Bar.ear/<Foo>.jar/, with one folder for each JAR that has WS.
In jbossws-cxf-5.1.4, each of these threads would delete the files and the folder for one
deployment unit, i.e. one JAR. The impact was that the root folder data/wsdl/Bar.ear/
would remain, which was reported as a JBWS-3992 and fixed in 5.1.5.
The fixed, however, causes each thread to now traverse to the root deployment unit
(Bar.ear) and recursively delete all files under data/wsdl/Bar.ear and the folder itself.
The problem is that this causes multiple threads to attempt to delete the same tree of
files in parallel, at least on Windows causing this to take ages.
The change:
[
https://github.com/jbossws/jbossws-cxf/commit/162c9e4d44f9832de6b6147b3b9...]
As a workaround, we've downgraded to 5.1.4, which made the issue go away.