While investigating pytest-dev/pytest#442 I ran into an issue where xdist behaves differently than regular pytest.
Basically, it seems that when using --exitfirst or --maxfail=X, in combination with -n X, pytest (DSession?) bails out before collecting the teardown report, so the pytest_runtest_logreport doesn't get run.
At first glance, it seems like the the plugin should flush any unread entries from the queue after telling the nodes to stop.
I'm willing to work on this if someone can verify that this makes sense and/or point me in the right direction :)