Skip to content

test_runner sometimes fail due to "socket.send() raised exception" in stderr #13579

@maflcko

Description

@maflcko

Some tests that use P2PConnection might fail after the switch to asyncio. The test itself is successful, but the stderr is non-empty. I believe this is an internal race in asyncio, where the remote node disconnected from our P2PConnection, but asyncio didn't realize it and is still sending (potentially buffered) bytes.

One solution would be to just strip the stderr of "socket.send() raised exception".

One example on osx, but can probably reproduced locally with ./test/functional/test_runner.py -j 16 --extended:

feature_assumevalid.py failed, Duration: 13 s
stdout:
2018-06-30T17:10:31.246000Z TestFramework (INFO): Initializing test directory /var/folders/bb/n7t3rs157850byt_jfdcq9k80000gn/T/bitcoin_test_runner_20180630_170848/feature_assumevalid_87
2018-06-30T17:10:43.682000Z TestFramework.mininode (WARNING): Connection lost to 127.0.0.1:11698 due to [Errno 32] Broken pipe
2018-06-30T17:10:43.994000Z TestFramework (INFO): Stopping nodes
2018-06-30T17:10:44.370000Z TestFramework (INFO): Cleaning up /var/folders/bb/n7t3rs157850byt_jfdcq9k80000gn/T/bitcoin_test_runner_20180630_170848/feature_assumevalid_87 on exit
2018-06-30T17:10:44.370000Z TestFramework (INFO): Tests successful
stderr:
socket.send() raised exception.
socket.send() raised exception.
socket.send() raised exception.
socket.send() raised exception.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions