zenustech / zeno

ZEn NOde system - a simulation & rendering engine in nodes
http://zenustech.com
Mozilla Public License 2.0
1.24k stars 150 forks source link

signal SIGSEGV: invalid permissions for mapped object (fault address: 0x8325781b8) #1909

Closed Martinfx closed 5 months ago

Martinfx commented 5 months ago

Describe the bug (both Chinese and English are OK) I ran application and clicked to new file and added some random node

CMAKE_ON= ZENO_BUILD_EDITOR ZENO_MULTIPROCESS \ ZENO_IPC_USE_TCP ZENO_BUILD_SHARED ZENO_USE_CCACHE ZENO_NO_WARNING

CMAKE_OFF= ZENO_BUILD_PLAYER ZENO_BUILD_DESIGNER ZENO_INSTALL_TARGET ZENO_WITH_CUDA ZENO_MARCH_NATIVE ZENO_USE_FAST_MATH \ ZENO_OPTIX_PROC ZENO_WIN32_RC

How To Reproduce git clone this repo https://github.com/Martinfx/FreeBSD-Ports/pull/127/files sudo make

Screenshots

ldb ./work/.build/bin/zenoedit
(lldb) target create "./work/.build/bin/zenoedit"
Current executable set to '/home/maxfx/Documents/FreeBSD-Ports/zeno/work/.build/bin/zenoedit' (x86_64).
(lldb) run
Process 38594 launched: '/home/maxfx/Documents/FreeBSD-Ports/zeno/work/.build/bin/zenoedit' (x86_64)
[I 06:56:22.748] (/usr/home/maxfx/Documents/FreeBSD-Ports/zeno/work/zeno-2023.11.16/ui/zenoedit/startup/zstartup.cpp:154) zeno unknown debug 2024.04.23 14:35:45 gcc+tcp+tm
Process 38594 stopped
* thread #1, name = 'zenoedit', stop reason = signal SIGSEGV: invalid permissions for mapped object (fault address: 0x8325781b8)
    frame #0: 0x00000008325781b8 libcxxrt.so.1`vtable for __cxxabiv1::__si_class_type_info + 16
libcxxrt.so.1`vtable for __cxxabiv1::__si_class_type_info:
->  0x8325781b8 <+16>: adcb   %al, (%rbx)
    0x8325781ba <+18>: orl    (%rcx), %esi
    0x8325781bc <+20>: orb    %al, (%rax)
    0x8325781be <+22>: addb   %al, (%rax)
(lldb) bt
* thread #1, name = 'zenoedit', stop reason = signal SIGSEGV: invalid permissions for mapped object (fault address: 0x8325781b8)
  * frame #0: 0x00000008325781b8 libcxxrt.so.1`vtable for __cxxabiv1::__si_class_type_info + 16
    frame #1: 0x00000008310acf03 libstdc++.so.6`__dynamic_cast + 131
    frame #2: 0x0000000000a48608 zenoedit`ZenoSubGraphScene::onRowsInserted(this=0x000000085af0d800, subgIdx=0x000000082652b8d0, parent=0x000000082652ba90, first=0, last=0) at zenosubgraphscene.cpp:1042:9
    frame #3: 0x00000000008f9528 zenoedit`ZenoSubGraphScene::qt_static_metacall(_o=0x000000085af0d800, _c=InvokeMetaMethod, _id=3, _a=0x000000082652b870) at moc_zenosubgraphscene.cpp:127:35
    frame #4: 0x0000000830662d84 libQt5Core.so.5`___lldb_unnamed_symbol9680 + 1284
    frame #5: 0x00000000006f1849 zenoedit`IGraphsModel::_rowsInserted(this=0x000000085aed7e00, _t1=0x000000082652b8d0, _t2=0x000000082652ba90, _t3=0, _t4=0) at moc_igraphsmodel.cpp:394:26
    frame #6: 0x000000000072d1be zenoedit`GraphsModel::on_subg_rowsInserted(this=0x000000085aed7e00, parent=0x000000082652ba90, first=0, last=0) at graphsmodel.cpp:1946:23
    frame #7: 0x0000000000775fa2 zenoedit`QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<QModelIndex const&, int, int>, void, void (GraphsModel::*)(QModelIndex const&, int, int)>::call(f=(zenoedit`GraphsModel::on_subg_rowsInserted(QModelIndex const&, int, int) at graphsmodel.cpp:1942:1), o=0x000000085aed7e00, arg=0x000000082652bac0) at qobjectdefs_impl.h:152:20
    frame #8: 0x0000000000775888 zenoedit`void QtPrivate::FunctionPointer<void (GraphsModel::*)(QModelIndex const&, int, int)>::call<QtPrivate::List<QModelIndex const&, int, int>, void>(f=(zenoedit`GraphsModel::on_subg_rowsInserted(QModelIndex const&, int, int) at graphsmodel.cpp:1942:1), o=0x000000085aed7e00, arg=0x000000082652bac0) at qobjectdefs_impl.h:185:95
    frame #9: 0x000000000077497d zenoedit`QtPrivate::QSlotObject<void (GraphsModel::*)(QModelIndex const&, int, int), QtPrivate::List<QModelIndex const&, int, int>, void>::impl(which=1, this_=0x000000085ae9c580, r=0x000000085aed7e00, a=0x000000082652bac0, ret=0x0000000000000000) at qobjectdefs_impl.h:418:49
    frame #10: 0x0000000830662cb3 libQt5Core.so.5`___lldb_unnamed_symbol9680 + 1075
    frame #11: 0x00000008305e4337 libQt5Core.so.5`QAbstractItemModel::endInsertRows() + 263
    frame #12: 0x000000000076f571 zenoedit`SubGraphModel::insertRow(this=0x000000085aeead80, row=0, nodeData=0x000000085da12068, parent=0x000000082652bbc0) at subgraphmodel.cpp:867:18
    frame #13: 0x000000000076af15 zenoedit`SubGraphModel::appendItem(this=0x000000085aeead80, nodeData=0x000000085da12068, enableTransaction=false) at subgraphmodel.cpp:180:14
    frame #14: 0x0000000000727067 zenoedit`GraphsModel::addNode(this=0x000000085aed7e00, nodeData=0x000000085da12068, subGpIdx=0x000000085aeec9c0, enableTransaction=false) at graphsmodel.cpp:1063:27
    frame #15: 0x000000000070547c zenoedit`AddNodeCommand::redo(this=0x000000085da12050) at command.cpp:27:21
    frame #16: 0x000000082d62baa1 libQt5Widgets.so.5`QUndoStack::push(QUndoCommand*) + 65
    frame #17: 0x0000000000726f37 zenoedit`GraphsModel::addNode(this=0x000000085aed7e00, nodeData=0x000000082652be38, subGpIdx=0x000000082652beb0, enableTransaction=true) at graphsmodel.cpp:1051:22
    frame #18: 0x000000000075a631 zenoedit`NodesMgr::createNewNode(pModel=0x000000085aed7e00, subgIdx=(r = 0, c = 0, i = 3165291852, m = 0x000000085aed7e00), descName=0x000000086719d090, pt=0x000000086719d098) at nodesmgr.cpp:15:20
    frame #19: 0x0000000000a21c75 zenoedit`operator(__closure=0x000000086719d070) at zenonewmenu.cpp:173:40
    frame #20: 0x0000000000a22942 zenoedit`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ZenoNewnodeMenu::getCategoryActions(IGraphsModel*, QModelIndex, QPointF)::<lambda()> >::call(f=0x000000086719d070, arg=0x000000082652c080) at qobjectdefs_impl.h:146:14
    frame #21: 0x0000000000a22923 zenoedit`QtPrivate::Functor<ZenoNewnodeMenu::getCategoryActions(IGraphsModel*, QModelIndex, QPointF)::<lambda()>, 0>::call<QtPrivate::List<>, void>(f=0x000000086719d070, (null)=0x000000085d786640, arg=0x000000082652c080) &, void *, void **) at qobjectdefs_impl.h:256:83
    frame #22: 0x0000000000a228ac zenoedit`QtPrivate::QFunctorSlotObject<ZenoNewnodeMenu::getCategoryActions(IGraphsModel*, QModelIndex, QPointF)::<lambda()>, 0, QtPrivate::List<>, void>::impl(which=1, this_=0x000000086719d060, r=0x000000085d786640, a=0x000000082652c080, ret=0x0000000000000000) at qobjectdefs_impl.h:443:49
    frame #23: 0x0000000830662cb3 libQt5Core.so.5`___lldb_unnamed_symbol9680 + 1075
    frame #24: 0x000000082d2947b2 libQt5Widgets.so.5`QAction::activate(QAction::ActionEvent) + 242
    frame #25: 0x000000082d40d63d libQt5Widgets.so.5`___lldb_unnamed_symbol15780 + 77
    frame #26: 0x000000082d40ab86 libQt5Widgets.so.5`___lldb_unnamed_symbol15756 + 550
    frame #27: 0x000000082d411bf0 libQt5Widgets.so.5`QMenu::mouseReleaseEvent(QMouseEvent*) + 704
    frame #28: 0x000000082d2d69d5 libQt5Widgets.so.5`QWidget::event(QEvent*) + 533
    frame #29: 0x000000082d41224c libQt5Widgets.so.5`QMenu::event(QEvent*) + 1116
    frame #30: 0x000000082d29d3d9 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 265
    frame #31: 0x000000082d2a0336 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 7574
    frame #32: 0x000000083062e9bd libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 173
    frame #33: 0x000000082d29dd4e libQt5Widgets.so.5`QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) + 942
    frame #34: 0x000000082d2f4c0d libQt5Widgets.so.5`___lldb_unnamed_symbol14078 + 3965
    frame #35: 0x000000082d2f3391 libQt5Widgets.so.5`___lldb_unnamed_symbol14072 + 225
    frame #36: 0x000000082d29d3d9 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 265
    frame #37: 0x000000082d29e7b5 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 533
    frame #38: 0x000000083062e9bd libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 173
    frame #39: 0x0000000828bc0743 libQt5Gui.so.5`QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 3331
    frame #40: 0x0000000828ba43dc libQt5Gui.so.5`QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 220
    frame #41: 0x0000000849dd506f libQt5XcbQpa.so.5`___lldb_unnamed_symbol3546 + 31
    frame #42: 0x0000000838f4d834 libglib-2.0.so.0`___lldb_unnamed_symbol2506 + 372
    frame #43: 0x0000000838f4dc01 libglib-2.0.so.0`___lldb_unnamed_symbol2507 + 609
    frame #44: 0x0000000838f4dc98 libglib-2.0.so.0`g_main_context_iteration + 104
    frame #45: 0x0000000830683400 libQt5Core.so.5`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 96
    frame #46: 0x000000083062b2e6 libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 566
    frame #47: 0x000000082d4102fd libQt5Widgets.so.5`___lldb_unnamed_symbol15785 + 205
    frame #48: 0x000000082d4101e3 libQt5Widgets.so.5`QMenu::exec(QPoint const&, QAction*) + 51
    frame #49: 0x0000000000b13963 zenoedit`sceneMenuEvent(pScene=0x000000085af0d800, pos=0x000000082652d9f0, scenePos=0x000000082652d9b0, seledItems=0x000000082652d9a8, items=0x000000082652d9a0, subgIdx=0x000000082652d9d0) at scenemenu.cpp:594:21
    frame #50: 0x0000000000a556bc zenoedit`_ZenoSubGraphView::contextMenuEvent(this=0x000000085d7ae240, event=0x000000082652de88) at zenosubgraphview.cpp:479:30
    frame #51: 0x000000082d2d6eaf libQt5Widgets.so.5`QWidget::event(QEvent*) + 1775
    frame #52: 0x000000082d375f2b libQt5Widgets.so.5`QFrame::event(QEvent*) + 43
    frame #53: 0x000000082d5f2b61 libQt5Widgets.so.5`QGraphicsView::viewportEvent(QEvent*) + 1217
    frame #54: 0x000000083062ed19 libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 265
    frame #55: 0x000000082d29d3c4 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 244
    frame #56: 0x000000082d29f6e3 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 4419
    frame #57: 0x000000083062e9bd libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 173
    frame #58: 0x000000082d2f4a77 libQt5Widgets.so.5`___lldb_unnamed_symbol14078 + 3559
    frame #59: 0x000000082d2f3391 libQt5Widgets.so.5`___lldb_unnamed_symbol14072 + 225
    frame #60: 0x000000082d29d3d9 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 265
    frame #61: 0x000000082d29e7b5 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 533
    frame #62: 0x000000083062e9bd libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 173
    frame #63: 0x0000000828bc0743 libQt5Gui.so.5`QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 3331
    frame #64: 0x0000000828ba43dc libQt5Gui.so.5`QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 220
    frame #65: 0x0000000849dd506f libQt5XcbQpa.so.5`___lldb_unnamed_symbol3546 + 31
    frame #66: 0x0000000838f4d834 libglib-2.0.so.0`___lldb_unnamed_symbol2506 + 372
    frame #67: 0x0000000838f4dc01 libglib-2.0.so.0`___lldb_unnamed_symbol2507 + 609
    frame #68: 0x0000000838f4dc98 libglib-2.0.so.0`g_main_context_iteration + 104
    frame #69: 0x0000000830683400 libQt5Core.so.5`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 96
    frame #70: 0x000000083062b2e6 libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 566
    frame #71: 0x000000083062f05e libQt5Core.so.5`QCoreApplication::exec() + 142
    frame #72: 0x00000000009cb4c9 zenoedit`main(argc=1, argv=0x000000082652e8f0) at main.cpp:132:18
    frame #73: 0x00000000005f9450 zenoedit`_start(ap=<unavailable>, cleanup=<unavailable>) at crt1_c.c:71:7

Environment

teachmain commented 5 months ago

which node you added, or just ever node will crash?

Martinfx commented 5 months ago

shader->makecamera but crash every

Martinfx commented 5 months ago
lldb zenoedit
(lldb) target create "zenoedit"
Current executable set to '/usr/local/bin/zenoedit' (x86_64).
(lldb) run
Process 2085 launched: '/usr/local/bin/zenoedit' (x86_64)
[I 00:09:05.356] (/usr/home/maxfx/Documents/FreeBSD-Ports/zeno/work/zeno-2023.11.16/ui/zenoedit/startup/zstartup.cpp:154) zeno unknown debug 2024.04.23 20:14:19 gcc+tcp+tm
Process 2085 stopped
* thread #1, name = 'zenoedit', stop reason = signal SIGSEGV: invalid permissions for mapped object (fault address: 0x8326331b8)
    frame #0: 0x00000008326331b8 libcxxrt.so.1`vtable for __cxxabiv1::__si_class_type_info + 16
libcxxrt.so.1`vtable for __cxxabiv1::__si_class_type_info:
->  0x8326331b8 <+16>: adcb   %al, (%rbx)
    0x8326331ba <+18>: orl    (%rsi), %ebp
    0x8326331bc <+20>: orb    %al, (%rax)
    0x8326331be <+22>: addb   %al, (%rax)
(lldb) bt
* thread #1, name = 'zenoedit', stop reason = signal SIGSEGV: invalid permissions for mapped object (fault address: 0x8326331b8)
  * frame #0: 0x00000008326331b8 libcxxrt.so.1`vtable for __cxxabiv1::__si_class_type_info + 16
    frame #1: 0x000000082e0acf03 libstdc++.so.6`__dynamic_cast + 131
    frame #2: 0x0000000000a48608 zenoedit`ZenoSubGraphScene::onRowsInserted(this=0x000000085cc69800, subgIdx=0x0000000825ecb550, parent=0x0000000825ecb710, first=0, last=0) at zenosubgraphscene.cpp:1042:9
    frame #3: 0x00000000008f9528 zenoedit`ZenoSubGraphScene::qt_static_metacall(_o=0x000000085cc69800, _c=InvokeMetaMethod, _id=3, _a=0x0000000825ecb4f0) at moc_zenosubgraphscene.cpp:127:35
    frame #4: 0x000000082f662d84 libQt5Core.so.5`___lldb_unnamed_symbol9680 + 1284
    frame #5: 0x00000000006f1849 zenoedit`IGraphsModel::_rowsInserted(this=0x000000085cc34c00, _t1=0x0000000825ecb550, _t2=0x0000000825ecb710, _t3=0, _t4=0) at moc_igraphsmodel.cpp:394:26
    frame #6: 0x000000000072d1be zenoedit`GraphsModel::on_subg_rowsInserted(this=0x000000085cc34c00, parent=0x0000000825ecb710, first=0, last=0) at graphsmodel.cpp:1946:23
    frame #7: 0x0000000000775fa2 zenoedit`QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<QModelIndex const&, int, int>, void, void (GraphsModel::*)(QModelIndex const&, int, int)>::call(f=(zenoedit`GraphsModel::on_subg_rowsInserted(QModelIndex const&, int, int) at graphsmodel.cpp:1942:1), o=0x000000085cc34c00, arg=0x0000000825ecb740) at qobjectdefs_impl.h:152:20
    frame #8: 0x0000000000775888 zenoedit`void QtPrivate::FunctionPointer<void (GraphsModel::*)(QModelIndex const&, int, int)>::call<QtPrivate::List<QModelIndex const&, int, int>, void>(f=(zenoedit`GraphsModel::on_subg_rowsInserted(QModelIndex const&, int, int) at graphsmodel.cpp:1942:1), o=0x000000085cc34c00, arg=0x0000000825ecb740) at qobjectdefs_impl.h:185:95
    frame #9: 0x000000000077497d zenoedit`QtPrivate::QSlotObject<void (GraphsModel::*)(QModelIndex const&, int, int), QtPrivate::List<QModelIndex const&, int, int>, void>::impl(which=1, this_=0x000000085cbec200, r=0x000000085cc34c00, a=0x0000000825ecb740, ret=0x0000000000000000) at qobjectdefs_impl.h:418:49
    frame #10: 0x000000082f662cb3 libQt5Core.so.5`___lldb_unnamed_symbol9680 + 1075
    frame #11: 0x000000082f5e4337 libQt5Core.so.5`QAbstractItemModel::endInsertRows() + 263
    frame #12: 0x000000000076f571 zenoedit`SubGraphModel::insertRow(this=0x000000085cc4bd80, row=0, nodeData=0x000000086bb1c368, parent=0x0000000825ecb840) at subgraphmodel.cpp:867:18
    frame #13: 0x000000000076af15 zenoedit`SubGraphModel::appendItem(this=0x000000085cc4bd80, nodeData=0x000000086bb1c368, enableTransaction=false) at subgraphmodel.cpp:180:14
    frame #14: 0x0000000000727067 zenoedit`GraphsModel::addNode(this=0x000000085cc34c00, nodeData=0x000000086bb1c368, subGpIdx=0x000000085cc3a4e0, enableTransaction=false) at graphsmodel.cpp:1063:27
    frame #15: 0x000000000070547c zenoedit`AddNodeCommand::redo(this=0x000000086bb1c350) at command.cpp:27:21
    frame #16: 0x000000082cc2baa1 libQt5Widgets.so.5`QUndoStack::push(QUndoCommand*) + 65
    frame #17: 0x0000000000726f37 zenoedit`GraphsModel::addNode(this=0x000000085cc34c00, nodeData=0x0000000825ecbab8, subGpIdx=0x0000000825ecbb30, enableTransaction=true) at graphsmodel.cpp:1051:22
    frame #18: 0x000000000075a631 zenoedit`NodesMgr::createNewNode(pModel=0x000000085cc34c00, subgIdx=(r = 0, c = 0, i = 1972329529, m = 0x000000085cc34c00), descName=0x000000086bb47040, pt=0x000000086bb47048) at nodesmgr.cpp:15:20
    frame #19: 0x0000000000a21c75 zenoedit`operator(__closure=0x000000086bb47020) at zenonewmenu.cpp:173:40
    frame #20: 0x0000000000a22942 zenoedit`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ZenoNewnodeMenu::getCategoryActions(IGraphsModel*, QModelIndex, QPointF)::<lambda()> >::call(f=0x000000086bb47020, arg=0x0000000825ecbd00) at qobjectdefs_impl.h:146:14
    frame #21: 0x0000000000a22923 zenoedit`QtPrivate::Functor<ZenoNewnodeMenu::getCategoryActions(IGraphsModel*, QModelIndex, QPointF)::<lambda()>, 0>::call<QtPrivate::List<>, void>(f=0x000000086bb47020, (null)=0x0000000861be6650, arg=0x0000000825ecbd00) &, void *, void **) at qobjectdefs_impl.h:256:83
    frame #22: 0x0000000000a228ac zenoedit`QtPrivate::QFunctorSlotObject<ZenoNewnodeMenu::getCategoryActions(IGraphsModel*, QModelIndex, QPointF)::<lambda()>, 0, QtPrivate::List<>, void>::impl(which=1, this_=0x000000086bb47010, r=0x000000
jsm222 commented 5 months ago

kern.elf32.allow_wx=1 kern.elf64.allow_wx=1 might help

Martinfx commented 5 months ago
maxfx@hades /u/h/maxfx> sudo sysctl kern.elf32.allow_wx=1
kern.elf32.allow_wx: 1 -> 1
maxfx@hades /u/h/maxfx [127]> sudo sysctl kern.elf64.allow_wx=1
kern.elf64.allow_wx: 1 -> 1

without result

jsm222 commented 5 months ago

zeno::log_info("zeno {} {} {} {}", plat, ver, TIME, feat); is plat, and ver and feat set?

Martinfx commented 5 months ago

This bug is maybe mixing library between gcc and clang. I open new bug with clang

Martinfx commented 5 months ago

I added CXXFLAGS= -stdlib=libc++ and it works without segfaults