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

ASF GitHub Bot commented on DISPATCH-1951:
------------------------------------------

kgiusti commented on a change in pull request #1018:
URL: https://github.com/apache/qpid-dispatch/pull/1018#discussion_r570509195



##########
File path: src/router_core/transfer.c
##########
@@ -219,14 +217,32 @@ int qdr_link_process_deliveries(qdr_core_t *core, 
qdr_link_t *link, int credit)
                             dlv->where = QDR_DELIVERY_IN_UNSETTLED;
                             qd_log(core->log, QD_LOG_DEBUG, DLV_FMT"Delivery 
transfer:  qdr_link_process_deliveries: undelivered-list -> unsettled-list", 
DLV_ARGS(dlv));
                         }
+                    } else {
+                        //
+                        // This delivery is in the process of being transfered
+                        // to a different link.  Hack: the adaptor
+                        // deliver_handler has issued a new link-attached
+                        // action to the core, passing this dlv as the initial

Review comment:
       Oh, I see - didn't realize that it could go to a separate connection.
   Is the patch ok?  Should the comment be updated?
   
   I was thinking perhaps we should try an alternative approach where we break 
this up into a two step process: first have the adaptor disassociate the dlv 
with its original link, then have the core handle adding it to the new link.
   
   For example, we add a new API call for the adaptors to call during the "link 
deliver" callback that removes the delivery from the link (done while holding 
the work_lock of course).  The adaptor then owns the orphaned delivery until it 
can be passed to the core at a later time by calling the link_attach method, 
passing the initial delivery.
   
   The link_process_deliveries loop would check for the MOVED_TO_NEW_LINK 
return code and simply update the original link's state and drop the delivery 
refcount.  It would be safe to assume the link->undelivered list has been 
updated at this point.
   
   Thoughts?




----------------------------------------------------------------
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]


> system_tests_http2 failing with router crash
> --------------------------------------------
>
>                 Key: DISPATCH-1951
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1951
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 1.15.0
>            Reporter: Ganesh Murthy
>            Assignee: Ken Giusti
>            Priority: Major
>             Fix For: 1.15.0
>
>
> {noformat}
>  69: ResourceWarning: Enable tracemalloc to get the object allocation 
> traceback
> 69: test_get_request (system_tests_http2.Http2TestOneInteriorRouter) ... ok
> 69: test_head_request (system_tests_http2.Http2TestOneInteriorRouter) ... ok
> 69: test_patch_request (system_tests_http2.Http2TestOneInteriorRouter) ... ok
> 69: test_post_request (system_tests_http2.Http2TestOneInteriorRouter) ... ok
> 69: test_put_request (system_tests_http2.Http2TestOneInteriorRouter) ... ok
> 71: Verify credit is replenished by sending > the default credit window ... ok
> 71: test_03_server_reconnect 
> (system_tests_http1_adaptor.Http1AdaptorEdge2EdgeTest)
> 71: Verify server reconnect logic. ... ok
> 71: test_04_server_pining_for_the_fjords 
> (system_tests_http1_adaptor.Http1AdaptorEdge2EdgeTest)
> 69: test_zzz_http_connector_delete 
> (system_tests_http2.Http2TestOneInteriorRouter) ... ok
> 69: test_000_stats (system_tests_http2.Http2TestOneStandaloneRouter) ... ok
> 69: test_404 (system_tests_http2.Http2TestOneStandaloneRouter) ... ok
> 69: test_500 (system_tests_http2.Http2TestOneStandaloneRouter) ... FAIL
> 69: test_delete_request (system_tests_http2.Http2TestOneStandaloneRouter) ... 
> FAIL
> 69: test_get_image_jpg (system_tests_http2.Http2TestOneStandaloneRouter) ... 
> FAIL
> 69: test_get_image_png (system_tests_http2.Http2TestOneStandaloneRouter) ... 
> FAIL
> 69: test_get_request (system_tests_http2.Http2TestOneStandaloneRouter) ... 
> FAIL
> 69: test_head_request (system_tests_http2.Http2TestOneStandaloneRouter) ... 
> FAIL
> 69: test_patch_request (system_tests_http2.Http2TestOneStandaloneRouter) ... 
> FAIL
> 69: test_post_request (system_tests_http2.Http2TestOneStandaloneRouter) ... 
> FAIL
> 69: test_put_request (system_tests_http2.Http2TestOneStandaloneRouter) ... 
> FAIL
> 69: test_zzz_http_connector_delete 
> (system_tests_http2.Http2TestOneStandaloneRouter) ... FAIL
> 69: 
> 69: Router QDR output file:
> 69: >>>>
> 69: qdrouterd: ../src/router_core/transfer.c:225: 
> qdr_link_process_deliveries: Assertion `(link->undelivered).head' failed.
> 69: 
> 69: <<<<
> 69: 
> 69: Router QDR command file:
> 69: >>>>
> 69: qdrouterd -c http2-test-router.conf -I 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/python
> 69: pid=4383
> 69: 
> 69: <<<< {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