• Julien Muchembled's avatar
    client: fix race condition in refcounting dispatched answer packets · 743026d5
    Julien Muchembled authored
    This was found when stress-testing a big cluster. 1 client node was stuck:
    
      (Pdb) pp app.dispatcher.__dict__
      {'lock_acquire': <built-in method acquire of thread.lock object at 0x7f788c6e4250>,
      'lock_release': <built-in method release of thread.lock object at 0x7f788c6e4250>,
      'message_table': {140155667614608: {},
                        140155668875280: {},
                        140155671145872: {},
                        140155672381008: {},
                        140155672381136: {},
                        140155672381456: {},
                        140155673002448: {},
                        140155673449680: {},
                        140155676093648: {170: <neo.lib.locking.SimpleQueue object at 0x7f788a109c58>},
                        140155677536464: {},
                        140155679224336: {},
                        140155679876496: {},
                        140155680702992: {},
                        140155681851920: {},
                        140155681852624: {},
                        140155682773584: {},
                        140155685988880: {},
                        140155693061328: {},
                        140155693062224: {},
                        140155693074960: {},
                        140155696334736: {278: <neo.lib.locking.SimpleQueue object at 0x7f788a109c58>},
                        140155696411408: {},
                        140155696414160: {},
                        140155696576208: {},
                        140155722373904: {}},
      'queue_dict': {140155673622936: 1, 140155689147480: 2}}
    
    140155673622936 should not be queue_dict
    743026d5
dispatcher.py 4.46 KB