Repository navigation
Commit 8a2f8ec
committed
fix(shared): stop concurrent int/string request ids from colliding in _in_flight
JSONRPCDispatcher._in_flight keyed inbound requests by
coerce_request_id(req.id), which folds "7" and 7 into one dict slot.
Two concurrent requests whose ids differ only in type blind-overwrote
each other, and a notifications/cancelled naming one cancelled
whichever was stored — the other ran to completion and could no longer
be cancelled (issue #3807).
Store in-flight requests under the verbatim id so distinct wire
representations stay distinct. Cancellation looks up the exact id
first and falls back to coerced/stringified forms so a peer that
echoes a different type between request and cancel still cancels
(existing correlation tests pass unchanged).1 parent af4c6f4 commit 8a2f8ec
2 files changed
Lines changed: 97 additions & 10 deletions
File tree
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
603 | 603 | | |
604 | 604 | | |
605 | 605 | | |
606 | | - | |
607 | | - | |
608 | | - | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
609 | 612 | | |
610 | 613 | | |
611 | 614 | | |
| |||
639 | 642 | | |
640 | 643 | | |
641 | 644 | | |
642 | | - | |
643 | | - | |
644 | | - | |
645 | | - | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
646 | 660 | | |
647 | 661 | | |
648 | 662 | | |
| |||
742 | 756 | | |
743 | 757 | | |
744 | 758 | | |
| 759 | + | |
745 | 760 | | |
746 | | - | |
747 | | - | |
748 | | - | |
| 761 | + | |
| 762 | + | |
749 | 763 | | |
750 | 764 | | |
751 | 765 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
188 | 261 | | |
189 | 262 | | |
190 | 263 | | |
| |||
0 commit comments