Originally posted by @pinheadmz in #182
Not sure if my observation belongs here or in a new issue. Testing https://github.com/bitcoin/bitcoin/pull/32297 I tried to use
socatto inspect the IPC request:
socat -v UNIX-LISTEN:/Users/matthewzipkin/.bitcoin/regtest/node.sock STDOUTand then make a bitcoin-cli request even though bitcoin-node was not running:
bccli -regtest getblockcounterror:
0libc++abi: terminating due to uncaught exception of type kj::ExceptionImpl: /opt/homebrew/include/kj/memory.h:258: failed: expected ptr != nullptr; null Own<> dereference 1stack: 1070007cb 10489843b 10494a81f 10494a74b 104951f4f 104951def 104951d93 104951d33 104951c73 104951c17 10494f59b 1048acccb 1048ac9d7 104ddc727 104ddc077 10488ab97 10488aa0f 10488a8e7 104889977 1a01b6f93 1a01b1d33 2Abort trap: 6Stepping through with lldb I found the error in
ConnectStream():What I believe happens is, we get a file descriptor way earlier in the stack (in bitcoin:
src/ipc/interfaces.cpp::connectAddress()but by the time we get toConnectStream()the listener has disconnected (or, just isn’t bitcoin) and then things start going wrong inProxyClientBase()