bitcoin / bitcoin

Bitcoin Core integration/staging tree
https://bitcoincore.org/en/download
MIT License
79.93k stars 36.46k forks source link

Application Aborted #24457

Closed Rspigler closed 2 years ago

Rspigler commented 2 years ago

I receive this error when trying to open bitcoin-qt when compiling from master:

terminate called after throwing an instance of 'std::runtime_error' what(): JSON value is not a string as expected Aborted

No debug info is generated since the application isn't started.

I am running Qubes 4.0 fully updated, in a Debian-11 VM with normal networking. Intel x86_64

maflcko commented 2 years ago

Can you please run this in valgrind or gdb to produce a stack trace?

Rspigler commented 2 years ago


> Starting program: /usr/local/bin/bitcoin-qt 
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> [New Thread 0x7ffff2644700 (LWP 2265)]
> [New Thread 0x7ffff0a21700 (LWP 2266)]
> [New Thread 0x7fffebfff700 (LWP 2267)]
> [New Thread 0x7fffead0d700 (LWP 2268)]
> [New Thread 0x7fffea50c700 (LWP 2269)]
> terminate called after throwing an instance of 'std::runtime_error'
>   what():  JSON value is not a string as expected
> 
> Thread 1 "bitcoin-qt" received signal SIGABRT, Aborted.
> __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
> 50    ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
> (gdb)

 `thread apply all bt`

