Issue Details

Number
31506
Title
test: different error message fails rpc_signer.py
Description
### Is there an existing issue for this? - [X] I have searched the existing issues ### Current behaviour On my Ubuntu 24.04 system on running rpc_signer.py functional test (after compiling from source) fails the test which tests the case of missing script (on master and 28.x but passes on 27.x !) I tried running (with only regtest = 1 in bitcoin.conf) ``` bitcoind -daemon -signer=fake.py bitcoin-cli enumeratesigners ``` to get the following: ``` execve failed: Not a directory (20) ``` which is different than what is asserted in the test. I tried compiling 28.x and master on a Ubuntu 24.04 VM running on Qemu/KVM and the test passes there. I followed all the steps for installing the dependencies mentioned in build-unix.md and checked the versions mentioned in dependencies.md . Also tried removing bitcoin and again compiling from source but the test still fails. ### Expected behaviour The functional test should pass just like it does on the CI. ### Steps to reproduce I referred to build-unix.md for compile instructions and installing dependencies. For master followed the following commands: ``` cmake -B build cmake --build build cmake --install build build/test/functional/rpc_signer.py ``` which gives basically the following error: ``` Traceback (most recent call last): File "/home/codingp110/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main self.run_test() File "/home/codingp110/bitcoin/build/test/functional/rpc_signer.py", line 56, in run_test assert_raises_rpc_error( File "/home/codingp110/bitcoin/test/functional/test_framework/util.py", line 151, in assert_raises_rpc_error assert try_rpc(code, message, fun, *args, **kwds), "No exception raised" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/codingp110/bitcoin/test/functional/test_framework/util.py", line 166, in try_rpc raise AssertionError( AssertionError: Expected substring not found in error message: substring: 'execve failed: No such file or directory' error message: 'execve failed: Not a directory (20)'. ``` For 28.x and 27.x (used git worktree to create separate directories and then git reset hard to overwrite with upstream/28.x and upstream/27.x): ``` ./autogen.sh ./configure make test/functional/rpc_signer.py ``` 28.x gives similar error as master but 27.x passes! ### Relevant log output relevant log (master): ``` 2024-12-16T02:42:47.859000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/home/codingp110/bitcoin/test/functional/test_framework/util.py", line 160, in try_rpc fun(*args, **kwds) File "/home/codingp110/bitcoin/test/functional/test_framework/coverage.py", line 50, in __call__ return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/codingp110/bitcoin/test/functional/test_framework/authproxy.py", line 146, in __call__ raise JSONRPCException(response['error'], status) test_framework.authproxy.JSONRPCException: execve failed: Not a directory (20) (-1) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/codingp110/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main self.run_test() File "/home/codingp110/bitcoin/build/test/functional/rpc_signer.py", line 56, in run_test assert_raises_rpc_error( File "/home/codingp110/bitcoin/test/functional/test_framework/util.py", line 151, in assert_raises_rpc_error assert try_rpc(code, message, fun, *args, **kwds), "No exception raised" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/codingp110/bitcoin/test/functional/test_framework/util.py", line 166, in try_rpc raise AssertionError( AssertionError: Expected substring not found in error message: substring: 'execve failed: No such file or directory' error message: 'execve failed: Not a directory (20)'. ``` running `bitcoind` with the `-signer=fake.py` and then getting strace output on running `enumeratesigners` rpc gave only the following major differences on master and 27.x on master: ``` readv(6, [{iov_base="HTTP/1.1 200 OK\r\nContent-Type: application/json\r\nDate: Sat, 14 Dec 2024 09:31:05 GMT\r\nContent-Length: 93\r\nConnection: close\r\n\r\n{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-1,\"message\":\"execve failed: Not a directory (20)\"},\"id\":1}\n", iov_len=220}], 1) = 220 ``` on 27.x ``` readv(6, [{iov_base="HTTP/1.1 500 Internal Server Error\r\nContent-Type: application/json\r\nDate: Sat, 14 Dec 2024 09:32:19 GMT\r\nContent-Length: 96\r\nConnection: close\r\n\r\n{\"result\":null,\"error\":{\"code\":-1,\"message\":\"execve failed: No such file or directory\"},\"id\":1}\n", iov_len=242}], 1) = 242 ``` but on doing the same for master and 28.x on a VM(Ubuntu 24.04.1 LTS on VirtualBox) gave the same strace output as my system but with the correct error message. PS: The logs/outputs mentioned for master(except for the first one in this section) are old and not for master-b042c4f0538c ### How did you obtain Bitcoin Core Compiled from source ### What version of Bitcoin Core are you using? v28.99.0-b042c4f0538c ### Operating system and version Ubuntu 24.04.1 LTS ### Machine specifications OS: Ubuntu 24.04 Architecture: x86_64 CPU(s): 8 Vendor ID: GenuineIntel Model name: 12th Gen Intel(R) Core(TM) i3-1215U
URL
https://github.com/bitcoin/bitcoin/issue/31506
Closed by
Back to List