[RFC] fix crash on exit - Subsurface desktop
Miika Turkia
miika.turkia at gmail.com
Sun Apr 16 22:33:55 PDT 2017
I have an crash on exit, with some compilations occurs always, and
doesn't crash with other compilations from same source. The attached
patch might fix it, but I am not certain due to the weird
crash/no-crash behavior.
If I read the attached backtrace correctly, the destructor is called
twice. What is that about? Do we have multiple table views and this
works as intended?
All this makes me wonder, what is going on my computer as I had
similar situation with TestParse as well. First it crashes, but with
new compilation from same sources and no crash.
miika
-------------- next part --------------
Thread 1 "subsurface" received signal SIGSEGV, Segmentation fault.
0x00000000006b4915 in TableView::~TableView (this=0x1c487f0, __in_chrg=<optimized out>) at /home/mturkia/source/subsurface/subsurface/desktop-widgets/tableview.cpp:70
70 for (int i = 1; oldDefault && ui.tableView && i < ui.tableView->model()->columnCount(); i++) {
(gdb) bt
#0 0x00000000006b4915 in TableView::~TableView (this=0x1c487f0, __in_chrg=<optimized out>) at /home/mturkia/source/subsurface/subsurface/desktop-widgets/tableview.cpp:70
#1 0x00000000006b4c88 in TableView::~TableView (this=0x1c487f0, __in_chrg=<optimized out>) at /home/mturkia/source/subsurface/subsurface/desktop-widgets/tableview.cpp:85
#2 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4 0x00007ffff5d73759 in QSplitter::~QSplitter() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7 0x00007ffff5c13899 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff5c13899 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff5c13899 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff5d9dd59 in QScrollArea::~QScrollArea() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007ffff5c13899 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff5d73ea9 in QStackedWidget::~QStackedWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff5d7f929 in QTabWidget::~QTabWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x0000000000640b1d in MainTab::~MainTab (this=0x1450ea0, __in_chrg=<optimized out>) at /home/mturkia/source/subsurface/subsurface/desktop-widgets/tab-widgets/maintab.cpp:210
#29 0x0000000000640b6a in MainTab::~MainTab (this=0x1450ea0, __in_chrg=<optimized out>) at /home/mturkia/source/subsurface/subsurface/desktop-widgets/tab-widgets/maintab.cpp:219
#30 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff5d73ea9 in QStackedWidget::~QStackedWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff5d73759 in QSplitter::~QSplitter() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007ffff5d73759 in QSplitter::~QSplitter() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff5c13899 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007ffff2cbc28b in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#43 0x00007ffff5c136c8 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x0000000000599791 in MainWindow::~MainWindow (this=0xe9e2e0, __in_chrg=<optimized out>) at /home/mturkia/source/subsurface/subsurface/desktop-widgets/mainwindow.cpp:323
#45 0x00000000005997ca in MainWindow::~MainWindow (this=0xe9e2e0, __in_chrg=<optimized out>) at /home/mturkia/source/subsurface/subsurface/desktop-widgets/mainwindow.cpp:327
#46 0x00000000005957cb in exit_ui () at /home/mturkia/source/subsurface/subsurface/subsurface-desktop-helper.cpp:50
#47 0x0000000000594699 in main (argc=1, argv=0x7fffffffddb8) at /home/mturkia/source/subsurface/subsurface/subsurface-desktop-main.cpp:112
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix.patch
Type: text/x-patch
Size: 593 bytes
Desc: not available
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20170417/526a0b4d/attachment-0001.bin>
More information about the subsurface
mailing list