client_do - job X
timeout, don't process result
client_do - job Y
get result for job handle X
since client_do reuses data structures (only 1 active job at a time), context for job X is lost
cannot find job X, hit assert()
I think the best fix here is to remove the assert and simply ignore the result packets if it is no longer found in the active client task list.
The problem is due to the following condition:
client_do - job X
timeout, don't process result
client_do - job Y
get result for job handle X
since client_do reuses data structures (only 1 active job at a time), context for job X is lost
cannot find job X, hit assert()
I think the best fix here is to remove the assert and simply ignore the result packets if it is no longer found in the active client task list.