View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005387 | DarkRadiant | Design/Coding | public | 08.11.2020 20:36 | 23.09.2022 09:51 |
Reporter | BielBdeLuna | Assigned To | greebo | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | Linux | OS | Ubuntu | OS Version | 20.10 |
Product Version | 2.9.0 | ||||
Target Version | 2.9.0 | Fixed in Version | 2.9.0 | ||
Summary | 0005387: segfault when applying a new material to a brush | ||||
Description | Using the last pull from the 2.9.0 branch from github. segfaults when applying a new material to a brush from either the media tab or the textures tab | ||||
Steps To Reproduce | 1 - Open Darkradiant using doom3 2 - select the first material from the media tab: textures/alphalabs/a_enwall13c 3 - click and drag on the y/x 2D screen in order to create a brush with that texture, the brush is drawn in the 3d view as I creat it and draw with the correct material alright. 4 - select the next material on the list in the media tab: textures/alphalabs/a_enwall20d <-- SEGFAULT it can also happen if you have a material-less brush with the default material and then you apply a material from the textures tab. I provided the two GDB traces in the additional info. | ||||
Additional Information | when you apply the matarial from the media tab: $ gdb darkradiant GNU gdb (Ubuntu 9.2-0ubuntu2) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from darkradiant... (gdb) run Starting program: /usr/local/bin/darkradiant [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7ffff1b1a640 (LWP 53759)] [New Thread 0x7ffff1319640 (LWP 53760)] Thread 3 "gdbus" received signal SIG33, Real-time event 33. [Switching to Thread 0x7ffff1319640 (LWP 53760)] 0x00007ffff69a766f in __GI___poll (fds=0x555555ac19f0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 29 ../sysdeps/unix/sysv/linux/poll.c: El fitxer o directori no existeix. (gdb) continue Continuing. Thread 2 "gmain" received signal SIG33, Real-time event 33. [Switching to Thread 0x7ffff1b1a640 (LWP 53759)] 0x00007ffff69a766f in __GI___poll (fds=0x555555aadd60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 29 in ../sysdeps/unix/sysv/linux/poll.c (gdb) continue Continuing. Thread 1 "darkradiant" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff243ba80 (LWP 53755)] wxutil::TreeModel::GetParent (this=0x555556bfa970, item=...) at TreeModel.cpp:584 584 if (owningNode->parent != NULL) (gdb) bt #0 wxutil::TreeModel::GetParent(wxDataViewItem const&) const (this=0x555556bfa970, item=...) at TreeModel.cpp:584 0000001 0x00007ffff7a4d495 in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000002 0x00007ffff7a5084c in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000003 0x00007ffff7a51e9b in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000004 0x00007ffff6230eff in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000005 0x00007ffff623696a in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000006 0x00007ffff62402d5 in gtk_tree_view_set_model () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000007 0x00007ffff7a4bb0e in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 #8 0x00007ffff7a4c84e in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000009 0x00007ffff79a5daa in wxDataViewModel::Cleared() () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000010 0x00005555557879d4 in ui::TexturePreviewCombo::refreshInfoTable() (this=0x555556bb2a40) at ui/common/TexturePreviewCombo.cpp:62 0000011 0x0000555555787dbc in ui::TexturePreviewCombo::SetTexture(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x555556bb2a40, tex=...) at ui/common/TexturePreviewCombo.cpp:54 0000012 0x000055555571391b in ui::MediaBrowser::handleSelectionChange() (this=0x555555af9410) at ui/mediabrowser/MediaBrowser.cpp:958 0000013 0x00007ffff7199661 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000014 0x00007ffff71999fa in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000015 0x00007ffff7199a94 in wxEvtHandler::TryHereOnly(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000016 0x00007ffff7199b4b in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000017 0x00007ffff7199bf1 in wxEvtHandler::ProcessEvent(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000018 0x00007ffff719997b in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000019 0x00007ffff7a59f97 in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000020 0x00007ffff5c37b56 in () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000021 0x00007ffff5c50bbf in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000022 0x00007ffff5c50da3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000023 0x00007ffff623d34b in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000024 0x00007ffff6245690 in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000025 0x00007ffff62b3cff in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000026 0x00007ffff5c37b56 in () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000027 0x00007ffff5c50bbf in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000028 0x00007ffff5c50da3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000029 0x00007ffff60bb531 in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000030 0x00007ffff5c3ad14 in g_cclosure_marshal_VOID__BOXEDv () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000031 0x00007ffff5c37b56 in () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000032 0x00007ffff5c50bbf in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000033 0x00007ffff5c50da3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000034 0x00007ffff60b8046 in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 --Type <RET> for more, q to quit, c to continue without paging--ret 0000035 0x00007ffff60b963f in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000036 0x00007ffff60bc803 in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000037 0x00007ffff60820c0 in gtk_event_controller_handle_event () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000038 0x00007ffff625441d in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000039 0x00007ffff62ad6fb in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000040 0x00007ffff5c378fa in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000041 0x00007ffff5c49f0e in () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000042 0x00007ffff5c50586 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000043 0x00007ffff5c50da3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000044 0x00007ffff6256514 in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000045 0x00007ffff6104d50 in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000046 0x00007ffff6106a93 in gtk_main_do_event () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000047 0x00007ffff5ddee89 in () at /lib/x86_64-linux-gnu/libgdk-3.so.0 0000048 0x00007ffff5e138e6 in () at /lib/x86_64-linux-gnu/libgdk-3.so.0 0000049 0x00007ffff58944db in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 0000050 0x00007ffff5894788 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 0000051 0x00007ffff5894aa3 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 0000052 0x00007ffff61059fd in gtk_main () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000053 0x00007ffff74e8bf5 in wxGUIEventLoop::DoRun() () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.0.so.0 0000054 0x00007ffff704dd41 in wxEventLoopBase::Run() () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000055 0x00007ffff70153da in wxAppConsoleBase::MainLoop() () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000056 0x00007ffff70a173d in wxEntry(int&, wchar_t**) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000057 0x000055555564f7c2 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at main.cpp:7 (gdb) continue Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. quit when you apply the material from the textures tab: $ gdb darkradiant GNU gdb (Ubuntu 9.2-0ubuntu2) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from darkradiant... (gdb) run Starting program: /usr/local/bin/darkradiant [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7ffff1b1a640 (LWP 54044)] [New Thread 0x7ffff1319640 (LWP 54045)] Thread 3 "gdbus" received signal SIG33, Real-time event 33. [Switching to Thread 0x7ffff1319640 (LWP 54045)] 0x00007ffff69a766f in __GI___poll (fds=0x555555abcde0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 29 ../sysdeps/unix/sysv/linux/poll.c: El fitxer o directori no existeix. (gdb) continue Continuing. Thread 2 "gmain" received signal SIG33, Real-time event 33. [Switching to Thread 0x7ffff1b1a640 (LWP 54044)] 0x00007ffff69a766f in __GI___poll (fds=0x555555aaa820, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 29 in ../sysdeps/unix/sysv/linux/poll.c (gdb) continue Continuing. Thread 1 "darkradiant" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff243ba80 (LWP 54040)] wxutil::TreeModel::GetParent (this=0x555556d428b0, item=...) at TreeModel.cpp:584 584 if (owningNode->parent != NULL) (gdb) bt #0 wxutil::TreeModel::GetParent(wxDataViewItem const&) const (this=0x555556d428b0, item=...) at TreeModel.cpp:584 0000001 0x00007ffff7a4d495 in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000002 0x00007ffff7a5084c in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000003 0x00007ffff7a51e9b in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000004 0x00007ffff6230eff in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000005 0x00007ffff623696a in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000006 0x00007ffff62402d5 in gtk_tree_view_set_model () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000007 0x00007ffff7a4bb0e in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 #8 0x00007ffff7a4c84e in () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000009 0x00007ffff79a5daa in wxDataViewModel::Cleared() () at /lib/x86_64-linux-gnu/libwx_gtk3u_adv-3.0.so.0 0000010 0x00005555557879d4 in ui::TexturePreviewCombo::refreshInfoTable() (this=0x555556bdcd00) at ui/common/TexturePreviewCombo.cpp:62 0000011 0x0000555555787dbc in ui::TexturePreviewCombo::SetTexture(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x555556bdcd00, tex=...) at ui/common/TexturePreviewCombo.cpp:54 0000012 0x000055555571391b in ui::MediaBrowser::handleSelectionChange() (this=0x555555bf5e80) at ui/mediabrowser/MediaBrowser.cpp:958 0000013 0x0000555555713bf1 in ui::MediaBrowser::setSelection(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x555555bf5e80, selection="\220\322A\230\377\177\000\000\340\327A\230\--Type <RET> for more, q to quit, c to continue without paging--ret 377\177\000\000\320\336A\230\377\177\000\000P\340A\230\377\177\000\000\320\340A\230\377\177", '\000' <repeats 26 times>, "\320\320A\230\377\177\000\000\370\320A\230\377\177\000\000\370\320A\230\377\177\000\000\060\333A\230\377\177\000\000\000\000\000\000\000\000\000\000\060\333A\230\377\177\000\000\006\000\000\000\000\000\000\000\070\333A\230\377\177\000\000\000\000\000\000\000\000\000\000\025\002\000\000\000\000\000\000\300\031$\367\377\177\000\000\200\326A\230\377\177\000\000\220\330A\230\377\177", '\000' <repeats 34 times>...) at ui/mediabrowser/MediaBrowser.cpp:638 0000014 0x00005555557115a2 in ui::MediaBrowser::onShaderClipboardSourceChanged() (this=0x555555bf5e80) at ../include/imodule.h:414 0000015 0x00007ffff0578cca in sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*) (impl=0x555556cb6d50) at /usr/include/sigc++-2.0/sigc++/signal.h:798 0000016 0x00007ffff081e165 in sigc::signal0<void, sigc::nil>::emit() const (this=0x555555a3e7b8) at /usr/include/sigc++-2.0/sigc++/signal.h:2803 0000017 selection::ShaderClipboard::sourceChanged() (this=0x555555a3e750) at selection/shaderclipboard/ShaderClipboard.cpp:53 0000018 0x00005555556f3eb5 in ui::TextureBrowser::selectTextureAt(int, int) (this=<optimized out>, mx=<optimized out>, my=<optimized out>) at /usr/include/c++/10/bits/shared_ptr_base.h:1324 0000019 0x00007ffff7199661 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 --Type <RET> for more, q to quit, c to continue without paging--ret 0000020 0x00007ffff71999fa in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000021 0x00007ffff7199a94 in wxEvtHandler::TryHereOnly(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000022 0x00007ffff7199b4b in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000023 0x00007ffff7199bf1 in wxEvtHandler::ProcessEvent(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000024 0x00007ffff719997b in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000025 0x00007ffff7509f7e in () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.0.so.0 0000026 0x00007ffff62ad6fb in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000027 0x00007ffff5c378fa in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000028 0x00007ffff5c4a4b3 in () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000029 0x00007ffff5c50586 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000030 0x00007ffff5c50da3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 0000031 0x00007ffff6256514 in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000032 0x00007ffff6104d50 in () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000033 0x00007ffff6106a93 in gtk_main_do_event () --Type <RET> for more, q to quit, c to continue without paging--ret at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000034 0x00007ffff5ddee89 in () at /lib/x86_64-linux-gnu/libgdk-3.so.0 0000035 0x00007ffff5e138e6 in () at /lib/x86_64-linux-gnu/libgdk-3.so.0 0000036 0x00007ffff58944db in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 0000037 0x00007ffff5894788 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 0000038 0x00007ffff5894aa3 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 0000039 0x00007ffff61059fd in gtk_main () at /lib/x86_64-linux-gnu/libgtk-3.so.0 0000040 0x00007ffff74e8bf5 in wxGUIEventLoop::DoRun() () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.0.so.0 0000041 0x00007ffff704dd41 in wxEventLoopBase::Run() () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000042 0x00007ffff70153da in wxAppConsoleBase::MainLoop() () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000043 0x00007ffff70a173d in wxEntry(int&, wchar_t**) () at /lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 0000044 0x000055555564f7c2 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at main.cpp:7 (gdb) continue Continuing. Couldn't get registers: El procés no existeix. Couldn't get registers: El procés no existeix. (gdb) [Thread 0x7fffea5f0640 (LWP 54077) exited] Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. quit | ||||
Tags | Crash; darkradiant | ||||
DarkRadiant: 2.9.0 c7b161c7 14.11.2020 04:59 Details Diff |
0005387: Work around a problem in wxGTK 3.0.5+: invoke ItemsDeleted before actually clearing the tree and invoking Cleared() |
Affected Issues 0005387 |
|
mod - libs/wxutil/TreeModel.cpp | Diff File | ||
DarkRadiant: master b0bc6020 23.09.2022 09:49 Details Diff |
0006105: Disable the workaround in wxGTK 3.2.0 which appears to be counter-productive. It has been introduced to solve a problem in wxGTK 3.0.5+, which doesn't seem to be present anymore in in wxGTK 3.2.0. Original issue was 0005387. |
Affected Issues 0005387, 0006105 |
|
mod - libs/wxutil/dataview/TreeModel.cpp | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
08.11.2020 20:36 | BielBdeLuna | New Issue | |
08.11.2020 20:36 | BielBdeLuna | Tag Attached: Crash; darkradiant | |
09.11.2020 02:46 | greebo | Status | new => acknowledged |
09.11.2020 02:48 | greebo | Product Version | => 2.9.0 |
09.11.2020 02:48 | greebo | Additional Information Updated | |
09.11.2020 04:08 | greebo | Status | acknowledged => confirmed |
09.11.2020 04:08 | greebo | Note Added: 0012879 | |
14.11.2020 04:59 | greebo | Changeset attached | => DarkRadiant 2.9.0 c7b161c7 |
14.11.2020 05:00 | greebo | Assigned To | => greebo |
14.11.2020 05:00 | greebo | Status | confirmed => assigned |
14.11.2020 05:00 | greebo | Status | assigned => resolved |
14.11.2020 05:00 | greebo | Resolution | open => fixed |
14.11.2020 05:00 | greebo | Fixed in Version | => 2.9.0 |
14.11.2020 05:00 | greebo | Target Version | => 2.9.0 |
05.02.2021 11:29 | greebo | Status | resolved => closed |
23.09.2022 09:44 | greebo | Relationship added | related to 0006105 |
23.09.2022 09:51 | greebo | Changeset attached | => DarkRadiant master b0bc6020 |