View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0006094 | DarkRadiant | Saving and loading | public | 07.09.2022 03:56 | 13.01.2024 05:32 |
| Reporter | jonri | Assigned To | greebo | ||
| Priority | normal | Severity | normal | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | Linux | ||||
| Product Version | 3.2.0 | ||||
| Target Version | 3.3.0 | Fixed in Version | 3.3.0 | ||
| Summary | 0006094: Loading map results in "Real Hard DarkRadiant Failure" exception | ||||
| Description | When loading a map file, DR crashes after the loading progress completes. The exception is "Cannot attach geometry without any shader". Starting from a blank map instead, I can create brushes, models, entities, assign textures, etc without crashing. This happens when DR is compiled against wxwidgets 3.2 but not 3.0.x. I reproduced this with my flatpak build on the tagged DR 3.2.0 release and on Arch Linux building the latest master. | ||||
| Steps To Reproduce | 1. Open a .map file (normally or from a FM's .pk4 file) 2. Wait for crash | ||||
| Additional Information | Stack trace is attached | ||||
| Tags | No tags attached. | ||||
| Attached Files | real_hard_darkradiant_stacktrace.txt (70,615 bytes)
1 RadiantApp::OnExceptionInMainLoop RadiantApp.cpp 188 0x56172f4dab84
2 wxEvtHandler::WXConsumeException() 0x7f47d0986e3b
3 ?? 0x7f47d08984e4
4 wxWindow::GTKSendPaintEvents(_cairo *) 0x7f47d03e6107
5 ?? 0x7f47d0c272ce
6 ?? 0x7f47ce884fd8
7 ?? 0x7f47ceb261c5
8 g_closure_invoke 0x7f47cf067fd0
9 ?? 0x7f47cf094838
10 g_signal_emit_valist 0x7f47cf0856cc
11 g_signal_emit 0x7f47cf085f14
12 ?? 0x7f47ceb359f3
13 gtk_container_propagate_draw 0x7f47ce90775e
14 ?? 0x7f47ce981052
15 ?? 0x7f47ce884fd8
16 ?? 0x7f47ceb261c5
17 g_closure_invoke 0x7f47cf067f06
18 ?? 0x7f47cf094967
19 g_signal_emit_valist 0x7f47cf0856cc
20 g_signal_emit 0x7f47cf085f14
21 ?? 0x7f47ceb359f3
22 gtk_container_propagate_draw 0x7f47ce90775e
23 ?? 0x7f47ce981052
24 ?? 0x7f47ce884fd8
25 ?? 0x7f47ceb261c5
26 g_closure_invoke 0x7f47cf067f06
27 ?? 0x7f47cf094967
28 g_signal_emit_valist 0x7f47cf0856cc
29 g_signal_emit 0x7f47cf085f14
30 ?? 0x7f47ceb359f3
31 gtk_container_propagate_draw 0x7f47ce90775e
32 ?? 0x7f47ce981052
33 ?? 0x7f47ce884fd8
34 ?? 0x7f47ceb261c5
35 g_closure_invoke 0x7f47cf067f06
36 ?? 0x7f47cf094967
37 g_signal_emit_valist 0x7f47cf0856cc
38 g_signal_emit 0x7f47cf085f14
39 ?? 0x7f47ceb359f3
40 gtk_container_propagate_draw 0x7f47ce90775e
41 ?? 0x7f47ce981052
42 ?? 0x7f47ce884fd8
43 ?? 0x7f47ceb261c5
44 g_closure_invoke 0x7f47cf067fd0
45 ?? 0x7f47cf094967
46 g_signal_emit_valist 0x7f47cf0856cc
47 g_signal_emit 0x7f47cf085f14
48 ?? 0x7f47ceb359f3
49 gtk_container_propagate_draw 0x7f47ce90775e
50 ?? 0x7f47ce907886
51 ?? 0x7f47ce8b5611
52 ?? 0x7f47ce9080e1
53 ?? 0x7f47ce913cdc
54 ?? 0x7f47ce8b5b15
55 ?? 0x7f47ceb358da
56 gtk_container_propagate_draw 0x7f47ce90775e
57 ?? 0x7f47ce907886
58 ?? 0x7f47ceb358da
59 ?? 0x7f47ceb41f93
60 gtk_main_do_event 0x7f47ce9e2feb
61 ?? 0x7f47ce744cc3
62 ?? 0x7f47ce74c882
63 ?? 0x7f47ce7511ac
64 ?? 0x7f47ce7513b1
65 g_signal_emit_valist 0x7f47cf085dd4
66 g_signal_emit 0x7f47cf085f14
67 ?? 0x7f47ce7488b1
68 ?? 0x7f47ce7356ae
69 ?? 0x7f47d10b5337
70 g_main_context_dispatch 0x7f47d10b4b2b
71 ?? 0x7f47d110ae79
72 g_main_context_iteration 0x7f47d10b2252
73 gtk_main_iteration 0x7f47ce9d8ecb
74 wxGUIEventLoop::DoYieldFor(long) 0x7f47d03bf1d0
75 wxEventLoopBase::YieldFor(long) 0x7f47d08cf765
76 ui::LongRunningOperationHandler::onMessage LongRunningOperationHandler.cpp 65 0x56172f62670e
77 std::__invoke_impl<void, void (ui::LongRunningOperationHandler:: *&)(radiant::LongRunningOperationMessage&), ui::LongRunningOperationHandler *&, radiant::LongRunningOperationMessage&> invoke.h 74 0x56172f628af3
78 std::__invoke<void (ui::LongRunningOperationHandler:: *&)(radiant::LongRunningOperationMessage&), ui::LongRunningOperationHandler *&, radiant::LongRunningOperationMessage&> invoke.h 96 0x56172f6289c5
79 std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>::__call<void, radiant::LongRunningOperationMessage&, 0ul, 1ul>(std::tuple<radiant::LongRunningOperationMessage&>&&, std::_Index_tuple<0ul, 1ul>) functional 484 0x56172f62880a
80 std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>::operator()<radiant::LongRunningOperationMessage&, void>(radiant::LongRunningOperationMessage&) functional 567 0x56172f6285a2
81 std::__invoke_impl<void, std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>&, radiant::LongRunningOperationMessage&>(std::__invoke_other, std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>&, radiant::LongRunningOperationMessage&) invoke.h 61 0x56172f6282ff
82 std::__invoke_r<void, std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>&, radiant::LongRunningOperationMessage&>(std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>&, radiant::LongRunningOperationMessage&) invoke.h 111 0x56172f627e93
83 std::_Function_handler<void (radiant::LongRunningOperationMessage&), std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>>::_M_invoke(std::_Any_data const&, radiant::LongRunningOperationMessage&) std_function.h 290 0x56172f6278bb
84 std::function<void (radiant::LongRunningOperationMessage&)>::operator()(radiant::LongRunningOperationMessage&) const std_function.h 591 0x56172f62886f
85 radiant::TypeListener<radiant::LongRunningOperationMessage>::operator() imessagebus.h 122 0x56172f628643
86 std::__invoke_impl<void, radiant::TypeListener<radiant::LongRunningOperationMessage>&, radiant::IMessage&> invoke.h 61 0x56172f628455
87 std::__invoke_r<void, radiant::TypeListener<radiant::LongRunningOperationMessage>&, radiant::IMessage&> invoke.h 111 0x56172f62803d
88 std::_Function_handler<void (radiant::IMessage&), radiant::TypeListener<radiant::LongRunningOperationMessage>>::_M_invoke(std::_Any_data const&, radiant::IMessage&) std_function.h 290 0x56172f627a6d
89 std::function<void (radiant::IMessage&)>::operator()(radiant::IMessage&) const std_function.h 591 0x7f47c377d2a5
90 radiant::MessageBus::sendMessage MessageBus.h 72 0x7f47c377c94f
91 radiant::ScopedLongRunningOperation::ScopedLongRunningOperation ScopedLongRunningOperation.h 22 0x7f47c34565a3
92 map::Map::loadMapResourceFromLocation Map.cpp 180 0x7f47c3604c2b
93 map::Map::loadMapResourceFromArchive Map.cpp 134 0x7f47c36047ca
94 map::Map::openMapFromArchive Map.cpp 1132 0x7f47c360c029
95 std::__invoke_impl<void, void ( *&)(std::vector<cmd::Argument> const&), std::vector<cmd::Argument> const&> invoke.h 61 0x7f47c334b299
96 std::__invoke_r<void, void ( *&)(std::vector<cmd::Argument> const&), std::vector<cmd::Argument> const&> invoke.h 111 0x7f47c3349fd1
97 std::_Function_handler<void (std::vector<cmd::Argument> const&), void ( *)(std::vector<cmd::Argument> const&)>::_M_invoke(std::_Any_data const&, std::vector<cmd::Argument> const&) std_function.h 290 0x7f47c3348e4c
98 std::function<void (std::vector<cmd::Argument> const&)>::operator()(std::vector<cmd::Argument> const&) const std_function.h 591 0x7f47c33f53c5
99 cmd::Command::execute Command.h 83 0x7f47c33f39b9
100 cmd::CommandSystem::executeCommand CommandSystem.cpp 380 0x7f47c33f04ac
101 cmd::ICommandSystem::executeCommand icommandsystem.h 371 0x56172f52fe63
102 ui::MapSelector::OpenMapFromProject MapSelector.cpp 102 0x56172f64a03f
103 std::__invoke_impl<void, void ( *&)(std::vector<cmd::Argument> const&), std::vector<cmd::Argument> const&> invoke.h 61 0x56172f511759
104 std::__invoke_r<void, void ( *&)(std::vector<cmd::Argument> const&), std::vector<cmd::Argument> const&> invoke.h 111 0x56172f50fc95
105 std::_Function_handler<void (std::vector<cmd::Argument> const&), void ( *)(std::vector<cmd::Argument> const&)>::_M_invoke(std::_Any_data const&, std::vector<cmd::Argument> const&) std_function.h 290 0x56172f50d716
106 std::function<void (std::vector<cmd::Argument> const&)>::operator()(std::vector<cmd::Argument> const&) const std_function.h 591 0x7f47c33f53c5
107 cmd::Command::execute Command.h 83 0x7f47c33f39b9
108 cmd::CommandSystem::executeCommand CommandSystem.cpp 380 0x7f47c33f04ac
109 cmd::CommandSystem::execute CommandSystem.cpp 363 0x7f47c33f030c
110 ui::EventManager::onMenuItemClicked EventManager.cpp 376 0x56172f478139
111 wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler *, wxEvent&) 0x7f47d09835b2
112 wxEvtHandler::SearchDynamicEventTable(wxEvent&) 0x7f47d0985ff7
113 wxEvtHandler::TryHereOnly(wxEvent&) 0x7f47d0986345
114 wxEvtHandler::ProcessEventLocally(wxEvent&) 0x7f47d09863ef
115 wxEvtHandler::ProcessEvent(wxEvent&) 0x7f47d098650a
116 wxEvtHandler::SafelyProcessEvent(wxEvent&) 0x7f47d0986ebb
117 wxMenuBase::DoProcessEvent(wxMenuBase *, wxEvent&, wxWindow *) 0x7f47d022e2be
118 wxMenuBase::SendEvent(int, int) 0x7f47d022e3e3
119 ?? 0x7f47d042d6df
120 g_closure_invoke 0x7f47cf067fd0
121 ?? 0x7f47cf094838
122 g_signal_emit_valist 0x7f47cf085c85
123 g_signal_emit 0x7f47cf085f14
124 gtk_widget_activate 0x7f47ceb2e71d
125 gtk_menu_shell_activate_item 0x7f47ce9f85dd
126 ?? 0x7f47ce9f88aa
127 ?? 0x7f47ce887c89
128 g_signal_emit_valist 0x7f47cf085dd4
129 g_signal_emit 0x7f47cf085f14
130 ?? 0x7f47ceb44815
131 ?? 0x7f47ce9e20eb
132 gtk_main_do_event 0x7f47ce9e2fcb
133 ?? 0x7f47ce744cc3
134 ?? 0x7f47ce793068
135 g_main_context_dispatch 0x7f47d10b4b2b
136 ?? 0x7f47d110ae79
137 g_main_loop_run 0x7f47d10b408f
138 gtk_main 0x7f47ce9d8e2f
139 wxGUIEventLoop::DoRun() 0x7f47d03b2056
140 wxEventLoopBase::Run() 0x7f47d08d0862
141 wxAppConsoleBase::MainLoop() 0x7f47d08acf08
142 wxEntry(int&, wchar_t * *) 0x7f47d090efa0
143 main main.cpp 7 0x56172f4d13ef
| ||||
|
Are you able to set a breakpoint on the line throwing that exception? It's a specific line somewhere in the render libs. Are all maps crashing or just specific ones? |
|
|
I'm attaching a stacktrace from the line throwing the exception, and the state of the local variables at that point. I loaded a few FMs as well as a couple small personal test maps that had a variety of entities, and those all crashed. Next I made a new map from scratch to save and load. I made a brush, hollowed it into a room, and textured it. Upon saving, reloading DR, and loading this map, it didn't crash but the map appeared to be empty. I made an additional room and saved it to the same map, reloaded, and then both rooms showed up. I added a patch since that's what was in the stack trace and that saved/loaded successfully. I'm thinking about bisecting one of the small maps, removing half at a time with a text editor until I find a specific entity that makes it crash. stacktrace2.txt (96,957 bytes)
1 render::RenderableGeometry::attachToEntity RenderableGeometry.h 217 0x7f22fb736703
2 PatchNode::onPreRender PatchNode.cpp 359 0x7f22fb770fc4
3 render::RenderableCollectorBase::processNode RenderableCollectorBase.h 51 0x558de850fc80
4 render::RenderableCollectionWalker::CollectRenderablesInScene(render::RenderableCollectorBase&, VolumeTest const&)::{lambda(std::shared_ptr<scene::INode> const&)#1}::operator()(std::shared_ptr<scene::INode> const&) const RenderableCollectionWalker.h 29 0x558de8510703
5 std::__invoke_impl<bool, render::RenderableCollectionWalker::CollectRenderablesInScene(render::RenderableCollectorBase&, VolumeTest const&)::{lambda(std::shared_ptr<scene::INode> const&)#1}&, std::shared_ptr<scene::INode> const&>(std::__invoke_other, render::RenderableCollectionWalker::CollectRenderablesInScene(render::RenderableCollectorBase&, VolumeTest const&)::{lambda(std::shared_ptr<scene::INode> const&)#1}&, std::shared_ptr<scene::INode> const&) invoke.h 61 0x558de85243bd
6 std::__invoke_r<bool, render::RenderableCollectionWalker::CollectRenderablesInScene(render::RenderableCollectorBase&, VolumeTest const&)::{lambda(std::shared_ptr<scene::INode> const&)#1}&, std::shared_ptr<scene::INode> const&>(render::RenderableCollectionWalker::CollectRenderablesInScene(render::RenderableCollectorBase&, VolumeTest const&)::{lambda(std::shared_ptr<scene::INode> const&)#1}&, std::shared_ptr<scene::INode> const&) invoke.h 114 0x558de851e314
7 std::_Function_handler<bool (std::shared_ptr<scene::INode> const&), render::RenderableCollectionWalker::CollectRenderablesInScene(render::RenderableCollectorBase&, VolumeTest const&)::{lambda(std::shared_ptr<scene::INode> const&)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<scene::INode> const&) std_function.h 290 0x558de85199d1
8 std::function<bool (std::shared_ptr<scene::INode> const&)>::operator()(std::shared_ptr<scene::INode> const&) const std_function.h 591 0x7f23076ec779
9 scene::SceneGraph::foreachNodeInVolume_r(scene::ISPNode const&, VolumeTest const&, std::function<bool (std::shared_ptr<scene::INode> const&)> const&, bool) SceneGraph.cpp 304 0x7f22fb816beb
10 scene::SceneGraph::foreachNodeInVolume(VolumeTest const&, std::function<bool (std::shared_ptr<scene::INode> const&)> const&, bool) SceneGraph.cpp 260 0x7f22fb8168c4
11 scene::SceneGraph::foreachVisibleNodeInVolume(VolumeTest const&, std::function<bool (std::shared_ptr<scene::INode> const&)> const&) SceneGraph.cpp 240 0x7f22fb8167bd
12 render::RenderableCollectionWalker::CollectRenderablesInScene RenderableCollectionWalker.h 27 0x558de85107dd
13 ui::CamWnd::Cam_Draw CamWnd.cpp 806 0x558de8501612
14 ui::CamWnd::onRender CamWnd.cpp 936 0x558de8502087
15 std::__invoke_impl<bool, bool (ui::CamWnd:: *&)(), ui::CamWnd *&> invoke.h 74 0x558de85424a9
16 std::__invoke<bool (ui::CamWnd:: *&)(), ui::CamWnd *&> invoke.h 96 0x558de853ce1d
17 std::_Bind<bool (ui::CamWnd:: *(ui::CamWnd *))()>::__call<bool, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) functional 484 0x558de8536493
18 std::_Bind<bool (ui::CamWnd:: *(ui::CamWnd *))()>::operator()<, bool>() functional 567 0x558de852e889
19 std::__invoke_impl<bool, std::_Bind<bool (ui::CamWnd:: *(ui::CamWnd *))()>&>(std::__invoke_other, std::_Bind<bool (ui::CamWnd:: *(ui::CamWnd *))()>&) invoke.h 61 0x558de85248e2
20 std::__invoke_r<bool, std::_Bind<bool (ui::CamWnd:: *(ui::CamWnd *))()>&>(std::_Bind<bool (ui::CamWnd:: *(ui::CamWnd *))()>&) invoke.h 114 0x558de851e9fe
21 std::_Function_handler<bool (), std::_Bind<bool (ui::CamWnd:: *(ui::CamWnd *))()>>::_M_invoke(std::_Any_data const&) std_function.h 290 0x558de8519e87
22 std::function<bool ()>::operator()() const std_function.h 591 0x558de885da7e
23 wxutil::GLWidget::OnPaint GLWidget.cpp 98 0x7f2307d54dbf
24 wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler *, wxEvent&) 0x7f23073835b2
25 wxEvtHandler::SearchDynamicEventTable(wxEvent&) 0x7f2307385ff7
26 wxEvtHandler::TryHereOnly(wxEvent&) 0x7f2307386345
27 wxEvtHandler::ProcessEventLocally(wxEvent&) 0x7f23073863ef
28 wxEvtHandler::ProcessEvent(wxEvent&) 0x7f230738650a
29 wxEvtHandler::SafelyProcessEvent(wxEvent&) 0x7f2307386ebb
30 wxWindow::GTKSendPaintEvents(_cairo *) 0x7f2306de6107
31 ?? 0x7f23074c92ce
32 ?? 0x7f2305084fd8
33 ?? 0x7f23053261c5
34 g_closure_invoke 0x7f23058e1fd0
35 ?? 0x7f230590e838
36 g_signal_emit_valist 0x7f23058ff6cc
37 g_signal_emit 0x7f23058fff14
38 ?? 0x7f23053359f3
39 gtk_container_propagate_draw 0x7f230510775e
40 ?? 0x7f2305181052
41 ?? 0x7f2305084fd8
42 ?? 0x7f23053261c5
43 g_closure_invoke 0x7f23058e1f06
44 ?? 0x7f230590e967
45 g_signal_emit_valist 0x7f23058ff6cc
46 g_signal_emit 0x7f23058fff14
47 ?? 0x7f23053359f3
48 gtk_container_propagate_draw 0x7f230510775e
49 ?? 0x7f2305181052
50 ?? 0x7f2305084fd8
51 ?? 0x7f23053261c5
52 g_closure_invoke 0x7f23058e1f06
53 ?? 0x7f230590e967
54 g_signal_emit_valist 0x7f23058ff6cc
55 g_signal_emit 0x7f23058fff14
56 ?? 0x7f23053359f3
57 gtk_container_propagate_draw 0x7f230510775e
58 ?? 0x7f2305181052
59 ?? 0x7f2305084fd8
60 ?? 0x7f23053261c5
61 g_closure_invoke 0x7f23058e1f06
62 ?? 0x7f230590e967
63 g_signal_emit_valist 0x7f23058ff6cc
64 g_signal_emit 0x7f23058fff14
65 ?? 0x7f23053359f3
66 gtk_container_propagate_draw 0x7f230510775e
67 ?? 0x7f2305181052
68 ?? 0x7f2305084fd8
69 ?? 0x7f23053261c5
70 g_closure_invoke 0x7f23058e1fd0
71 ?? 0x7f230590e967
72 g_signal_emit_valist 0x7f23058ff6cc
73 g_signal_emit 0x7f23058fff14
74 ?? 0x7f23053359f3
75 gtk_container_propagate_draw 0x7f230510775e
76 ?? 0x7f2305107886
77 ?? 0x7f23050b5611
78 ?? 0x7f23051080e1
79 ?? 0x7f2305113cdc
80 ?? 0x7f23050b5b15
81 ?? 0x7f23053358da
82 gtk_container_propagate_draw 0x7f230510775e
83 ?? 0x7f2305107886
84 ?? 0x7f23053358da
85 ?? 0x7f2305341f93
86 gtk_main_do_event 0x7f23051e2feb
87 ?? 0x7f2305812cc3
88 ?? 0x7f230581a882
89 ?? 0x7f230581f1ac
90 ?? 0x7f230581f3b1
91 g_signal_emit_valist 0x7f23058ffdd4
92 g_signal_emit 0x7f23058fff14
93 ?? 0x7f23058168b1
94 ?? 0x7f23058036ae
95 ?? 0x7f2307957337
96 g_main_context_dispatch 0x7f2307956b2b
97 ?? 0x7f23079ace79
98 g_main_context_iteration 0x7f2307954252
99 gtk_main_iteration 0x7f23051d8ecb
100 wxGUIEventLoop::DoYieldFor(long) 0x7f2306dbf1d0
101 wxEventLoopBase::YieldFor(long) 0x7f23072cf765
102 ui::LongRunningOperationHandler::onMessage LongRunningOperationHandler.cpp 65 0x558de872b70e
103 std::__invoke_impl<void, void (ui::LongRunningOperationHandler:: *&)(radiant::LongRunningOperationMessage&), ui::LongRunningOperationHandler *&, radiant::LongRunningOperationMessage&> invoke.h 74 0x558de872daf3
104 std::__invoke<void (ui::LongRunningOperationHandler:: *&)(radiant::LongRunningOperationMessage&), ui::LongRunningOperationHandler *&, radiant::LongRunningOperationMessage&> invoke.h 96 0x558de872d9c5
105 std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>::__call<void, radiant::LongRunningOperationMessage&, 0ul, 1ul>(std::tuple<radiant::LongRunningOperationMessage&>&&, std::_Index_tuple<0ul, 1ul>) functional 484 0x558de872d80a
106 std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>::operator()<radiant::LongRunningOperationMessage&, void>(radiant::LongRunningOperationMessage&) functional 567 0x558de872d5a2
107 std::__invoke_impl<void, std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>&, radiant::LongRunningOperationMessage&>(std::__invoke_other, std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>&, radiant::LongRunningOperationMessage&) invoke.h 61 0x558de872d2ff
108 std::__invoke_r<void, std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>&, radiant::LongRunningOperationMessage&>(std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>&, radiant::LongRunningOperationMessage&) invoke.h 111 0x558de872ce93
109 std::_Function_handler<void (radiant::LongRunningOperationMessage&), std::_Bind<void (ui::LongRunningOperationHandler:: *(ui::LongRunningOperationHandler *, std::_Placeholder<1>))(radiant::LongRunningOperationMessage&)>>::_M_invoke(std::_Any_data const&, radiant::LongRunningOperationMessage&) std_function.h 290 0x558de872c8bb
110 std::function<void (radiant::LongRunningOperationMessage&)>::operator()(radiant::LongRunningOperationMessage&) const std_function.h 591 0x558de872d86f
111 radiant::TypeListener<radiant::LongRunningOperationMessage>::operator() imessagebus.h 122 0x558de872d643
112 std::__invoke_impl<void, radiant::TypeListener<radiant::LongRunningOperationMessage>&, radiant::IMessage&> invoke.h 61 0x558de872d455
113 std::__invoke_r<void, radiant::TypeListener<radiant::LongRunningOperationMessage>&, radiant::IMessage&> invoke.h 111 0x558de872d03d
114 std::_Function_handler<void (radiant::IMessage&), radiant::TypeListener<radiant::LongRunningOperationMessage>>::_M_invoke(std::_Any_data const&, radiant::IMessage&) std_function.h 290 0x558de872ca6d
115 std::function<void (radiant::IMessage&)>::operator()(radiant::IMessage&) const std_function.h 591 0x7f22fb77d2a5
116 radiant::MessageBus::sendMessage MessageBus.h 72 0x7f22fb77c94f
117 radiant::ScopedLongRunningOperation::ScopedLongRunningOperation ScopedLongRunningOperation.h 22 0x7f22fb4565a3
118 map::Map::loadMapResourceFromLocation Map.cpp 180 0x7f22fb604c2b
119 map::Map::loadMapResourceFromPath Map.cpp 128 0x7f22fb6046ca
120 map::Map::load Map.cpp 605 0x7f22fb6070d0
121 map::Map::openMapCmd Map.cpp 1106 0x7f22fb60bbe2
122 std::__invoke_impl<void, void (map::Map:: *&)(std::vector<cmd::Argument> const&), map::Map *&, std::vector<cmd::Argument> const&> invoke.h 74 0x7f22fb621997
123 std::__invoke<void (map::Map:: *&)(std::vector<cmd::Argument> const&), map::Map *&, std::vector<cmd::Argument> const&> invoke.h 96 0x7f22fb620f67
124 std::_Bind<void (map::Map:: *(map::Map *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>::__call<void, std::vector<cmd::Argument> const&, 0ul, 1ul>(std::tuple<std::vector<cmd::Argument> const&>&&, std::_Index_tuple<0ul, 1ul>) functional 484 0x7f22fb62030a
125 std::_Bind<void (map::Map:: *(map::Map *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>::operator()<std::vector<cmd::Argument> const&, void>(std::vector<cmd::Argument> const&) functional 567 0x7f22fb61e900
126 std::__invoke_impl<void, std::_Bind<void (map::Map:: *(map::Map *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>&, std::vector<cmd::Argument> const&>(std::__invoke_other, std::_Bind<void (map::Map:: *(map::Map *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>&, std::vector<cmd::Argument> const&) invoke.h 61 0x7f22fb61c89f
127 std::__invoke_r<void, std::_Bind<void (map::Map:: *(map::Map *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>&, std::vector<cmd::Argument> const&>(std::_Bind<void (map::Map:: *(map::Map *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>&, std::vector<cmd::Argument> const&) invoke.h 111 0x7f22fb61a781
128 std::_Function_handler<void (std::vector<cmd::Argument> const&), std::_Bind<void (map::Map:: *(map::Map *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>>::_M_invoke(std::_Any_data const&, std::vector<cmd::Argument> const&) std_function.h 290 0x7f22fb617c7b
129 std::function<void (std::vector<cmd::Argument> const&)>::operator()(std::vector<cmd::Argument> const&) const std_function.h 591 0x7f22fb3f53c5
130 cmd::Command::execute Command.h 83 0x7f22fb3f39b9
131 cmd::CommandSystem::executeCommand CommandSystem.cpp 380 0x7f22fb3f04ac
132 cmd::ICommandSystem::executeCommand icommandsystem.h 365 0x7f22fb5b353f
133 operator() MRU.cpp 127 0x7f22fb63cff7
134 std::__invoke_impl<void, map::MRU::loadMRUMap(const cmd::ArgumentList&)::<lambda(std::size_t, const std::string&)>&, long unsigned int, const std::string&>(std::__invoke_other, struct {...} &) invoke.h 61 0x7f22fb63deaa
135 std::__invoke_r<void, map::MRU::loadMRUMap(const cmd::ArgumentList&)::<lambda(std::size_t, const std::string&)>&, long unsigned int, const std::string&>(struct {...} &) invoke.h 111 0x7f22fb63dd58
136 std::_Function_handler<void(long unsigned int, const std::string&), map::MRU::loadMRUMap(const cmd::ArgumentList&)::<lambda(std::size_t, const std::string&)>>::_M_invoke(const std::_Any_data &, unsigned long &&, const std::string &) std_function.h 290 0x7f22fb63dc16
137 std::function<void (unsigned long, std::string const&)>::operator()(unsigned long, std::string const&) const std_function.h 591 0x7f22fb63e889
138 map::MRU::foreachItem(std::function<void (unsigned long, std::string const&)> const&) MRU.cpp 89 0x7f22fb63ce8d
139 map::MRU::loadMRUMap MRU.cpp 123 0x7f22fb63d2bd
140 std::__invoke_impl<void, void (map::MRU:: *&)(std::vector<cmd::Argument> const&), map::MRU *&, std::vector<cmd::Argument> const&> invoke.h 74 0x7f22fb640365
141 std::__invoke<void (map::MRU:: *&)(std::vector<cmd::Argument> const&), map::MRU *&, std::vector<cmd::Argument> const&> invoke.h 96 0x7f22fb640197
142 std::_Bind<void (map::MRU:: *(map::MRU *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>::__call<void, std::vector<cmd::Argument> const&, 0ul, 1ul>(std::tuple<std::vector<cmd::Argument> const&>&&, std::_Index_tuple<0ul, 1ul>) functional 484 0x7f22fb63fec2
143 std::_Bind<void (map::MRU:: *(map::MRU *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>::operator()<std::vector<cmd::Argument> const&, void>(std::vector<cmd::Argument> const&) functional 567 0x7f22fb63fb58
144 std::__invoke_impl<void, std::_Bind<void (map::MRU:: *(map::MRU *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>&, std::vector<cmd::Argument> const&>(std::__invoke_other, std::_Bind<void (map::MRU:: *(map::MRU *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>&, std::vector<cmd::Argument> const&) invoke.h 61 0x7f22fb63f85f
145 std::__invoke_r<void, std::_Bind<void (map::MRU:: *(map::MRU *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>&, std::vector<cmd::Argument> const&>(std::_Bind<void (map::MRU:: *(map::MRU *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>&, std::vector<cmd::Argument> const&) invoke.h 111 0x7f22fb63f4a1
146 std::_Function_handler<void (std::vector<cmd::Argument> const&), std::_Bind<void (map::MRU:: *(map::MRU *, std::_Placeholder<1>))(std::vector<cmd::Argument> const&)>>::_M_invoke(std::_Any_data const&, std::vector<cmd::Argument> const&) std_function.h 290 0x7f22fb63eec9
147 std::function<void (std::vector<cmd::Argument> const&)>::operator()(std::vector<cmd::Argument> const&) const std_function.h 591 0x7f22fb3f53c5
148 cmd::Command::execute Command.h 83 0x7f22fb3f39b9
149 cmd::CommandSystem::executeCommand CommandSystem.cpp 380 0x7f22fb3f04ac
150 cmd::CommandSystem::execute CommandSystem.cpp 363 0x7f22fb3f030c
151 cmd::Statement::execute Statement.h 26 0x7f22fb3f423f
152 cmd::CommandSystem::executeCommand CommandSystem.cpp 380 0x7f22fb3f04ac
153 cmd::CommandSystem::execute CommandSystem.cpp 363 0x7f22fb3f030c
154 ui::EventManager::onMenuItemClicked EventManager.cpp 376 0x558de857d139
155 wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler *, wxEvent&) 0x7f23073835b2
156 wxEvtHandler::SearchDynamicEventTable(wxEvent&) 0x7f2307385ff7
157 wxEvtHandler::TryHereOnly(wxEvent&) 0x7f2307386345
158 wxEvtHandler::ProcessEventLocally(wxEvent&) 0x7f23073863ef
159 wxEvtHandler::ProcessEvent(wxEvent&) 0x7f230738650a
160 wxEvtHandler::SafelyProcessEvent(wxEvent&) 0x7f2307386ebb
161 wxMenuBase::DoProcessEvent(wxMenuBase *, wxEvent&, wxWindow *) 0x7f2306c2e2be
162 wxMenuBase::SendEvent(int, int) 0x7f2306c2e3e3
163 ?? 0x7f2306e2d6df
164 g_closure_invoke 0x7f23058e1fd0
165 ?? 0x7f230590e838
166 g_signal_emit_valist 0x7f23058ffc85
167 g_signal_emit 0x7f23058fff14
168 gtk_widget_activate 0x7f230532e71d
169 gtk_menu_shell_activate_item 0x7f23051f85dd
170 ?? 0x7f23051f88aa
171 ?? 0x7f2305087c89
172 g_signal_emit_valist 0x7f23058ffdd4
173 g_signal_emit 0x7f23058fff14
174 ?? 0x7f2305344815
175 ?? 0x7f23051e20eb
176 gtk_main_do_event 0x7f23051e2fcb
177 ?? 0x7f2305812cc3
178 ?? 0x7f2305861068
179 g_main_context_dispatch 0x7f2307956b2b
180 ?? 0x7f23079ace79
181 g_main_loop_run 0x7f230795608f
182 gtk_main 0x7f23051d8e2f
183 wxGUIEventLoop::DoRun() 0x7f2306db2056
184 wxEventLoopBase::Run() 0x7f23072d0862
185 wxAppConsoleBase::MainLoop() 0x7f23072acf08
186 wxEntry(int&, wchar_t * *) 0x7f230730efa0
187 main main.cpp 7 0x558de85d63ef
variables.txt (2,644 bytes)
Locals entity @0x558de951f400 entity::StaticGeometryNode [entity::EntityNode] @0x558de951f400 entity::EntityNode [scene::GroupNode] @0x558de951fe28 scene::GroupNode [Snappable] @0x558de951fe30 Snappable [ComponentSelectionTestable] @0x558de951fe38 ComponentSelectionTestable [ComponentEditable] @0x558de951fe40 ComponentEditable [ComponentSnappable] @0x558de951fe48 ComponentSnappable [CurveNode] @0x558de951fe50 CurveNode _catmullRomEditInstance @0x558de95202c0 entity::CurveEditInstance _catmullRomVertices @0x558de9520428 entity::RenderableCurveVertices _nurbsEditInstance @0x558de9520268 entity::CurveEditInstance _nurbsVertices @0x558de95203c0 entity::RenderableCurveVertices _originInstance @0x558de9520348 VertexInstance _pivotShader (null) ShaderPtr _pointShader (null) ShaderPtr _renderOrigin @0x558de951ff30 render::RenderablePivot _renderableOriginVertex @0x558de9520490 entity::RenderableVertex m_aabb_component @0x558de9520318 AABB m_curveBounds @0x558de951ff90 AABB m_curveCatmullRom @0x558de9520150 entity::CurveCatmullRom m_curveNURBS @0x558de9520008 entity::CurveNURBS m_isModel true bool m_modelKey "" std::string m_name "world" std::string m_origin @0x558de951fea0 Vector3 m_originKey @0x558de951fe58 OriginKey m_rotation @0x558de951ff08 RotationMatrix m_rotationKey @0x558de951feb8 entity::RotationKey this @0x558deb7871c0 RenderablePatchTesselation<TesselationIndexer_Triangles> [render::RenderableGeometry] @0x558deb7871c0 render::RenderableGeometry [OpenGLRenderable] @0x558deb7871c0 OpenGLRenderable [vptr] _vptr.OpenGLRenderable [0] 0x7f22fb76ccd0 <RenderablePatchTesselation<TesselationIndexer_Triangles>::~RenderablePatchTesselation()> void* [1] 0x7f22fb76cd0e <RenderablePatchTesselation<TesselationIndexer_Triangles>::~RenderablePatchTesselation()> void* [2] 0x7f22fb358c40 <render::RenderableGeometry::render() const> void* [3] 0x7f22fb76d682 <RenderablePatchTesselation<TesselationIndexer_Triangles>::updateGeometry()> void* _isVisible true bool _lastIndexSize 0 std::size_t _lastVertexSize 0 std::size_t _renderAdapter (null) std::shared_ptr<render::RenderableGeometry::RenderAdapter> _renderEntity 0x0 IRenderEntity* _shader (null) ShaderPtr _surfaceSlot 18446744073709551615 render::IGeometryRenderer::Slot _indexer @0x558deb787210 TesselationIndexer_Triangles _needsUpdate true bool _tess @0x558deb787038 PatchTesselation & _whiteVertexColour true bool Inspector Expressions Return Value Tooltip _renderEntity 0x0 IRenderEntity* |
|
| I think the stacktrace reveals the problem that the camera is trying to draw the scene while it's still under construction after map load. The Yield() call triggers lets all UI controls handle their requests, including the GL widget Paint events - which I guess shouldn't be the case during map load. | |
| Ran into this myself in Arch, in wxGTK 3.2.0 | |
| Should be better now, I couldn't repro the problem anymore after applying the fix. | |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 07.09.2022 03:56 | jonri | New Issue | |
| 07.09.2022 03:56 | jonri | File Added: real_hard_darkradiant_stacktrace.txt | |
| 07.09.2022 09:42 | greebo | Status | new => feedback |
| 07.09.2022 09:42 | greebo | Note Added: 0015234 | |
| 08.09.2022 02:06 | jonri | Note Added: 0015239 | |
| 08.09.2022 02:06 | jonri | File Added: stacktrace2.txt | |
| 08.09.2022 02:06 | jonri | File Added: variables.txt | |
| 08.09.2022 02:06 | jonri | Status | feedback => new |
| 08.09.2022 07:14 | greebo | Note Added: 0015241 | |
| 23.09.2022 09:51 | greebo | Status | new => confirmed |
| 23.09.2022 09:51 | greebo | Note Added: 0015274 | |
| 23.09.2022 09:53 | greebo | Assigned To | => greebo |
| 23.09.2022 09:53 | greebo | Status | confirmed => assigned |
| 23.09.2022 09:53 | greebo | Target Version | => 3.3.0 |
| 23.09.2022 10:10 | greebo | Changeset attached | => DarkRadiant master 07f593a0 |
| 23.09.2022 11:30 | greebo | Status | assigned => resolved |
| 23.09.2022 11:30 | greebo | Resolution | open => fixed |
| 23.09.2022 11:30 | greebo | Fixed in Version | => 3.3.0 |
| 23.09.2022 11:30 | greebo | Note Added: 0015275 | |
| 13.01.2024 05:32 | greebo | Status | resolved => closed |