> Thread 6 (Thread 0x7fffea50c700 (LWP 2269) "Thread (pooled)"):
> #0  futex_abstimed_wait_cancelable (private=0, abstime=0x7fffea50ba50, clockid=-363808304, expected=0, futex_word=0x5555567c8d90) at ../sysdeps/nptl/futex-internal.h:323
> #1  __pthread_cond_wait_common (abstime=0x7fffea50ba50, clockid=-363808304, mutex=0x5555567c8d40, cond=0x5555567c8d68) at pthread_cond_wait.c:520
> #2  __pthread_cond_timedwait (cond=0x5555567c8d68, mutex=0x5555567c8d40, abstime=0x7fffea50ba50) at pthread_cond_wait.c:656
> #3  0x00007ffff78f5ae4 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #4  0x00007ffff78f30d1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #5  0x00007ffff78efbe1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #6  0x00007ffff6547ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
> #7  0x00007ffff6477def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 
> Thread 5 (Thread 0x7fffead0d700 (LWP 2268) "Thread (pooled)"):
> #0  futex_abstimed_wait_cancelable (private=0, abstime=0x7fffead0ca50, clockid=-355415600, expected=0, futex_word=0x5555567c8d20) at ../sysdeps/nptl/futex-internal.h:323
> #1  __pthread_cond_wait_common (abstime=0x7fffead0ca50, clockid=-355415600, mute--Type <RET> for more, q to quit, c to continue without paging--c
> x=0x5555567c8cd0, cond=0x5555567c8cf8) at pthread_cond_wait.c:520
> #2  __pthread_cond_timedwait (cond=0x5555567c8cf8, mutex=0x5555567c8cd0, abstime=0x7fffead0ca50) at pthread_cond_wait.c:656
> #3  0x00007ffff78f5ae4 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #4  0x00007ffff78f30d1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #5  0x00007ffff78efbe1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #6  0x00007ffff6547ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
> #7  0x00007ffff6477def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 
> Thread 4 (Thread 0x7fffebfff700 (LWP 2267) "gdbus"):
> #0  0x00007ffff646d3ff in __GI___poll (fds=0x5555565daae0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
> #1  0x00007ffff59ce0ae in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
> #2  0x00007ffff59ce40b in g_main_loop_run () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
> #3  0x00007ffff1093a36 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
> #4  0x00007ffff59f70bd in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
> #5  0x00007ffff6547ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
> #6  0x00007ffff6477def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 
> Thread 3 (Thread 0x7ffff0a21700 (LWP 2266) "gmain"):
> #0  0x00007ffff646d3ff in __GI___poll (fds=0x5555565c6c70, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
> #1  0x00007ffff59ce0ae in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
> #2  0x00007ffff59ce1cf in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
> #3  0x00007ffff59ce221 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
> #4  0x00007ffff59f70bd in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
> #5  0x00007ffff6547ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
> #6  0x00007ffff6477def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 
> Thread 2 (Thread 0x7ffff2644700 (LWP 2265) "QXcbEventQueue"):
> #0  0x00007ffff646d3ff in __GI___poll (fds=0x7ffff26439e8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
> #1  0x00007ffff34d9d02 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
> #2  0x00007ffff34dc05a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
> #3  0x00007ffff2e527e0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
> #4  0x00007ffff78efbe1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #5  0x00007ffff6547ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
> #6  0x00007ffff6477def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 
> Thread 1 (Thread 0x7ffff326eac0 (LWP 2261) "bitcoin-qt"):
> #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
> #1  0x00007ffff639f537 in __GI_abort () at abort.c:79
> #2  0x00007ffff675b7ec in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #3  0x00007ffff6766966 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #4  0x00007ffff67669d1 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #5  0x00007ffff6766c65 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #6  0x000055555566aca0 in UniValue::get_str[abi:cxx11]() const (this=this@entry=0x7fffffffcb30) at univalue/lib/univalue_get.cpp:101
> #7  0x0000555555a79bbd in ArgsManager::GetArg (this=<optimized out>, strArg="-prune", strDefault="") at util/system.cpp:591
> #8  0x00005555556c601c in OptionsModel::addOverriddenOption (this=0x55555687f960, option="-prune") at qt/optionsmodel.cpp:40
> #9  0x00005555556c74e1 in OptionsModel::SetPruneEnabled (this=0x55555687f960, prune=<optimized out>, force=<optimized out>) at qt/optionsmodel.cpp:291
> #10 0x00005555556cab91 in OptionsModel::Init (this=0x55555687f960, resetSettings=<optimized out>) at qt/optionsmodel.cpp:104
> #11 0x00005555556cd8db in OptionsModel::OptionsModel (this=0x55555687f960, parent=<optimized out>, resetSettings=<optimized out>) at qt/optionsmodel.cpp:35
> #12 0x000055555568538c in BitcoinApplication::createOptionsModel (this=0x7fffffffdbf0, resetSettings=<optimized out>) at qt/bitcoin.cpp:262
> #13 0x0000555555689f95 in GuiMain (argc=<optimized out>, argv=0x7fffffffddc0) at qt/bitcoin.cpp:635
> #14 0x00007ffff63a0d0a in __libc_start_main (main=0x55555566cc60 <main(int, char**)>, argc=1, argv=0x7fffffffe218, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe208) at ../csu/libc-start.c:308
> #15 0x000055555568352a in _start () at /usr/include/c++/10/new:175
> (gdb) 
maflcko commented 2 years ago

What argument are you passing for -prune?

Rspigler commented 2 years ago

bitcoin.conf

blockfilterindex=1

and settings.json

{ "prune": 3814, "upnp": false, "wallet": [ "1", "2", "Config", "1.6.22" ] }

ryanofsky commented 2 years ago

@Rspigler It looks like what happened here is your settings file got "corrupted" by testing #15936. "Corrupted" in quotes because settings file is probably valid when using #15936, but not valid on master.

To fix this without changing effective settings you can:

Sorry about this problem and thanks for testing #15936 and reporting this issue. Feel free to ping me or follow up with any questions in #15936. I'm going to close this issue, since it's caused by a PR that hasn't been merged, so bitcoin maintainers won't be burdened by having to track it.

luke-jr commented 2 years ago

It wouldn't be nice if downgrading from 24.x to 23.x causes an abort either. Maybe we should still treat this as a bug and fix it for 23.0?

ryanofsky commented 2 years ago

It wouldn't be nice if downgrading from 24.x to 23.x causes an abort either. Maybe we should still treat this as a bug and fix it for 23.0?

This is a good point. Opened a fix to respect the setting instead of crashing in #24498

jonatack commented 2 years ago

Nice catch, @Rspigler and @ryanofsky.

ryanofsky commented 2 years ago

This is fixed in master in #24498 and I think will be backported along with other bugfixes independently, so closing this