Debugging execnet / Wire messagesΒΆ
By setting the environment variable EXECNET_DEBUG
you can
configure the execnet tracing mechanism:
EXECNET_DEBUG=1: | |
---|---|
write per-process trace-files to ${TEMPROOT}/execnet-debug-PID |
|
EXECNET_DEBUG=2: | |
perform tracing to stderr (popen-gateway slaves will send this to their instantiator) |
Here is a simple example to see what goes on with a simple execution:
EXECNET_DEBUG=2 # or "set EXECNET_DEBUG=2" on windows
python -c 'import execnet ; execnet.makegateway().remote_exec("42")'
which will show PID-prefixed trace entries:
[2326] gw0 starting to receive
[2326] gw0 sent <Message.CHANNEL_EXEC channelid=1 '42'>
[2327] creating slavegateway on <execnet.gateway_base.Popen2IO instance at 0x9f1c20c>
[2327] gw0-slave starting to receive
[2327] gw0-slave received <Message.CHANNEL_EXEC channelid=1 '42'>
[2327] gw0-slave execution starts[1]: '42'
[2327] gw0-slave execution finished
[2327] gw0-slave sent <Message.CHANNEL_CLOSE channelid=1 ''>
[2327] gw0-slave 1 sent channel close message
[2326] gw0 received <Message.CHANNEL_CLOSE channelid=1 ''>
[2326] gw0 1 channel.__del__
[2326] === atexit cleanup <Group ['gw0']> ===
[2326] gw0 gateway.exit() called
[2326] gw0 --> sending GATEWAY_TERMINATE
[2326] gw0 sent <Message.GATEWAY_TERMINATE channelid=0 ''>
[2326] gw0 joining receiver thread
[2327] gw0-slave received <Message.GATEWAY_TERMINATE channelid=0 ''>
[2327] gw0-slave putting None to execqueue
[2327] gw0-slave io.close_read()
[2327] gw0-slave leaving <Thread(receiver, started daemon -1220277392)>
[2327] gw0-slave 1 channel.__del__
[2327] gw0-slave io.close_write()
[2327] gw0-slave slavegateway.serve finished
[2327] gw0-slave gateway.join() called while receiverthread already finished
[2326] gw0 leaving <Thread(receiver, started daemon -1221223568)>