crossbario / crossbar

Crossbar.io - WAMP application router
https://crossbar.io/
Other
2.05k stars 275 forks source link

Incorrect request ID in ERROR message when callee disconnects in-flight #2074

Open ecorm opened 1 year ago

ecorm commented 1 year ago

When a callee disconnects in-flight for the second time during second CALL with progressive results, the request ID seems to be stuck to that of the first CALL request.

Crossbar version is master as of the date of this report (post v23.1.2), installed via Pip using Skully17's fix.

Here's a message trace, with the HELLO/WELCOME message options truncated for brevity. The traces are from the point of view of two CppWAMP clients, one acting as caller, and the other as callee.

Caller: ["TX","HELLO",[1,"cppwamp.test",{}]]
Caller: ["RX","WELCOME",[2,8085226399052972,{}]]
Callee: ["TX","HELLO",[1,"cppwamp.test",{}]]
Callee: ["RX","WELCOME",[2,8179307449686827,{}]]
Callee: ["TX","REGISTER",[64,1,{},"com.myapp.foo"]]
Callee: ["RX","REGISTERED",[65,1,2093626689965004]]
Caller: ["TX","CALL",[48,1,{"receive_progress":true},"com.myapp.foo",["invitation"],{}]]
Callee: ["RX","INVOCATION",[68,1,2093626689965004,{"caller":8085226399052972,"caller_authid":"K4CG-LENQ-H9WS-ARKU-U49M-T7QP","caller_authrole":"anonymous","receive_progress":true},["invitation"]]]
Callee: ["TX","YIELD",[70,1,{"progress":true},["rsvp"],{}]]
Caller: ["RX","RESULT",[50,1,{"callee":8179307449686827,"callee_authid":"RF3Q-4AKJ-P6GE-GK9A-A3S4-PL3E","callee_authrole":"anonymous","progress":true},["rsvp"]]]
Callee: ["TX","YIELD",[70,1,{"progress":true},[9],{}]]
Caller: ["RX","RESULT",[50,1,{"callee":8179307449686827,"callee_authid":"RF3Q-4AKJ-P6GE-GK9A-A3S4-PL3E","callee_authrole":"anonymous","progress":true},[9]]]
Callee: ["TX","YIELD",[70,1,{"progress":true},[3],{}]]
Caller: ["RX","RESULT",[50,1,{"callee":8179307449686827,"callee_authid":"RF3Q-4AKJ-P6GE-GK9A-A3S4-PL3E","callee_authrole":"anonymous","progress":true},[3]]]
Callee: ["TX","YIELD",[70,1,{"progress":true},[7],{}]]
Caller: ["RX","RESULT",[50,1,{"callee":8179307449686827,"callee_authid":"RF3Q-4AKJ-P6GE-GK9A-A3S4-PL3E","callee_authrole":"anonymous","progress":true},[7]]]
Callee: ["TX","GOODBYE",[6,{},"wamp.close.close_realm"]]
Callee: ["RX","GOODBYE",[6,{},"wamp.close.normal"]]
Caller: ["RX","ERROR",[8,48,1,{},"wamp.error.canceled",["callee disconnected from in-flight request"]]]

Callee: ["TX","HELLO",[1,"cppwamp.test",{}]]
Callee: ["RX","WELCOME",[2,6271940322734548,{}]]
Callee: ["TX","REGISTER",[64,1,{},"com.myapp.foo"]]
Callee: ["RX","REGISTERED",[65,1,2664977930244117]]
Caller: ["TX","CALL",[48,2,{"receive_progress":true},"com.myapp.foo",["invitation"],{}]]
Callee: ["RX","INVOCATION",[68,2,2664977930244117,{"caller":8085226399052972,"caller_authid":"K4CG-LENQ-H9WS-ARKU-U49M-T7QP","caller_authrole":"anonymous","receive_progress":true},["invitation"]]]
Callee: ["TX","YIELD",[70,2,{"progress":true},["rsvp"],{}]]
Caller: ["RX","RESULT",[50,2,{"callee":6271940322734548,"callee_authid":"94G3-3TTU-NYCU-3GJJ-FJYK-JRAQ","callee_authrole":"anonymous","progress":true},["rsvp"]]]
Callee: ["TX","YIELD",[70,2,{"progress":true},[9],{}]]
Caller: ["RX","RESULT",[50,2,{"callee":6271940322734548,"callee_authid":"94G3-3TTU-NYCU-3GJJ-FJYK-JRAQ","callee_authrole":"anonymous","progress":true},[9]]]
Callee: ["TX","YIELD",[70,2,{"progress":true},[3],{}]]
Caller: ["RX","RESULT",[50,2,{"callee":6271940322734548,"callee_authid":"94G3-3TTU-NYCU-3GJJ-FJYK-JRAQ","callee_authrole":"anonymous","progress":true},[3]]]
Callee: ["TX","YIELD",[70,2,{"progress":true},[7],{}]]
Caller: ["RX","RESULT",[50,2,{"callee":6271940322734548,"callee_authid":"94G3-3TTU-NYCU-3GJJ-FJYK-JRAQ","callee_authrole":"anonymous","progress":true},[7]]]
Callee: ["TX","GOODBYE",[6,{},"wamp.close.close_realm"]]
Callee: ["RX","GOODBYE",[6,{},"wamp.close.normal"]]
Caller: ["RX","ERROR",[8,48,1,{},"wamp.error.canceled",["callee disconnected from in-flight request"]]]
Caller: ["TX","ABORT",[3,{"message":"Received ERROR response with no matching request"},"wamp.error.protocol_violation"]]