assert crashes in commitUndoable
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Fix Released
|
Critical
|
Unassigned |
Bug Description
Happens only after I keep working for some time, on any random unodable action (move, scale, etc). After I rerun, reload and rerun the same actions, it works fine, only to crash again on some random action an hour later.
Backtrace:
** ERROR **: file xml/simple-
Inkscape:
Inkscape:
(_in_transaction)
aborting...
Program received signal SIGABRT, Aborted.
[Switching to Thread -1236268832 (LWP 22641)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb66e89a1 in raise () from /lib/tls/
#2 0xb66ea2b9 in abort () from /lib/tls/
#3 0xb7436dba in IA__g_logv (log_domain=<value optimized out>,
log_level=
format=
args1=0xbfefc9bc "\037?h\b3")
at gmessages.c:497
#4 0xb7436de3 in IA__g_log (log_domain=0x0, log_level=0, format=0x0)
at gmessages.c:517
#5 0xb7436e4f in IA__g_assert_
pretty_
Inkscape:
"_in_transaction") at gmessages.c:552
#6 0x08564f01 in Inkscape:
(this=0x0) at xml/simple-
#7 0x085667f4 in sp_repr_
#8 0x0814ef3e in sp_document_
sensitive=false) at document-
#9 0x0815ef95 in Inkscape:
(this=0x897ad00) at event-log.cpp:369
#10 0x081615c8 in Inkscape:
(this=0x897ad00, log=0xbde2760)
at event-log.cpp:200
#11 0x085aa72d in
Inkscape:
(this=0xb238c3c, log=0xbde2760)
at composite-
#12 0x0814fb94 in sp_document_
"selector:
event_type=105, event_descripti
#13 0x080a5ca7 in sp_selection_move (dx=-2, dy=0) at
selection-
#14 0x0819e7c4 in sp_select_
(event_
at select-
#15 0x0815dad7 in sp_event_
(event_
at event-context.
#16 0x08378827 in sp_marshal_
return_
n_param_
invocation_
at helper/
#17 0xb7685f6f in IA__g_closure_
return_value=0x0, n_param_values=0,
param_
#18 0xb7694d2a in signal_
instance=0x91d5950,
emission_
gsignal.c:2440
#19 0xb76962c6 in IA__g_signal_
signal_id=198, detail=0,
var_
gsignal.c:2209
#20 0xb7943d53 in IA__gtk_signal_emit (object=0x91d5950, signal_id=0)
at gtksignal.c:360
#21 0x08340b82 in sp_canvas_
at display/
#22 0x083410a9 in sp_canvas_
display/
#23 0x083785e0 in sp_marshal_
return_
param_
marshal_
#24 0xb768593f in g_type_
return_value=0x0, n_param_values=0,
param_
gclosure.c:567
#25 0xb7685f6f in IA__g_closure_
return_value=0x0, n_param_values=0,
param_
#26 0xb769540e in signal_
instance=0x91d5950,
emission_
gsignal.c:2478
#27 0xb76962c6 in IA__g_signal_
signal_id=145, detail=0,
var_
#28 0xb7943d53 in IA__gtk_signal_emit (object=0x91d5950, signal_id=0)
at gtksignal.c:360
#29 0x08358800 in emit_event (canvas=<value optimized out>,
event=<value optimized out>)
at display/
#30 0xb78dc984 in _gtk_marshal_
return_
param_
marshal_
#31 0xb768593f in g_type_
return_value=0x0, n_param_values=0,
param_
gclosure.c:567
#32 0xb7685f6f in IA__g_closure_
return_value=0x0, n_param_values=0,
param_
#33 0xb769540e in signal_
instance=0x944fd78,
emission_
gsignal.c:2478
#34 0xb76962c6 in IA__g_signal_
signal_id=52, detail=0,
var_
xE\tx?D\
#35 0xb76968c9 in IA__g_signal_emit (instance=0x0, signal_id=0,
detail=0) at gsignal.c:2243
#36 0xb79f0c67 in gtk_widget_
event=0x9457820) at gtkwidget.c:4675
#37 0xb7a03185 in IA__gtk_
(window=0xb8f1210, event=0x9457820) at gtkwindow.c:4935
#38 0xb7a07934 in gtk_window_
event=0x9457820) at gtkwindow.c:4965
#39 0xb7dfe51b in Gtk::Widget_
(self=0xb8f1210, p0=0x9457820)
at widget.cc:4553
#40 0xb78dc984 in _gtk_marshal_
return_
param_
marshal_
#41 0xb768593f in g_type_
return_value=0x0, n_param_values=0,
param_
gclosure.c:567
#42 0xb7685f6f in IA__g_closure_
return_value=0x0, n_param_values=0,
param_
#43 0xb769540e in signal_
instance=0xb8f1210,
emission_
gsignal.c:2478
#44 0xb76962c6 in IA__g_signal_
signal_id=52, detail=0,
var_
xE\t\020\
gsignal.c:2209
#45 0xb76968c9 in IA__g_signal_emit (instance=0x0, signal_id=0,
detail=0) at gsignal.c:2243
#46 0xb79f0c67 in gtk_widget_
event=0x9457820) at gtkwidget.c:4675
#47 0xb78db209 in IA__gtk_
event=0x9457820) at gtkmain.c:2310
#48 0xb78db507 in IA__gtk_
#49 0xb776681c in gdk_event_dispatch (source=0x0, callback=0,
user_data=0x0) at gdkevents-
#50 0xb742e299 in IA__g_main_
gmain.c:2061
#51 0xb7431616 in g_main_
dispatch=1, self=0x8806670)
at gmain.c:2694
#52 0xb7431938 in IA__g_main_loop_run (loop=0x977f3f0) at gmain.c:2898
#53 0xb78da800 in IA__gtk_main () at gtkmain.c:1163
#54 0xb7d92a85 in Gtk::Main::run_impl (this=0xbfefe708) at main.cc:534
#55 0xb7d92976 in Gtk::Main::run () at main.cc:481
#56 0x08083bd5 in sp_main_gui (argc=1, argv=0xbfefe844) at main.cpp:723
#57 0x081d25fc in Inkscape:
at application/
#58 0x0808302e in main (argc=1, argv=0xbfefe844) at main.cpp:538
Changed in inkscape: | |
assignee: | nobody → mental |
importance: | Undecided → Critical |
milestone: | none → 0.46 |
status: | New → Confirmed |
Ugh. Well, the basic problem is that the undo/redo notification callbacks _aren't supposed to be changing the document_. But checkForVirginity does sometimes, because it sets sodipodi:modified, and it tries to toggle undo sensitivity in the middle of what may be a not-yet- 100%-complete undo and everything just goes to hell.
Probably the simplest fix is to get rid of sodipodi:modified and replace it with a boolean field in SPDocument instead, which needs doing anyway.