[
https://issues.apache.org/jira/browse/CXF-8124?focusedWorklogId=327553&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-327553
]
ASF GitHub Bot logged work on CXF-8124:
---------------------------------------
Author: ASF GitHub Bot
Created on: 13/Oct/19 19:20
Start Date: 13/Oct/19 19:20
Worklog Time Spent: 10m
Work Description: reta commented on pull request #587: CXF-8124: CXF
metrics - MetricsContext#stop called twice or without Fault in certain error
cases
URL: https://github.com/apache/cxf/pull/587
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 327553)
Time Spent: 20m (was: 10m)
> CXF metrics - MetricsContext#stop called twice or without Fault in certain
> error cases
> --------------------------------------------------------------------------------------
>
> Key: CXF-8124
> URL: https://issues.apache.org/jira/browse/CXF-8124
> Project: CXF
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.1.18, 3.3.3
> Reporter: Emile de Weerd
> Assignee: Andriy Redko
> Priority: Major
> Attachments: cxf-metrics-context-stop-issue.tar.xz
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> While using the CXF metrics feature with a CXF REST client, in some situation
> there are incoherent calls to the MetricsContext#stop method. 2 cases can be
> isolated: server returns a 404 and the response body transmission is
> interrupted in the middle of the transfer.
> I wrote a unit test that allows to clearly reproduce the 2 use cases. Of
> course they are failing. The test prints out a stacktrace per call to the
> MetricsContext#stop method.
> *notFoundStatusCode_stopCalledOnceWithFaultObjectInExchange*
> [main] INFO cxf.reproducers.CxfMetricsIssueReproducerTest -
> MetricsContext#stop called 2 times
> [main] INFO cxf.reproducers.CxfMetricsIssueReproducerTest - - stop called
> with time = 16408651 ns, inSize = -1, outSize = 0, exchange that contains a
> FaultMode = false; callad at:
> [...]
> at
> org.apache.cxf.metrics.MetricsContext$$EnhancerByMockitoWithCGLIB$$1997d2d2.stop(<generated>)
> at org.apache.cxf.metrics.ExchangeMetrics.stop(ExchangeMetrics.java:75)
> at
> org.apache.cxf.metrics.interceptors.AbstractMetricsInterceptor.stop(AbstractMetricsInterceptor.java:215)
> at
> org.apache.cxf.metrics.interceptors.MetricsMessageInPostInvokeInterceptor.handleMessage(MetricsMessageInPostInvokeInterceptor.java:34)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
> at
> org.apache.cxf.jaxrs.client.ClientMessageObserver.onMessage(ClientMessageObserver.java:56)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1693)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1570)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1371)
> at
> org.apache.cxf.io.AbstractWrappedOutputStream.close(AbstractWrappedOutputStream.java:77)
> at
> org.apache.cxf.metrics.interceptors.CountingOutputStream.close(CountingOutputStream.java:47)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:671)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
> at
> org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:709)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:887)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:335)
> at com.sun.proxy.$Proxy22.getBook(Unknown Source)
> at
> cxf.reproducers.CxfMetricsIssueReproducerTest.notFoundStatusCode_stopCalledOnceWithFaultObjectInExchange(CxfMetricsIssueReproducerTest.java:151)
> [...]
> [main] INFO cxf.reproducers.CxfMetricsIssueReproducerTest - - stop called
> with time = 26412378 ns, inSize = -1, outSize = 0, exchange that contains a
> FaultMode = true; callad at:
> [...]
> at
> org.apache.cxf.metrics.MetricsContext$$EnhancerByMockitoWithCGLIB$$1997d2d2.stop(<generated>)
> at org.apache.cxf.metrics.ExchangeMetrics.stop(ExchangeMetrics.java:75)
> at
> org.apache.cxf.metrics.interceptors.AbstractMetricsInterceptor.stop(AbstractMetricsInterceptor.java:215)
> at
> org.apache.cxf.metrics.interceptors.MetricsMessageInPostInvokeInterceptor.handleMessage(MetricsMessageInPostInvokeInterceptor.java:34)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
> at
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:112)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.checkResponse(ClientProxyImpl.java:434)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.handleResponse(ClientProxyImpl.java:990)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:895)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:335)
> at com.sun.proxy.$Proxy22.getBook(Unknown Source)
> at
> cxf.reproducers.CxfMetricsIssueReproducerTest.notFoundStatusCode_stopCalledOnceWithFaultObjectInExchange(CxfMetricsIssueReproducerTest.java:151)
> [...]
> *incompleteResponse_stopCalledOnceWithFaultObjectInExchange*
> [main] INFO cxf.reproducers.CxfMetricsIssueReproducerTest -
> MetricsContext#stop called 1 times
> [main] INFO cxf.reproducers.CxfMetricsIssueReproducerTest - - stop called
> with time = 14901568 ns, inSize = -1, outSize = 0, exchange that contains a
> FaultMode = false; callad at:
> [...]
> at
> org.apache.cxf.metrics.MetricsContext$$EnhancerByMockitoWithCGLIB$$1997d2d2.stop(<generated>)
> at org.apache.cxf.metrics.ExchangeMetrics.stop(ExchangeMetrics.java:75)
> at
> org.apache.cxf.metrics.interceptors.AbstractMetricsInterceptor.stop(AbstractMetricsInterceptor.java:215)
> at
> org.apache.cxf.metrics.interceptors.MetricsMessageInPostInvokeInterceptor.handleMessage(MetricsMessageInPostInvokeInterceptor.java:34)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
> at
> org.apache.cxf.jaxrs.client.ClientMessageObserver.onMessage(ClientMessageObserver.java:56)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1693)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1570)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1371)
> at
> org.apache.cxf.io.AbstractWrappedOutputStream.close(AbstractWrappedOutputStream.java:77)
> at
> org.apache.cxf.metrics.interceptors.CountingOutputStream.close(CountingOutputStream.java:47)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:671)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
> at
> org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:709)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:887)
> at
> org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:335)
> at com.sun.proxy.$Proxy22.getBook(Unknown Source)
> at
> cxf.reproducers.CxfMetricsIssueReproducerTest.incompleteResponse_stopCalledOnceWithFaultObjectInExchange(CxfMetricsIssueReproducerTest.java:171)
> [...]
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)