bitcoin-core / gui

Bitcoin Core GUI staging repository
https://github.com/bitcoin/bitcoin
MIT License
602 stars 266 forks source link

bitcoin-qt failed assertion on startup #844

Open fanquake opened 2 days ago

fanquake commented 2 days ago

Moved from https://github.com/bitcoin/bitcoin/issues/31289.

Is there an existing issue for this?

Current behaviour

I ran bitcoin-qt the same way I always do, but it failed to start up. The terminal shows this:

[New Thread 0x7fff337fe6c0 (LWP 4274)]
[New Thread 0x7fff32ffd6c0 (LWP 4275)]
[New Thread 0x7fff327fc6c0 (LWP 4276)]
[New Thread 0x7fff31ffb6c0 (LWP 4277)]
[New Thread 0x7fff317fa6c0 (LWP 4278)]
[New Thread 0x7fff30ff96c0 (LWP 4279)]
[New Thread 0x7fff23fff6c0 (LWP 4280)]
[New Thread 0x7fff237fe6c0 (LWP 4281)]
bitcoin-qt-v28.0: rpc/server.cpp:318: void StopRPC(): Assertion `!g_rpc_running' failed.

Thread 1 "bitcoin-qt-v28." received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
44      ./nptl/pthread_kill.c: No such file or directory.
(gdb) 

Expected behaviour

Not this.

Steps to reproduce

I can't reproduce it. This is the first time it happened and I didn't change anything.

I was typing when the splash screen popped up and grabbed keyboard focus. Is there something I could have typed at the splash screen or the "loading wallets" popup that could have caused this? I have since tried typing 'q' at the splash screen many times, but that appears to always cause a clean shutdown, not an assertion failure. Maybe I hit 'q' at just the wrong time, triggering a race condition in the shutdown code?

I ran it like this:

gdb -ex 'run -datadir=/path path/bitcoin/src/qt/bitcoin-qt-v28.0

Relevant log output

The end of the debug.log file shows this:

2024-11-14T14:23:38Z Using /16 prefix for IP bucketing
2024-11-14T14:23:38Z init message: Loading P2P addresses…
2024-11-14T14:23:38Z Loaded 58315 addresses from peers.dat  93ms
2024-11-14T14:23:38Z init message: Loading banlist…
2024-11-14T14:23:38Z SetNetworkActive: true
2024-11-14T14:23:38Z Script verification uses 15 additional threads
2024-11-14T14:23:38Z Cache configuration:
2024-11-14T14:23:38Z * Using 2.0 MiB for block index database
2024-11-14T14:23:38Z * Using 8.0 MiB for chain state database
2024-11-14T14:23:38Z Shutdown requested. Exiting.

The config.log says:

It was created by Bitcoin Core configure 28.0.0, which was
generated by GNU Autoconf 2.71.  Invocation command line was

  $ ./configure CXXFLAGS=-fno-omit-frame-pointer --with-incompatible-bdb --with-miniupnpc=no --disable-debug --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --disable-module-ecdh --no-create --no-recursion

How did you obtain Bitcoin Core

Compiled from source

What version of Bitcoin Core are you using?

Bitcoin Core version v28.0.0

Operating system and version

Debian GNU/Linux 12

Machine specifications

Linux/Intel and ssd, satellite

maflcko commented 2 days ago

There is a reproducer and context in the other thread.