0.14rc1 coredump in QScreen::handle() #9814

issue dooglus opened this issue on February 21, 2017
  1. dooglus commented at 5:24 AM on February 21, 2017: contributor

    I just went to shut down my computer and noticed the bitcoin-qt 0.14rc1 had crashed. I was running it inside gdb, so can show the stack traces. I had opened up the debug console window, but hadn't typed anything in it. I think I had left it on the first ("info"?) tab.

  2. fanquake added the label GUI on Feb 21, 2017
  3. jonasschnelli commented at 8:34 AM on February 21, 2017: contributor

    Thanks for the report! I'll have a closer look.

  4. jonasschnelli commented at 8:35 AM on February 21, 2017: contributor

    @dooglus: Can you tell me about your operating system? The stack trace tells me you are using linux? Ubuntu? Which version? Did you self compile or used the pre-compiled binaries? If self-compiled, what Qt version?

  5. fanquake added this to the milestone 0.14.0 on Feb 21, 2017
  6. dooglus commented at 5:53 PM on February 21, 2017: contributor

    @jonasschnelli: It's Debian Stable:

    Description:	Debian GNU/Linux 8.6 (jessie)
    Release:	8.6
    Codename:	jessie

    I built it myself from git from the 0.14 branch, commit 2afefeade6e668cab0643a5c22ff203ce1e509b0. I ran these commands:

    ./autogen.sh
    ./configure --with-incompatible-bdb
    cd src
    make qt/bitcoin-qt bitcoind bitcoin-cli

    The configure step mentioned QT:

    checking for QT... yes
    checking for QT_TEST... yes
    checking for QT_DBUS... yes
    checking for static Qt... no
    checking whether -fPIE can be used with this Qt config... no
    checking for moc-qt5... no
    
    Options used to compile and link:
      with wallet   = yes
      with gui / qt = yes
        qt version  = 5
        with qr     = yes

    The link line used to create bitcoin-qt:

    libtool: link: g++ -std=c++11 -pthread -Wl,-z -Wl,relro -Wl,-z -Wl,now -pie -o qt/bitcoin-qt qt/qt_bitcoin_qt-bitcoin.o -pthread  qt/libbitcoinqt.a libbitcoin_server.a libbitcoin_wallet.a libbitcoin_zmq.a -lzmq libbitcoin_cli.a libbitcoin_common.a libbitcoin_util.a libbitcoin_consensus.a crypto/libbitcoin_crypto.a univalue/.libs/libunivalue.a leveldb/libleveldb.a leveldb/libmemenv.a -L/usr/lib/x86_64-linux-gnu -lboost_system -lboost_filesystem -lboost_program_options -lboost_thread -lboost_chrono -lQt5Network -lQt5Widgets -lQt5Gui -lQt5DBus -lQt5Core -lqrencode -lprotobuf -lpthread -ldb_cxx -lssl -lcrypto secp256k1/.libs/libsecp256k1.a -levent_pthreads -levent -pthread

    Checking which versions of Qt5Core I have:

    $ locate libQt5Core
    /home/chris/Downloads/TeamSpeak3-Client-linux_amd64/libQt5Core.so.5
    /usr/lib/x86_64-linux-gnu/libQt5Core.prl
    /usr/lib/x86_64-linux-gnu/libQt5Core.so
    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3
    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.2

    Checking the versions that are installed:

    $ dpkg -l | grep 'qt.*5.*-dev[ :]'
    ii  libqt5opengl5-dev:amd64             5.3.2+dfsg-4+deb8u1    amd64                  Qt 5 OpenGL library development files
    ii  qtbase5-dev:amd64                   5.3.2+dfsg-4+deb8u1    amd64                  Qt 5 base development files
    ii  qttools5-dev:amd64                  5.3.2-3                amd64                  Qt 5 tools development files

    Also note that this isn't the first time I saw the 'does not have a handle' warnings. My debug.log goes back quite a long way and I see a bunch of the same errors on the 15th/16th Feb.

    Edit: although it appears that on the 16th I did a clean shutdown rather than it crashing.

  7. dooglus commented at 6:09 PM on February 21, 2017: contributor

    I just had it crash again.

    Here's the stack trace.

    I was in the debug console. I had run getblockhash 10, double-clicked the resulting hash, and hit Control-C to copy it when it froze.

    I done this shortly before the crash, while bitcoin-qt was still running:

    chris@chris:~/Programs/bitcoin.git/src/qt$ touch libbitcoinqt.a
    chris@chris:~/Programs/bitcoin.git/src/qt$ cd ..
    chris@chris:~/Programs/bitcoin.git/src$ V=1 make qt/bitcoin-qt
    make  -C secp256k1 libsecp256k1.la
    make[1]: Entering directory '/home/chris/Programs/bitcoin.git/src/secp256k1'
    make[1]: Leaving directory '/home/chris/Programs/bitcoin.git/src/secp256k1'
    /bin/bash ../libtool  --tag CXX  --mode=link g++ -std=c++11    -pthread  -Wl,-z,relro -Wl,-z,now -pie    -o qt/bitcoin-qt qt/qt_bitcoin_qt-bitcoin.o   qt/libbitcoinqt.a libbitcoin_server.a libbitcoin_wallet.a libbitcoin_zmq.a -lzmq  libbitcoin_cli.a libbitcoin_common.a libbitcoin_util.a libbitcoin_consensus.a crypto/libbitcoin_crypto.a univalue/libunivalue.la leveldb/libleveldb.a leveldb/libmemenv.a -L/usr/lib/x86_64-linux-gnu -lboost_system -lboost_filesystem -lboost_program_options -lboost_thread -lboost_chrono -lQt5Network -lQt5Widgets -lQt5Gui -lQt5Core  -lQt5DBus -lQt5Core  -lqrencode  -lprotobuf -pthread -lpthread  -ldb_cxx -lssl -lcrypto  -lcrypto   secp256k1/libsecp256k1.la -levent_pthreads -levent  -levent  
    libtool: link: g++ -std=c++11 -pthread -Wl,-z -Wl,relro -Wl,-z -Wl,now -pie -o qt/bitcoin-qt qt/qt_bitcoin_qt-bitcoin.o -pthread  qt/libbitcoinqt.a libbitcoin_server.a libbitcoin_wallet.a libbitcoin_zmq.a -lzmq libbitcoin_cli.a libbitcoin_common.a libbitcoin_util.a libbitcoin_consensus.a crypto/libbitcoin_crypto.a univalue/.libs/libunivalue.a leveldb/libleveldb.a leveldb/libmemenv.a -L/usr/lib/x86_64-linux-gnu -lboost_system -lboost_filesystem -lboost_program_options -lboost_thread -lboost_chrono -lQt5Network -lQt5Widgets -lQt5Gui -lQt5DBus -lQt5Core -lqrencode -lprotobuf -lpthread -ldb_cxx -lssl -lcrypto secp256k1/.libs/libsecp256k1.a -levent_pthreads -levent -pthread

    to get the link line I pasted in my previous comment. I thought that replacing a running binary with a new copy was supposed to be safe, but am not 100% sure of that, so maybe the crash was caused by me rebuilding bitcoin-qt while it was running.

    Edit: I've tried repeating the same steps again and wasn't able to get the crash to happen again.

  8. dooglus commented at 8:41 AM on February 26, 2017: contributor

    I just tried building rc2 but it failed:

    $ make qt/bitcoin-qt bitcoind bitcoin-cli
      CXX      qt/qt_bitcoin_qt-bitcoin.o
      CXX      qt/qt_libbitcoinqt_a-bitcoingui.o
      CXX      qt/qt_libbitcoinqt_a-clientmodel.o
      CXX      qt/qt_libbitcoinqt_a-optionsdialog.o
      CXX      qt/qt_libbitcoinqt_a-optionsmodel.o
      CXX      qt/qt_libbitcoinqt_a-peertablemodel.o
      CXX      qt/qt_libbitcoinqt_a-splashscreen.o
      CXX      qt/qt_libbitcoinqt_a-addresstablemodel.o
      CXX      qt/qt_libbitcoinqt_a-coincontroldialog.o
      CXX      qt/qt_libbitcoinqt_a-paymentserver.o
      CXX      qt/qt_libbitcoinqt_a-sendcoinsdialog.o
      CXX      qt/qt_libbitcoinqt_a-signverifymessagedialog.o
      CXX      qt/qt_libbitcoinqt_a-transactiondesc.o
      CXX      qt/qt_libbitcoinqt_a-transactionrecord.o
      CXX      qt/qt_libbitcoinqt_a-transactiontablemodel.o
      CXX      qt/qt_libbitcoinqt_a-walletmodel.o
      CXX      qt/qt_libbitcoinqt_a-walletmodeltransaction.o
      GEN      qt/locale/bitcoin_en.qm
      GEN      qt/locale/bitcoin_fr_FR.qm
      GEN      qt/locale/bitcoin_zh_CN.qm
      GEN      qt/qrc_bitcoin_locale.cpp
      CXX      qt/qt_libbitcoinqt_a-qrc_bitcoin_locale.o
      AR       qt/libbitcoinqt.a
      CXX      libbitcoin_server_a-blockencodings.o
    In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37:0,
                     from /usr/include/boost/mpl/aux_/comparison_op.hpp:35,
                     from /usr/include/boost/mpl/greater_equal.hpp:19,
                     from /usr/include/boost/mpl/comparison.hpp:22,
                     from /usr/include/boost/serialization/version.hpp:76,
                     from /usr/include/boost/multi_index/detail/serialization_version.hpp:18,
                     from /usr/include/boost/multi_index_container.hpp:54,
                     from txmempool.h:24,
                     from blockencodings.cpp:12:
    /usr/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp:78:1: internal compiler error: Segmentation fault
     BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
     ^
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
    The bug is not reproducible, so it is likely a hardware or OS problem.
    Makefile:5262: recipe for target 'libbitcoin_server_a-blockencodings.o' failed
    make: *** [libbitcoin_server_a-blockencodings.o] Error 1

    Sounds like there's something wrong my end. Maybe faulty RAM or hdd. So the crashes I saw could be symptom of same.

    Repeating the make command a 2nd time worked.

  9. laanwj commented at 8:23 PM on February 26, 2017: member

    Repeating the make command a 2nd time worked.

    Indeed, gcc is extremely stable and actual crashes in gcc are almost always CPU overheating/memory corruption related. Especially if it goes away when you repeat it.

  10. dooglus commented at 8:39 PM on February 26, 2017: contributor

    Actually the 2nd time I ran 'make' it got past the .cpp file that previously crashed, but then hung for 10 minutes on a different .cpp file, not using any CPU or disk I/O. The compiler just didn't ever exit.

    The 3rd time I ran it everything worked and I ended up with a working bitcoin-qt executable.

    It's odd. I never see my web browser crashing, and it is usually using almost all available RAM. But I've seen gcc crash and/or hang many times since I got this laptop. I do think that this invalidates my bug report though, since nobody else is seeing the same crash and my computer is pretty clearly unreliable.

  11. laanwj commented at 7:43 AM on February 27, 2017: member

    I agree. Thanks for reporting that, it could save hours of chasing ghosts :) Would probably make sense to close this until we get at least one other report.

  12. laanwj removed this from the milestone 0.14.0 on Feb 28, 2017
  13. fanquake closed this on May 20, 2017

  14. MarcoFalke locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 21:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me