[
https://issues.apache.org/jira/browse/CXF-8895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Manuel updated CXF-8895:
------------------------
Description:
Hello,
we discovered an issue that causes a deadlock with large payloads which exceeds
the chunk-length (that is used as buffer size for an {{{}PipedInputStream{}}})
when sending a message to a currently offline/not-available server.
Even when setting the {{ConnectionTimeout}} for the HTTPConduit to e.g.,
1000ms, the timeout does not occur. (the {{ReceiveTimeout}} works as expected)
The feature that introduced the new HttpClientHTTPConduit was CXF-8840 in
[Commit|https://github.com/apache/cxf/commit/1e7169c627d6908118f99dc98d774ffb53dd38c6].
What was {*}expected{*}:
Any type of timeout-related exception.
What *actually* happened:
The thread runs into a deadlock.
How to {*}reproduce{*}:
Run {{org.apache.cxf.systest.dispatch.DispatchClientServerTest.testTimeout()}}
and increase the payload of {{resources/GreetMeDocLiteralReq.xml}} (or use the
attachment provided). The test will not terminate after the given timeout, the
rest will run indefinitely.
The {{{}PipedInputStream{}}}'s read method was never called (server offline),
hence the {{{}PipedOutputStream{}}}'s write method can't continue to write the
data -> Deadlock.
{{Regards,}}
{{Manuel}}
was:
Hello,
we discovered an issue that causes a deadlock with large payloads which exceeds
the chunk-length (that is used as buffer size for an {{{}PipedInputStream{}}})
when sending a message to a currently offline/not-available server.
Even when setting the {{ConnectionTimeout}} for the HTTPConduit to e.g.,
1000ms, the timeout does not occur. (the {{ReceiveTimeout}} works as expected)
The feature that introduced the new HttpClientHTTPConduit was CXF-8840 in
[Commit|https://github.com/apache/cxf/commit/1e7169c627d6908118f99dc98d774ffb53dd38c6].
What was {*}expected{*}:
Any type of timeout-related exception.
What *actually* happened:
The thread runs into a deadlock.
How to {*}reproduce{*}:
Run {{org.apache.cxf.systest.dispatch.DispatchClientServerTest.testTimeout()}}
and increase the payload of {{resources/GreetMeDocLiteralReq.xml}} (or use the
attachment provided). The test will not terminate after the given timeout, the
rest will run indefinitely.
The {{{}PipedInputStream{}}}'s read method was never called (server offline),
hence the {{{}PipedOutputStream{}}}'s write method can't continue to write the
data.-> Deadlock.
{{Regards,}}
{{Manuel}}
> Deadlock with new HttpClientHTTPConduit using large payloads against offline
> SOAP Server
> ----------------------------------------------------------------------------------------
>
> Key: CXF-8895
> URL: https://issues.apache.org/jira/browse/CXF-8895
> Project: CXF
> Issue Type: Bug
> Affects Versions: 3.6.0, 3.6.1, 3.6.2
> Reporter: Manuel
> Priority: Major
> Attachments: GreetMeDocLiteralReq.xml
>
>
> Hello,
>
> we discovered an issue that causes a deadlock with large payloads which
> exceeds the chunk-length (that is used as buffer size for an
> {{{}PipedInputStream{}}}) when sending a message to a currently
> offline/not-available server.
> Even when setting the {{ConnectionTimeout}} for the HTTPConduit to e.g.,
> 1000ms, the timeout does not occur. (the {{ReceiveTimeout}} works as expected)
> The feature that introduced the new HttpClientHTTPConduit was CXF-8840 in
> [Commit|https://github.com/apache/cxf/commit/1e7169c627d6908118f99dc98d774ffb53dd38c6].
>
> What was {*}expected{*}:
> Any type of timeout-related exception.
>
> What *actually* happened:
> The thread runs into a deadlock.
>
> How to {*}reproduce{*}:
> Run
> {{org.apache.cxf.systest.dispatch.DispatchClientServerTest.testTimeout()}}
> and increase the payload of {{resources/GreetMeDocLiteralReq.xml}} (or use
> the attachment provided). The test will not terminate after the given
> timeout, the rest will run indefinitely.
> The {{{}PipedInputStream{}}}'s read method was never called (server offline),
> hence the {{{}PipedOutputStream{}}}'s write method can't continue to write
> the data -> Deadlock.
>
> {{Regards,}}
> {{Manuel}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)