<kevkevin>
looks like the test got hung up on this line in the ipc test: template4 = File "/home/admin/actions-runner/_work/_temp/build/test/functional/interface_ipc.py", line 156, in async_routine: await template2.result.waitNext(ctx, waitoptions)
<sipa>
yeah, bitcoin-node crashed during that invocation
<sipa>
i can reproduce it locally, though it's pretty rare (once in 60 runs, so far)
<kevkevin>
hmm interesting, I'll try to reproduce it locally myself
<ryanofsky>
that is interesting, i've never seen that assert hit before. i think it could happen if two ipc clients try to execute a different IPC calls on the same thread at the same time
<sipa>
huh!
<ryanofsky>
libmultiprocess assumes a 1:1 threading model where a there is one server thread for every client thread, emulating a traditional c++ call stack
<sipa>
should the python side do anything specific to arrange that?
<sipa>
i would assume not, because there is only one thread on the python side that does all IPC calls
<ryanofsky>
it should just make two IPC calls at the same time, and they should be calls that do not return instantly like waitNext
<ryanofsky>
yeah, it is unexpected that current python test would cause that
<dodo>
c
hacker4web3bitco has joined #bitcoin-core-dev
<ryanofsky>
maybe there is a race condition where c++ code sends a response but the server thread doesn't return to being idle, and python code sends the next request quickly enough to hit the assert
<sipa>
might create two asynchronous calls simultaneously?
<ryanofsky>
it seems like that would just chain the calls so the server runs them back to back, and make the bug more likely to happen
<ryanofsky>
but if you added an await on the first line it might prevent this
<sipa>
the first one is just unnecessary - i inlined it into the second one, but forgot to remove the original
<sipa>
you say "make the bug more likely", so you think that the bug isn't in this code itself, but elsewhere?
<ryanofsky>
actually i misread. yeah i assumed you were using waitnext variable second line and the calls would be chained. but actually this does look like simultaneous calls
<sipa>
alright, let me run it 1000 times to see if it reappears, but if not, i'm going to assume that was the culprit
<ryanofsky>
no i think this code does explain the bug
<sipa>
thanks!
<ryanofsky>
i just first misread it as chained calls that would be pipelined when actually those are parallel calls
<sipa>
right
<ryanofsky>
thanks for the test, and finding this. server could definitely do better here, it could just refuse the request instead of asserting
<sipa>
or at least a more helpful error message
<sipa>
i could imagine third parties trying to use the interface might hit something like this too
<ryanofsky>
yeah the error message is the most important thing in practice
<bitcoin-git>
[bitcoin] willcl-ark opened pull request #33319: ci: reduce runner sizes on various jobs (master...economise-runner-sizes) https://github.com/bitcoin/bitcoin/pull/33319
aleggg has quit [Ping timeout: 265 seconds]
w0xlt has joined #bitcoin-core-dev
jqq_ has quit [Quit: Connection closed for inactivity]
aleggg has joined #bitcoin-core-dev
f321x_ has joined #bitcoin-core-dev
f321x has quit [Ping timeout: 272 seconds]
bitcoinlover has joined #bitcoin-core-dev
jonatack has joined #bitcoin-core-dev
hacker4web3bitco has quit [Ping timeout: 256 seconds]
hacker4web3bitco has joined #bitcoin-core-dev
bitcoinlover has quit [Ping timeout: 258 seconds]
bitcoinlover has joined #bitcoin-core-dev
hacker4web3bitco has quit [Ping timeout: 256 seconds]
jerryf has quit [Ping timeout: 272 seconds]
brunoerg has quit [Remote host closed the connection]
jerryf has joined #bitcoin-core-dev
hacker4web3bitco has joined #bitcoin-core-dev
Cory76 has joined #bitcoin-core-dev
bitcoinlover has quit [Ping timeout: 256 seconds]
Cory88 has quit [Ping timeout: 250 seconds]
brunoerg has joined #bitcoin-core-dev
brunoerg has quit [Remote host closed the connection]
jon_atack has joined #bitcoin-core-dev
jonatack has quit [Ping timeout: 256 seconds]
bitcoinlover has joined #bitcoin-core-dev
hacker4web3bitco has quit [Ping timeout: 256 seconds]
<bitcoin-git>
[bitcoin] stickies-v opened pull request #33321: kernel: make blockTip index const (master...2025-09/kernel-blocktip-const) https://github.com/bitcoin/bitcoin/pull/33321