kang-dd
Results
1
issues of
kang-dd
如题,我有一个节点同时关闭多个service,每次关闭clusteragent会收到一条`namechange`消息,在这期间对同个name派发消息时,会出现"Invalid name"。 消息顺序: 1. 收到`namechange`后调用`new_register_name`产生register_name_a。 2. 收到消息执行`dispatch_request`方法,此时register_name_a[name]为nil,执行`register_name_mt.__index`方法,此时inquery_name[name]为nil,然后`queryname`协程挂起。 3. 再次收到`namechange`后调用`new_register_name`产生register_name_b。 4. 再次收到消息执行`dispatch_request`方法,register_name_b[name]为nil,执行`register_name_mt.__index`方法,此时inquery_name[name]非nil,协程等待挂起。 5. 第2步的`queryname`结果返回,`register_name_a[name] = abbr`, 并唤醒的携程 6. 唤醒第4步中的协程,`rawget(register_name_b, name)`为nil,返回"Invalid name"。