Commit d27e13e7 authored by Leigh B Stoller's avatar Leigh B Stoller
Browse files

Check for and ignore a node timeout when the node is gone from the

nodes array. This indicates a dynamic virtual node that been destroyed
since the timeout started.

We should try to remove this timeout, but at the moment I am not sure
how stated would find out about it.
parent c992105c
......@@ -328,7 +328,19 @@ while (1) {
while ($now >= $deadline && $node ne "") {
qpop($deadline,$node);
info("POP: $node in ".($deadline-$now).", queue=".qsize()."\n");
handleCtrlEvent($node,$TBTIMEOUT);
#
# If the node is no longer in the nodes array, it was most
# likely a dynamic virtual node which is now gone. Ignore.
# Need to look at reload() to see if we can catch this earlier.
#
if (exists($nodes{$node})) {
handleCtrlEvent($node,$TBTIMEOUT);
}
else {
info("POP: $node is no longer in the nodes array. Skipping\n");
delete($timeout_tag{$node})
if (exists($timeout_tag{$node}));
}
if (0) { qshow(); }
if (qhead($deadline,$node)) {
$deadline=0; $node="";
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment