Package: freecad Version: 0.20.2+dfsg1-4 Severity: important Tags: upstream X-Debbugs-Cc: [email protected]
-- System Information: Debian Release: bookworm/sid APT prefers testing-proposed-updates APT policy: (500, 'testing-proposed-updates'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.19.0-2-amd64 (SMP w/2 CPU threads; PREEMPT) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages freecad depends on: ii freecad-python3 0.20.2+dfsg1-4 Versions of packages freecad recommends: ii calculix-ccx 2.20-1 ii graphviz 2.42.2-7+b3 Versions of packages freecad suggests: pn povray <none> -- no debconf information Hi, I've started tinkering with FreeCad this morning and hit an irritating bug at least 3 times, leading to loosing my model once. The bug seems quite repeatable, so I've tried to prevent it by using undo-redo less, but it's easy to accidentally doing it without paying attention, like happened to me last time. Reproduction steps: - draw a few lines - undo - redo - undo - redo - draw a few more lines - undo - redo - ... - join lines - undo - redo - delete line - undo - redo - ... Basically it hits when adding a new line, when deleting a line, or joining lines. But it happens as well for undoing-redoing more complex operations. The same issue is reported here: https://forum-freecad-org.translate.goog/viewtopic.php?p=585510&_x_tr_sl=de&_x_tr_tl=en&_x_tr_hl=hu&_x_tr_pto=wapp Here's a stack trace: #0 0x00007ffff71ff210 in Gui::Document::handleChildren3D(Gui::ViewProvider*, bool) () from /usr/lib/freecad-python3/lib/libFreeCADGui.so #1 0x00007ffff71fb536 in Gui::Document::redo(int) () from /usr/lib/freecad-python3/lib/libFreeCADGui.so #2 0x00007ffff74bb1e3 in Gui::View3DInventor::onMsg(char const*, char const**) () from /usr/lib/freecad-python3/lib/libFreeCADGui.so #3 0x00007ffff71b6b49 in Gui::Application::sendMsgToActiveView(char const*, char const**) () from /usr/lib/freecad-python3/lib/libFreeCADGui.so #4 0x00007ffff725043f in Gui::Command::_invoke(int, bool) () from /usr/lib/freecad-python3/lib/libFreeCADGui.so #5 0x00007ffff72507a3 in Gui::Command::invoke(int, Gui::Command::TriggerSource) () from /usr/lib/freecad-python3/lib/libFreeCADGui.so #6 0x00007ffff4ce8f7c in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #7 0x00007ffff595c782 in QAction::triggered(bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #8 0x00007ffff595f3ab in QAction::activate(QAction::ActionEvent) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #9 0x00007ffff595ff7d in QAction::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #10 0x00007ffff5962fae in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #11 0x00007ffff72270e8 in Gui::GUIApplication::notify(QObject*, QEvent*) () from /usr/lib/freecad-python3/lib/libFreeCADGui.so #12 0x00007ffff4cb16f8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #13 0x00007ffff516c76b in QShortcutMap::dispatchEvent(QKeyEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 #14 0x00007ffff516d0bb in QShortcutMap::tryShortcut(QKeyEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 #15 0x00007ffff5115376 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 #16 0x00007ffff51390cd in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 #17 0x00007ffff5111cac in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 #18 0x00007fffeea20eba in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #19 0x00007ffff2dd77a9 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #20 0x00007ffff2dd7a38 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #21 0x00007ffff2dd7acc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #22 0x00007ffff4d09836 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #23 0x00007ffff4cb017b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #24 0x00007ffff4cb82d6 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #25 0x00007ffff71c3a42 in Gui::Application::runApplication() () from /usr/lib/freecad-python3/lib/libFreeCADGui.so #26 0x0000555555558c01 in ?? () #27 0x00007fffffffdc98 in ?? () #28 0x00007ffff4816de0 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 #29 0x00007ffff4816d20 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 #30 0x0000000000000000 in ?? () (gdb) info reg rax 0x0 0 rbx 0x55555838f340 93825040708416 rcx 0x5555556e07a0 93824993855392 rdx 0x0 0 rsi 0x55555838f340 93825040708416 rdi 0x55555838f340 93825040708416 rbp 0x55555716a940 0x55555716a940 rsp 0x7fffffffc400 0x7fffffffc400 r8 0x1 1 r9 0x0 0 r10 0xdf8e58aef990835 1006806901605337141 r11 0x7fffffffb8c0 140737488337088 r12 0x5555578c9d80 93825029414272 r13 0x5555578c9d80 93825029414272 r14 0x55555716a940 93825021684032 r15 0x0 0 rip 0x7ffff71ff210 0x7ffff71ff210 <Gui::Document::handleChildren3D(Gui::ViewProvider*, bool)+64> eflags 0x10202 [ IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 (gdb) disas $pc Dump of assembler code for function _ZN3Gui8Document16handleChildren3DEPNS_12ViewProviderEb: 0x00007ffff71ff1d0 <+0>: push %r15 0x00007ffff71ff1d2 <+2>: push %r14 0x00007ffff71ff1d4 <+4>: push %r13 0x00007ffff71ff1d6 <+6>: push %r12 0x00007ffff71ff1d8 <+8>: push %rbp 0x00007ffff71ff1d9 <+9>: push %rbx 0x00007ffff71ff1da <+10>: sub $0x98,%rsp 0x00007ffff71ff1e1 <+17>: mov %edx,0x24(%rsp) 0x00007ffff71ff1e5 <+21>: mov %fs:0x28,%rax 0x00007ffff71ff1ee <+30>: mov %rax,0x88(%rsp) 0x00007ffff71ff1f6 <+38>: xor %eax,%eax 0x00007ffff71ff1f8 <+40>: test %rsi,%rsi 0x00007ffff71ff1fb <+43>: je 0x7ffff71ff4ea <_ZN3Gui8Document16handleChildren3DEPNS_12ViewProviderEb+794> 0x00007ffff71ff201 <+49>: mov (%rsi),%rax 0x00007ffff71ff204 <+52>: mov %rdi,%r13 0x00007ffff71ff207 <+55>: mov %rsi,%rbx 0x00007ffff71ff20a <+58>: mov %edx,%r15d 0x00007ffff71ff20d <+61>: mov %rsi,%rdi => 0x00007ffff71ff210 <+64>: call *0x130(%rax) 0x00007ffff71ff216 <+70>: test %rax,%rax 0x00007ffff71ff219 <+73>: je 0x7ffff71ff4ea <_ZN3Gui8Document16handleChildren3DEPNS_12ViewProviderEb+794> 0x00007ffff71ff21f <+79>: mov (%rbx),%rax 0x00007ffff71ff222 <+82>: lea 0x30(%rsp),%rdi 0x00007ffff71ff227 <+87>: mov %rbx,%rsi So that's a NULL pointer dereference. Not sure what should be there in rax instead. Maybe some unimplemented virtual method? (gdb) x/256x $sp 0x7fffffffc400: 0x0000000a 0x00000000 0xffffc360 0x00007fff 0x7fffffffc410: 0x00000000 0x00000000 0x556d5e20 0x00005555 0x7fffffffc420: 0x00000000 0x00000000 0xcd4b8a00 0x8d96dc16 0x7fffffffc430: 0xffffc5f0 0x00007fff 0x5787c9d0 0x00005555 0x7fffffffc440: 0x5839e578 0x00005555 0x5839e578 0x00005555 0x7fffffffc450: 0xf699f500 0x00007fff 0x0000000a 0x00000000 0x7fffffffc460: 0xffffc368 0x00007fff 0x00000000 0x00000000 0x7fffffffc470: 0x0000001b 0x00000000 0x00000000 0x00007fff 0x7fffffffc480: 0x00000000 0x00000000 0xcd4b8a00 0x8d96dc16 0x7fffffffc490: 0x59d2f7f0 0x00005555 0x58593b80 0x00005555 0x7fffffffc4a0: 0x5716a940 0x00005555 0x578c9d80 0x00005555 0x7fffffffc4b0: 0x5716ab50 0x00005555 0x5716a940 0x00005555 0x7fffffffc4c0: 0xffffc5f0 0x00007fff 0xf71fb536 0x00007fff 0x7fffffffc4d0: 0x5716a96a 0x00005555 0x55b8bb01 0x00005555 0x7fffffffc4e0: 0x00000000 0x00000000 0xcd4b8a00 0x8d96dc16 0x7fffffffc4f0: 0xf7c35a7e 0x00007fff 0x57795620 0x00005555 0x7fffffffc500: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc510: 0xf7e665d4 0x00007fff 0xf74bb1e3 0x00007fff 0x7fffffffc520: 0xf7c34801 0x00007fff 0xfffffe60 0xffffffff 0x7fffffffc530: 0x0000000b 0x00000000 0xcd4b8a00 0x8d96dc16 0x7fffffffc540: 0x00000000 0x00000000 0xffffd3b0 0x00007fff 0x7fffffffc550: 0xf7c35a7e 0x00007fff 0xf71b6b49 0x00007fff 0x7fffffffc560: 0x00000000 0x00000000 0x55b83600 0x00005555 0x7fffffffc570: 0x00000000 0x00000000 0xffffc5c8 0x00007fff 0x7fffffffc580: 0x582183c0 0x00005555 0xf725043f 0x00007fff 0x7fffffffc590: 0x55b8bbb0 0x00005555 0xffffc5d0 0x00007fff 0x7fffffffc5a0: 0xffffc5f8 0x00007fff 0x00000151 0x00000000 0x7fffffffc5b0: 0xffffc5e0 0x00007fff 0x00000000 0x00000000 0x7fffffffc5c0: 0xffffce00 0x00007fff 0x00000000 0x00007fff 0x7fffffffc5d0: 0xffffc5e0 0x00007fff 0x00000000 0x00000000 0x7fffffffc5e0: 0x00000000 0x00000000 0xcd4b8a00 0x8d96dc16 0x7fffffffc5f0: 0xf48116b0 0x00007fff 0xf48114f8 0x00007fff 0x7fffffffc600: 0x594a5c60 0x00005555 0x594a5c60 0x00005555 0x7fffffffc610: 0x594a5c60 0x00005555 0x594a5c60 0x00005555 0x7fffffffc620: 0x594a5c60 0x00005555 0x594a5e60 0x00005555 0x7fffffffc630: 0xf4818d60 0x00007fff 0x00000010 0x8d96dc16 0x7fffffffc640: 0x594a5c60 0x00005555 0x00000000 0x00000000 0x7fffffffc650: 0x00000200 0x00000000 0x6f63206e 0x00616d6d 0x7fffffffc660: 0xf48116d8 0x00007fff 0x00000006 0x00000000 0x7fffffffc670: 0x00000000 0x00000000 0x00001002 0x00000000 0x7fffffffc680: 0x00000000 0x00007fff 0x00000000 0x00000000 0x7fffffffc690: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc6a0: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc6b0: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc6c0: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc6d0: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc6e0: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc6f0: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc700: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc710: 0x00000000 0x00000000 0x00000000 0x00000000 0x7fffffffc720: 0x00000008 0x00000000 0xffffc6a0 0x00007fff 0x7fffffffc730: 0xf4818d60 0x00007fff 0x00000000 0x00000000 0x7fffffffc740: 0xffff0000 0x00007fff 0xffffc5f8 0x00007fff 0x7fffffffc750: 0xf4818780 0x00007fff 0xf4818710 0x00007fff 0x7fffffffc760: 0xf4818720 0x00007fff 0xcd4b8a00 0x8d96dc16 0x7fffffffc770: 0x00000000 0x00000000 0x55b83600 0x00005555 0x7fffffffc780: 0xffffc810 0x00007fff 0x00000000 0x00000000 0x7fffffffc790: 0x55e90690 0x00005555 0x00000004 0x00000000 0x7fffffffc7a0: 0xffffc8f0 0x00007fff 0xf72507a3 0x00007fff 0x7fffffffc7b0: 0xffffc7f0 0x00007fff 0x00000000 0x00000000 0x7fffffffc7c0: 0xffffcca0 0x00007fff 0xcd4b8a00 0x8d96dc16 0x7fffffffc7d0: 0xffffc8d0 0x00007fff 0x55ec28a0 0x00005555 0x7fffffffc7e0: 0x00000000 0x00000000 0x55e907e0 0x00005555 0x7fffffffc7f0: 0x55ec28a0 0x00005555 0x55e90690 0x00005555 Why isn't there a symbol package, just for some ports? Regards, Patrik

