Well registerWorkerRPC() doesn't have this issue, it's registerWorkerRPCConnection() that does, which might be splitting hairs, but the big difference is the issue occurred when adding a connection, which is what registerWorkerRPCConnection() is doing, in parallel to updating the DB on the connection state, which is what update() was doing when the stacktrace occurs. Adding RPC workers, which is what registerWorkerRPC() is doing, which update() also iterates over the top level dict that that would affect, but I believe since the workers register on startup, the top level dict doesn't change while update() is called.
Well registerWorkerRPC() doesn't have this issue, it's registerWorkerR PCConnection( ) that does, which might be splitting hairs, but the big difference is the issue occurred when adding a connection, which is what registerWorkerR PCConnection( ) is doing, in parallel to updating the DB on the connection state, which is what update() was doing when the stacktrace occurs. Adding RPC workers, which is what registerWorkerRPC() is doing, which update() also iterates over the top level dict that that would affect, but I believe since the workers register on startup, the top level dict doesn't change while update() is called.