[ 
https://issues.apache.org/jira/browse/CXF-8926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17763648#comment-17763648
 ] 

wilfried commented on CXF-8926:
-------------------------------

I did another test with a larger file, and it looks like there is still a 
concurrency issue:
{code}
2023-09-11 11:50:59,374 WARN  [org.apa.cxf.pha.PhaseInterceptorChain] 
(executor-thread-1) Interceptor for 
{http://mtom.jaxws.dut.ci.ctie.etat.lu}SaySomethingMtomVer1Service#{http://mtom.jaxws.dut.ci.ctie.etat.lu}addMessage
 has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Could 
not write attachments.
        at 
org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndingInterceptor.handleMessage(AttachmentOutInterceptor.java:128)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:528)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:439)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:354)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:312)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140)
        at jdk.proxy7/jdk.proxy7.$Proxy213.addMessage(Unknown Source)
        at 
lu.etat.ci.fwt.soap.SOAPTestController.callSaySomethingMtomSecuredCIDUT(SOAPTestController.java:138)
        at 
lu.etat.ci.fwt.soap.SOAPTestController$quarkusrestinvoker$callSaySomethingMtomSecuredCIDUT_1b14f2d5ed1a4d42c824e7582903a9f19063cae3.invoke(Unknown
 Source)
        at 
org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
        at 
io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
        at 
org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:145)
        at 
io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:576)
        at 
org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
        at 
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
        at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
        at 
org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: Read end dead
        at 
java.base/java.io.PipedInputStream.checkStateForReceive(PipedInputStream.java:262)
        at 
java.base/java.io.PipedInputStream.awaitSpace(PipedInputStream.java:268)
        at java.base/java.io.PipedInputStream.receive(PipedInputStream.java:231)
        at java.base/java.io.PipedOutputStream.write(PipedOutputStream.java:150)
        at 
org.apache.cxf.transport.http.HttpClientHTTPConduit$HttpClientWrappedOutputStream$1.write(HttpClientHTTPConduit.java:475)
        at 
org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:51)
        at 
org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69)
        at 
org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:81)
        at jakarta.activation.DataHandler.writeTo(DataHandler.java:283)
        at 
org.apache.cxf.attachment.AttachmentSerializer.writeAttachments(AttachmentSerializer.java:318)
        at 
org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndingInterceptor.handleMessage(AttachmentOutInterceptor.java:126)
{code}

> MTOM - Lock while processing attachment
> ---------------------------------------
>
>                 Key: CXF-8926
>                 URL: https://issues.apache.org/jira/browse/CXF-8926
>             Project: CXF
>          Issue Type: Bug
>            Reporter: wilfried
>            Priority: Major
>
> I'm currently implementing a SOAP client to send document with CXF 4.0.1 (the 
> application is quarkus based).
> My client is working fine when firewall is open between my machine and the 
> target server, but in case firewall is closed (for QA environment for 
> example), I was expecting to get a timeout, but it's not the case. The SOAP 
> client stops its execution to the interceptor *AttachmentOutEndingInterceptor 
> *and waits indefinitely.
> After profiling the application, I found out a lock as shown by the below 
> thread dump:
> {code:java}
> "executor-thread-2" #296 daemon prio=5 os_prio=0 cpu=31.25ms elapsed=201.04s 
> tid=0x0000019f9cd475d0 nid=0x5cf8 in Object.wait() [0x0000009645dfe000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(java.base@17.0.2/Native Method)
>         - waiting on <no object reference available>
>         at 
> java.io.PipedInputStream.awaitSpace(java.base@17.0.2/PipedInputStream.java:273)
>         at 
> java.io.PipedInputStream.receive(java.base@17.0.2/PipedInputStream.java:231)
>         - locked <0x0000000613854b08> (a java.io.PipedInputStream)
>         at 
> java.io.PipedOutputStream.write(java.base@17.0.2/PipedOutputStream.java:150)
>         at 
> org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:51)
>         at 
> org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69)
>         at 
> org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:81)
>         at jakarta.activation.DataHandler.writeTo(DataHandler.java:283)
>         at 
> org.apache.cxf.attachment.AttachmentSerializer.writeAttachments(AttachmentSerializer.java:318)
>         at 
> org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndingInterceptor.handleMessage(AttachmentOutInterceptor.java:126)
>         at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
>         - locked <0x0000000613856e30> (a 
> org.apache.cxf.phase.PhaseInterceptorChain)
>         at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:528)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:439)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:354)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:312)
>         at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
>         at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140)
>         at jdk.proxy7.$Proxy235.addMessage(jdk.proxy7/Unknown Source)
>         at 
> lu.etat.ci.fwt.soap.SOAPTestController.callSaySomethingMtomSecuredCIDUT(SOAPTestController.java:138)
>         at 
> lu.etat.ci.fwt.soap.SOAPTestController$quarkusrestinvoker$callSaySomethingMtomSecuredCIDUT_1b14f2d5ed1a4d42c824e7582903a9f19063cae3.invoke(Unknown
>  Source)
>         at 
> org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
>         at 
> io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
>         at 
> org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:145)
>         at 
> io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:576)
>         at 
> org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
>         at 
> org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1512)
>         at 
> org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
>         at 
> org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
>         at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>         at java.lang.Thread.run(java.base@17.0.2/Thread.java:833)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to