Just looking cursorily at this I notice a comment:
# We only update the status of the request if the worker is telling us
# about the request we have recorded as having given it. It's possible that
# the worker is reporting work from an old identity and we've already moved
# on from that, so in that case we just ignore the worker's work and rely
# on the cleanup done later using service_state.clear_ipc_worker() to get
# back to a good state.
package, level, reckoning_time = service_state.lookup_ipc_worker( reply.identity,
)
Might it be possible that this is in fact the documented situation where the worker is reporting on old stuff (or returning after a timeout)? Might be why it ends with a "no transaction is active" result.
Just looking cursorily at this I notice a comment:
# We only update the status of the request if the worker is telling us state.clear_ ipc_worker( ) to get state.lookup_ ipc_worker(
reply. identity,
# about the request we have recorded as having given it. It's possible that
# the worker is reporting work from an old identity and we've already moved
# on from that, so in that case we just ignore the worker's work and rely
# on the cleanup done later using service_
# back to a good state.
package, level, reckoning_time = service_
)
Might it be possible that this is in fact the documented situation where the worker is reporting on old stuff (or returning after a timeout)? Might be why it ends with a "no transaction is active" result.