I built bitcoin-qt v0.5.0rc1 in Ubuntu 11.10 with the following packages installed and had the following problems.
||/ Name Version Description
+++-=========================-=========================-==================================================================
ii build-essential 11.5ubuntu1 Informational list of build-essential packages
ii libboost-dev 1.46.1.1 Boost C++ Libraries development files (default version)
ii libboost-filesystem-dev 1.46.1.1 filesystem operations in C++ (default version)
ii libboost-program-options- 1.46.1.1 program options library for C++ (default version)
ii libboost-system-dev 1.46.1.1 Operating system (e.g. diagnostics support) library (default versi
ii libboost-thread-dev 1.46.1.1 portable C++ multi-threading (default version)
ii libdb5.1++-dev 5.1.25-11 Berkeley v5.1 Database Libraries for C++ [development]
ii libqt4-dev 4:4.7.4-0ubuntu8 Qt 4 development files
ii libssl-dev 1.0.0e-2ubuntu4 SSL development libraries, header files and documentation
ii qt4-qmake 4:4.7.4-0ubuntu8 Qt 4 qmake Makefile generator tool
- doc/readme-qt.rst says that 'libdb4.8++-dev' is required, but it doesn't exist in the current version of ubuntu (oneiric). Only one version exists, which is what I installed. This debian bug talks about the issue.
chris@chris:~/Programs/bitcoin$ apt-cache search 'libdb[0-9].*\+\+-dev'
libdb5.1++-dev - Berkeley v5.1 Database Libraries for C++ [development]
- In the 'Send coins' tab, hovering over the address book icon pops up a tooltip saying "Choose adress [...]. "Adress" is missing a 'd'.
- In the same tab, clicking the address book icon opens a new window which has an 'ok' button but no 'cancel' button.
- bitcoin-qt is very noisy on standard output. Starting and just clicking through the 6 tabs along the top generates more than 3000 lines of text in the terminal that ran it. Could these messages go to the debug.log file if they're needed? Here's how it starts (piped through 'uniq -c' to remove duplicate lines):
chris@chris:~$ ~/Programs/bitcoin/bitcoin-qt | uniq -c
1 Connected to accessibility bus at: "unix:abstract=/tmp/dbus-9FhaHQgKgC,guid=5bbc0287bbabea8056017084000005f2"
1 Registered DEC: true
1 "sni-qt/3888" WARN 12:10:54.679 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE
1 Invalid parent: 0xc39e6a8 QApplication(0xbf89afb4, name = "bitcoin-qt")
1420 Requesting child objects for an interface that is a virtual child itself.
1 not the same: QObject(0x0) QWidget(0xc6c30f8, name = "qt_scrollarea_viewport") at path: "/org/a11y/atspi/accessible/208417016/1"
1 Requesting child objects for an interface that is a virtual child itself.
20 Creating accessible with different object than the original interface!
1 show QLabel(0xcde6468, name = "label")
1 Creating accessible with different object than the original interface!
1 show QLabel(0xc5e2108, name = "label_2")
1 Creating accessible with different object than the original interface!
1 show QValidatedLineEdit(0xcdd71b0)
1 Creating accessible with different object than the original interface!
- I had bitcoin-qt crash with a "Segmentation fault" error when I tried to open the 'options' dialog. Sometimes I'm able to see the options dialog, and sometimes it crashes when I try to open it. I tried re-running bitcoin-qt, then immediately did settings->options, cancel, settings->options and it crashed then, after working the first time. I've rebuilt with debugging symbols and got a stack trace:
Program received signal SIGSEGV, Segmentation fault.
0xb415012d in QSpiAdaptor::checkInterface() const () from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
(gdb) where
#0 0xb415012d in QSpiAdaptor::checkInterface() const ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#1 0xb41562e0 in QSpiAdaptor::GetChildren() const ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#2 0xb4156c9e in QSpiAdaptor::getCacheItem() const ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#3 0xb414aecc in QSpiAccessibleBridge::notifyAboutCreation(QSpiAdaptor*) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#4 0xb414a57a in QSpiAccessibleBridge::interfaceToAccessible(QAccessibleInterface*, int, bool) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#5 0xb414bb7d in QSpiAccessibleBridge::notifyAccessibilityUpdate(int, QAccessibleInterface*, int) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#6 0xb77ff39e in QAccessible::updateAccessibility(QObject*, int, QAccessible::Event) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#7 0xb7829d5e in QListView::selectionChanged(QItemSelection const&, QItemSelection const&) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#8 0xb780943a in QAbstractItemView::qt_metacall(QMetaObject::Call, int, void**) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#9 0xb798d9e2 in QListView::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#10 0xb78763e2 in QListWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#11 0xb6fe2b7d in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#12 0xb6ff1a6a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#13 0xb785fa9d in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#14 0xb7865c35 in QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#15 0xb7866ca4 in QItemSelectionModel::select(QItemSelection const&, QFlags) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#16 0xb78619e6 in QItemSelectionModel::select(QModelIndex const&, QFlags) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#17 0xb785fdc8 in QItemSelectionModel::setCurrentIndex(QModelIndex const&, QFlags) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#18 0xb7872874 in QListWidget::setCurrentRow(int) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#19 0x08078b75 in OptionsDialog::OptionsDialog (this=0xbfffe510, parent=0x0) at src/qt/optionsdialog.cpp:85
#20 0x08068bea in BitcoinGUI::optionsClicked (this=0xbffff458) at src/qt/bitcoingui.cpp:308
#21 0x0827f170 in BitcoinGUI::qt_metacall (this=0xbffff458, _c=QMetaObject::InvokeMetaMethod, _id=10, _a=0xbfffe648)
at build/moc_bitcoingui.cpp:110
#22 0xb6fe2b7d in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#23 0xb6ff1a6a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#24 0xb726883d in QAction::triggered(bool) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#25 0xb7268adb in QAction::activate(QAction::ActionEvent) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#26 0xb7711b13 in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#27 0xb77183af in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#28 0xb771b0f5 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#29 0xb72c9f98 in QWidget::event(QEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#30 0xb7719b6c in QMenu::event(QEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#31 0xb726fd54 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#32 0xb7275dbb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#33 0xb6fdc19e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#34 0xb7270d15 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#35 0xb72fd9fa in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#36 0xb72fbe4d in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#37 0xb732824c in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#38 0xb6a8b25f in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#39 0xb6a8b990 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#40 0xb6a8bc2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#41 0xb700aada in QEventDispatcherGlib::processEvents(QFlags) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#42 0xb7327e3a in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#43 0xb6fdb1dd in QEventLoop::processEvents(QFlags) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#44 0xb6fdb421 in QEventLoop::exec(QFlags) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#45 0xb6fe019d in QCoreApplication::exec() () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#46 0xb726d8f4 in QApplication::exec() () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#47 0x08064eb9 in main (argc=1, argv=0xbffff664) at src/qt/bitcoin.cpp:154
(gdb)
I then tried renaming my ~/.bitcoin/ folder and restarting. After that I had a much harder time getting it to crash. The options dialog appeared fine 5 or 6 times. I encrypted my (new, empty) wallet, and everything was still fine. Then I tried to change the passphrase a got a different crash:
Creating accessible with different object than the original interface!
Creating accessible with different object than the original interface!
not the same: QObject(0x0) QPushButton(0x8c4efb0) at path: "/org/a11y/atspi/accessible/147124144"
not the same: QObject(0x0) AskPassphraseDialog(0xbfffe520, name = "AskPassphraseDialog") at path: "/org/a11y/atspi/accessible/3221218592"
Program received signal SIGSEGV, Segmentation fault.
0xb7762fe4 in QAbstractScrollArea::viewport() const () from /usr/lib/i386-linux-gnu/libQtGui.so.4
(gdb) where
#0 0xb7762fe4 in QAbstractScrollArea::viewport() const () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#1 0xb404c7b2 in ?? () from /usr/lib/i386-linux-gnu/qt4/plugins/accessible/libqtaccessiblewidgets.so
#2 0xb414a0ab in QSpiAccessibleBridge::interfaceToAccessible(QAccessibleInterface*, int, bool) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#3 0xb41505bb in QSpiAdaptor::getChild(int) const ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#4 0xb4156426 in QSpiAdaptor::GetChildren() const ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#5 0xb4156c9e in QSpiAdaptor::getCacheItem() const ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#6 0xb414aecc in QSpiAccessibleBridge::notifyAboutCreation(QSpiAdaptor*) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#7 0xb414a57a in QSpiAccessibleBridge::interfaceToAccessible(QAccessibleInterface*, int, bool) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#8 0xb414b027 in QSpiAccessibleBridge::notifyAboutCreation(QSpiAdaptor*) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#9 0xb414a57a in QSpiAccessibleBridge::interfaceToAccessible(QAccessibleInterface*, int, bool) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#10 0xb414b554 in QSpiAccessibleBridge::objectToAccessible(QObject*) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#11 0xb4167fa4 in QSpiAccessible::getParentReference() const ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#12 0xb4156ba8 in QSpiAdaptor::getCacheItem() const ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#13 0xb414aecc in QSpiAccessibleBridge::notifyAboutCreation(QSpiAdaptor*) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#14 0xb414a57a in QSpiAccessibleBridge::interfaceToAccessible(QAccessibleInterface*, int, bool) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#15 0xb414bb7d in QSpiAccessibleBridge::notifyAccessibilityUpdate(int, QAccessibleInterface*, int) ()
from /usr/lib/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so
#16 0xb77ff39e in QAccessible::updateAccessibility(QObject*, int, QAccessible::Event) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#17 0xb7683b07 in QAbstractButton::setText(QString const&) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#18 0xb772663b in QPushButton::QPushButton(QString const&, QWidget*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#19 0xb76b647f in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#20 0xb76b67c6 in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#21 0xb76b7041 in QDialogButtonBox::setStandardButtons(QFlags) ()
from /usr/lib/i386-linux-gnu/libQtGui.so.4
#22 0x0827cfd5 in Ui_AskPassphraseDialog::setupUi (this=0x8c24ff0, AskPassphraseDialog=0xbfffe520)
at build/ui_askpassphrasedialog.h:108
#23 0x0827b352 in AskPassphraseDialog::AskPassphraseDialog (this=0xbfffe520, mode=AskPassphraseDialog::ChangePass,
parent=0xbffff458) at src/qt/askpassphrasedialog.cpp:16
#24 0x0806aa59 in BitcoinGUI::changePassphrase (this=0xbffff458) at src/qt/bitcoingui.cpp:594
#25 0x0827f1ff in BitcoinGUI::qt_metacall (this=0xbffff458, _c=QMetaObject::InvokeMetaMethod, _id=15, _a=0xbfffe648)
at build/moc_bitcoingui.cpp:115
#26 0xb6fe2b7d in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#27 0xb6ff1a6a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#28 0xb726883d in QAction::triggered(bool) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#29 0xb7268adb in QAction::activate(QAction::ActionEvent) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#30 0xb7711b13 in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#31 0xb77183af in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#32 0xb771b0f5 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#33 0xb72c9f98 in QWidget::event(QEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#34 0xb7719b6c in QMenu::event(QEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#35 0xb726fd54 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#36 0xb7275dbb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#37 0xb6fdc19e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#38 0xb7270d15 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#39 0xb72fd9fa in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#40 0xb72fbe4d in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#41 0xb732824c in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#42 0xb6a8b25f in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#43 0xb6a8b990 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#44 0xb6a8bc2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#45 0xb700aada in QEventDispatcherGlib::processEvents(QFlags) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#46 0xb7327e3a in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#47 0xb6fdb1dd in QEventLoop::processEvents(QFlags) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#48 0xb6fdb421 in QEventLoop::exec(QFlags) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#49 0xb6fe019d in QCoreApplication::exec() () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#50 0xb726d8f4 in QApplication::exec() () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#51 0x08064eb9 in main (argc=1, argv=0xbffff664) at src/qt/bitcoin.cpp:154