You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Ken Giusti (Jira)" <ji...@apache.org> on 2019/10/04 17:42:00 UTC

[jira] [Comment Edited] (DISPATCH-1336) Deliveries settled out of order in simple test case

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

Ken Giusti edited comment on DISPATCH-1336 at 10/4/19 5:41 PM:
---------------------------------------------------------------

I dug into this a bit.  AFAIKT the delivery updates arrive from Proton out of order.

I added logging to the router to log
1) when proton notifies the router that disposition was updated
2) when the router sets that disposition on the corresponding peer delivery (via proton).

The router receives updates in order until:

2019-10-04 13:23:54.022635 -0400 CONTAINER (error) KAG: dlv update 9663
2019-10-04 13:23:54.022794 -0400 CONTAINER (error) KAG: dlv update 9664
2019-10-04 13:23:54.022895 -0400 CONTAINER (error) KAG: dlv update 9665
2019-10-04 13:23:54.023005 -0400 CONTAINER (error) KAG: dlv update 9666
2019-10-04 13:23:54.023101 -0400 CONTAINER (error) KAG: dlv update 9667   ***** UPDATE LAST IN ORDER
.....
2019-10-04 13:23:54.033520 -0400 CONTAINER (error) KAG: dlv update 9680    ***** UPDATE FIRST OUT OF ORDER
2019-10-04 13:23:54.033677 -0400 CONTAINER (error) KAG: dlv update 9681
2019-10-04 13:23:54.033827 -0400 CONTAINER (error) KAG: dlv update 9682

The update sequence continues then falls back to 9668:

2019-10-04 13:23:54.041706 -0400 CONTAINER (error) KAG: dlv update 9738
2019-10-04 13:23:54.042015 -0400 CONTAINER (error) KAG: dlv update 9739
2019-10-04 13:23:54.042161 -0400 CONTAINER (error) KAG: dlv update 9740    ***** LAST OF OOO SEQUENCE
2019-10-04 13:23:54.042391 -0400 CONTAINER (error) KAG: dlv update 9668    ***** UPDATE ORDER RESUMED
2019-10-04 13:23:54.042565 -0400 CONTAINER (error) KAG: dlv update 9669
2019-10-04 13:23:54.042740 -0400 CONTAINER (error) KAG: dlv update 9670

The router sets the corresponding delivery's disposition in the same order - it is consistent with the order provided by proton.


So this appears to be a Proton behavior.  I'll open a JIRA on proton for this and see what the proton team thinks.



was (Author: kgiusti):
I dug into this a bit.  AFAIKT the delivery updates arrive from Proton out of order.

I added logging to the router to log
1) when proton notifies the router that disposition was updated
2) when the router sets that disposition on the corresponding peer delivery (via proton).

The router receives updates in order until:

2019-10-04 13:23:54.022635 -0400 CONTAINER (error) KAG: dlv update 9663
2019-10-04 13:23:54.022794 -0400 CONTAINER (error) KAG: dlv update 9664
2019-10-04 13:23:54.022895 -0400 CONTAINER (error) KAG: dlv update 9665
2019-10-04 13:23:54.023005 -0400 CONTAINER (error) KAG: dlv update 9666
2019-10-04 13:23:54.023101 -0400 CONTAINER (error) KAG: dlv update 9667   ***** UPDATE LAST IN ORDER
.....
2019-10-04 13:23:54.033520 -0400 CONTAINER (error) KAG: dlv update 9680    ***** UPDATE FIRST OUT OF ORDER
2019-10-04 13:23:54.033677 -0400 CONTAINER (error) KAG: dlv update 9681
2019-10-04 13:23:54.033827 -0400 CONTAINER (error) KAG: dlv update 9682

The update sequence continues then falls back to 9668:

2019-10-04 13:23:54.041706 -0400 CONTAINER (error) KAG: dlv update 9738
2019-10-04 13:23:54.042015 -0400 CONTAINER (error) KAG: dlv update 9739
2019-10-04 13:23:54.042161 -0400 CONTAINER (error) KAG: dlv update 9740    ***** LAST OF OOO SEQUENCE
2019-10-04 13:23:54.042391 -0400 CONTAINER (error) KAG: dlv update 9668    ***** UPDATE ORDER RESUMED
2019-10-04 13:23:54.042565 -0400 CONTAINER (error) KAG: dlv update 9669
2019-10-04 13:23:54.042740 -0400 CONTAINER (error) KAG: dlv update 9670

So this appears to be a Proton behavior.  I'll open a JIRA on proton for this and see what the proton team thinks.


> Deliveries settled out of order in simple test case
> ---------------------------------------------------
>
>                 Key: DISPATCH-1336
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1336
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Router Node
>    Affects Versions: 1.7.0
>         Environment: Fedora 29, Python 3
> Debug builds
> Proton git: branch master @ 0481a507c
> Dispatch git: branch master @ 7b3a8e25
>            Reporter: Charles E. Rolke
>            Assignee: Ken Giusti
>            Priority: Major
>
> 1. A router is started with a simple
> qdrouterd
> 2. A single qpid-proton-c sender sends 100,000 messages to port 5672
>  3. A simple qpid-proton-c receiver receives the messages and accepts them.
>  4. In the sender's on_accept method occasionally the message IDs appear out of order.
> In this snippet the message id numbers are marching along in the correct order. Then settlements 77441..77459 jump ahead of settlement 77430. After that the streams get synchronized again and match for the remainder of the run.
> This is not necessarily wrong from an AMQP standpoint. But one might expect that the settlements would propagate from the receiver back to the sender in order every time.
> Can anyone explain how this happens?
> {code:java}
> Fail to match message id 77430 with settlement id 77441
> Fail to match message id 77431 with settlement id 77442
> Fail to match message id 77432 with settlement id 77443
> Fail to match message id 77433 with settlement id 77444
> Fail to match message id 77434 with settlement id 77445
> Fail to match message id 77435 with settlement id 77446
> Fail to match message id 77436 with settlement id 77447
> Fail to match message id 77437 with settlement id 77448
> Fail to match message id 77438 with settlement id 77449
> Fail to match message id 77439 with settlement id 77450
> Fail to match message id 77440 with settlement id 77451
> Fail to match message id 77441 with settlement id 77452
> Fail to match message id 77442 with settlement id 77453
> Fail to match message id 77443 with settlement id 77454
> Fail to match message id 77444 with settlement id 77455
> Fail to match message id 77445 with settlement id 77456
> Fail to match message id 77446 with settlement id 77457
> Fail to match message id 77447 with settlement id 77458
> Fail to match message id 77448 with settlement id 77459
> Fail to match message id 77449 with settlement id 77430
> Fail to match message id 77450 with settlement id 77431
> Fail to match message id 77451 with settlement id 77432
> Fail to match message id 77452 with settlement id 77433
> Fail to match message id 77453 with settlement id 77434
> Fail to match message id 77454 with settlement id 77435
> Fail to match message id 77455 with settlement id 77436
> Fail to match message id 77456 with settlement id 77437
> Fail to match message id 77457 with settlement id 77438
> Fail to match message id 77458 with settlement id 77439
> Fail to match message id 77459 with settlement id 77440
> {code}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org