View Issue Details

IDProjectCategoryView StatusLast Update
0000402DarkRadiantMap Editingpublic11.04.2008 21:11
Reportertels Assigned Totels  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version0.9.4 
Target Version0.9.6Fixed in Version0.9.6 
Summary0000402: crash on "revert to worldspawn"
DescriptionUnder 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 InformationBacktrace:

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 ()
TagsNo tags attached.

Relationships

child of 0000463 closedgreebo Scenegraph Refactor 

Activities

greebo

greebo

26.11.2007 21:59

administrator   ~0000892

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.
greebo

greebo

11.03.2008 19:45

administrator   ~0001087

This is fixed in the scenegraph refactor branch. I'll set this to resolved as soon as the changes are in the trunk.

Issue History

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