Open
Description
If my understanding is correct this crate launches a separate instance per test, which is nice but because of the race condition and tests being run in parallel this can cause flaky tests which is quite bad. It'd be great to fix the race completely.
I took a look at the obvious "what happens if I set -port 0 -rpcport 0
" The answer is `bitcoind seems to attempt to bind the default port anyway (WTF?) and doesn't log the actual port so if we do this we have no way of figuring it out.
I see only two solutions that include existing bitcoind instances:
- On platforms that support it we could
LD_PRELOAD
a library that overridesbind()
to pass in port 0 and then reports the mapping over a pipe. We could read that report and learn the actual port number. - Create private network namespace which has a custom IP and is somehow allowed to communicate with the parent. This should be possible on all platforms which support Docker because it presumably does this but it may require root which is not nice.
Of course the long term solution is to add direct support to bitcoind
itself.
Metadata
Metadata
Assignees
Labels
No labels