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

Robbie Gemmell edited comment on PROTON-2162 at 12/16/19 11:52 AM:
-------------------------------------------------------------------

I agree that use of framing-error is odd and potentially confusing in many 
cases it might currently get used (since its used as a kind of catch-all). To 
be clear, my only argument in the earlier comment was that after testing this 
it didn't really seem to be a newly introduced behaviour at all so much as a 
(in your case) more likely timing variation and therefore not really any 
regression, and especially not a reason to scrub the 0.30.0 release >72hrs into 
the RC1 vote.

On the variability, could it be that multiple conditions are being set on the 
transport and perhaps there is either ordering variation, or just variability 
on whether >1 attempt to set a condition occurs (depending on how many bytes 
in/out are outstanding at the time etc), with the last one 'winning'? I made a 
change (/redid a PR) some time ago to ensure that when the proton-j transport 
had multiple error conditions set on it or was closed prematurely (and thus set 
an error condition on itself), the first effective error condition was always 
the one retained for later use and inspection. Perhaps a similar change would 
help avoid such variability here if it exists.

I'd also be quite fine with changing it to use some other fallback error 
condition. I recently changed proton-j to ensure it used amqp:decode-error for 
internally prompted transport closures that had originated from a decode error 
occurring for example.

I would suggest a new Jira for such changes though, and other issues Andrew 
noted. They can link to this one, but theres likely too much unrelated and 
cross concern discussion here to use it for much at this point.


was (Author: gemmellr):
I agree that use of framing-error is odd and potentially confusing in many 
cases it might currently get used (since its used as a kind of catch-all). To 
be clear, my only argument in the earlier comment was that after testing this 
it didn't really seem to be a newly introduced behaviour at all so much as a 
(in your case) more likely timing variation and therefore not really any 
regression, and especially not a reason to scrub the 0.30.0 release >72hrs into 
the RC1 vote.

On the variability, could it be that multiple conditions are being set on the 
transport and perhaps there is either ordering variation, or just variability 
on whether >1 attempt to set a condition occurs (depending on how many bytes 
in/out are outstanding at the time etc), with the last one 'winning'? I made a 
change (/redid a PR) some time ago to ensure that when the proton-j transport 
had multiple error conditions set on it or was closed prematurely (and thus set 
an error condition on itself), the first effective error condition was always 
the one retained for later use and inspection. Perhaps a similar change would 
help avoid such variability here if it exists.

I'd also be quite fine with changing it to use some other fallback error 
condition. I recently changed proton-j to ensure it used amqp:decode-error for 
internally prompted transport closures that had originated from a decode error 
occurring for example.

> [c] Regression with aborted transfers: connection closes with framing error
> ---------------------------------------------------------------------------
>
>                 Key: PROTON-2162
>                 URL: https://issues.apache.org/jira/browse/PROTON-2162
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: proton-c-0.29.0
>         Environment: Fedora 29, debug build
>            Reporter: Charles E. Rolke
>            Priority: Major
>
> Using normal example code:
>  * run build/cpp/examples/direct_recv
>  * run build/c/examples/send-abort
> Tested against 0.27.1, 0.28.0, 0.29.0, and 0.30.1-rc1
> In all cases direct_recv exits with a 'receiver read failure' upon receiving 
> the first aborted transfer.
> In older versions (before 0.30.x) send_abort receives a close with error:
> {noformat}
>  0 -> @close(24) [error=@error(29) [condition=:"proton:io", 
> description="Connection reset by peer - on write to :5672 (connection 
> aborted)"]]
> {noformat}
> In the 0.30.1-rc1 version the send_abort receives a close with error:
> {noformat}
>  AMQP:FRAME:0 -> @close(24) [error=@error(29) 
> [condition=:"amqp:connection:framing-error", description="connection 
> aborted"]]
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to