View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000402 | DarkRadiant | Map Editing | public | 01.11.2007 14:33 | 11.04.2008 21:11 |
Reporter | tels | Assigned To | tels | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 0.9.4 | ||||
Target Version | 0.9.6 | Fixed in Version | 0.9.6 | ||
Summary | 0000402: crash on "revert to worldspawn" | ||||
Description | Under Linux: * start DR * create a brush of any size * select "Patch -> Simple Patch mesh" (CTRL-P) * accept defaults * right click newly created patch, select "convert to func static" * right click same patch, select "convert back to worldspawn" Crash! | ||||
Additional Information | Backtrace: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 47408244761392 (LWP 9303)] 0x00002b1e1462f891 in __dynamic_cast () from /usr/lib/libstdc++.so.6 (gdb) bt #0 0x00002b1e1462f891 in __dynamic_cast () from /usr/lib/libstdc++.so.6 0000001 0x000000000061d848 in selection::algorithm::ReparentToEntityWalker::post () 0000002 0x0000000000715807 in CompiledGraph::traverse_subgraph () 0000003 0x0000000000715949 in CompiledGraph::traverse_subgraph () 0000004 0x000000000061c5be in selection::algorithm::revertGroupToWorldSpawn () 0000005 0x00002b1e136367da in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 0000006 0x00002b1e13646408 in ?? () from /usr/lib/libgobject-2.0.so.0 0000007 0x00002b1e13647843 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #8 0x00002b1e13647a13 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 0000009 0x00002b1e112bfe0a in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0 0000010 0x00002b1e111ca450 in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0 0000011 0x00002b1e111cb900 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 0000012 0x00002b1e111be68d in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0 0000013 0x00002b1e136367da in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 0000014 0x00002b1e13646a18 in ?? () from /usr/lib/libgobject-2.0.so.0 0000015 0x00002b1e13647617 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 0000016 0x00002b1e13647a13 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 0000017 0x00002b1e112bc13e in ?? () from /usr/lib/libgtk-x11-2.0.so.0 0000018 0x00002b1e111b7c7d in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 0000019 0x00002b1e111b8c91 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 0000020 0x00002b1e1165f45c in ?? () from /usr/lib/libgdk-x11-2.0.so.0 0000021 0x00002b1e10ac4a14 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 0000022 0x00002b1e10ac785d in ?? () from /usr/lib/libglib-2.0.so.0 0000023 0x00002b1e10ac7b6a in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 0000024 0x00002b1e111b9023 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 0000025 0x00000000004d5909 in main () | ||||
Tags | No tags attached. | ||||
Confirmed. This crash is systematic due to the way the TraversableNodeSet crap handles child removals and additions. Once removed, the child gets "uninstantiated", i.e. the Instance is deleted from the heap, only to be instantiated (allocated) again when being inserted to worldspawn. The only reason why this wasn't observed in "live" releases (Windows target) is due to the way release builds manage the heap. Accesses to the released memory obviously don't crash in release builds, but they sure will raise a segfault in debug builds. So in short, revert to worldspawn should always crash in principle, but it doesn't due to the release build's grace. This will need some special thought and a sharp knife. Changing stuff in the TraversableNodeSet affects the core of the GtkRadiant scenegraph. A tricky task. |
|
This is fixed in the scenegraph refactor branch. I'll set this to resolved as soon as the changes are in the trunk. | |
Date Modified | Username | Field | Change |
---|---|---|---|
01.11.2007 14:33 | tels | New Issue | |
02.11.2007 17:55 | greebo | Category | General => Map Editing |
02.11.2007 17:55 | greebo | Status | new => acknowledged |
26.11.2007 21:59 | greebo | Note Added: 0000892 | |
26.11.2007 21:59 | greebo | Assigned To | => greebo |
26.11.2007 21:59 | greebo | Status | acknowledged => confirmed |
11.03.2008 19:45 | greebo | Note Added: 0001087 | |
14.03.2008 19:15 | greebo | Status | confirmed => assigned |
14.03.2008 19:15 | greebo | Assigned To | greebo => tels |
19.03.2008 20:41 | greebo | Relationship added | child of 0000463 |
19.03.2008 20:41 | greebo | Status | assigned => resolved |
19.03.2008 20:41 | greebo | Fixed in Version | => 0.9.6 |
19.03.2008 20:41 | greebo | Resolution | open => fixed |
19.03.2008 20:41 | greebo | Projection | none => redesign |
19.03.2008 20:41 | greebo | Build | => 3260 |
19.03.2008 20:41 | greebo | Target Version | => 0.9.6 |
11.04.2008 21:11 | greebo | Status | resolved => closed |