Bug 418791 - Critical warnings when closing evolution
Critical warnings when closing evolution
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: gtk2 (Show other bugs)
rawhide
All Linux
low Severity low
: ---
: ---
Assigned To: Matthias Clasen
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-12-10 15:53 EST by Kjartan Maraas
Modified: 2008-01-03 07:10 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-01-03 07:10:04 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Kjartan Maraas 2007-12-10 15:53:29 EST
Description of problem:

Backtrace from a run with --g-fatal-warnings:

GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
aborting...

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb7ed7710 (LWP 12379)]
0x0012d402 in __kernel_vsyscall ()
(gdb) bt
#0  0x0012d402 in __kernel_vsyscall ()
#1  0x050c4690 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x050c5f91 in abort () at abort.c:88
#3  0x045a4f7a in IA__g_logv (log_domain=<value optimized out>,
log_level=G_LOG_LEVEL_CRITICAL, 
    format=0x45f1007 "%s: assertion `%s' failed", args1=0xbff6793c
"\220\212�\003�}�\003�8\022") at gmessages.c:497
#4  0x045a4fb9 in IA__g_log (log_domain=0x3ad71bc "GLib-GObject",
log_level=G_LOG_LEVEL_CRITICAL, 
    format=0x45f1007 "%s: assertion `%s' failed") at gmessages.c:517
#5  0x045a509b in IA__g_return_if_fail_warning (log_domain=0x3ad71bc
"GLib-GObject", 
    pretty_function=0x3ad8a90 "g_object_ref", expression=0x3ad7dd2 "G_IS_OBJECT
(object)") at gmessages.c:532
#6  0x03ab2093 in IA__g_object_ref (_object=0x0) at gobject.c:1719
#7  0x00b66533 in gtk_notebook_real_remove (notebook=0xa0185c0, list=0xb625b8b0)
at gtknotebook.c:4352
#8  0x00b6512c in gtk_notebook_remove (container=0xa0185c0, widget=0xa417e80) at
gtknotebook.c:3735
#9  0x03abc919 in IA__g_cclosure_marshal_VOID__OBJECT (closure=0xa2f4850,
return_value=0x0, n_param_values=2, 
    param_values=0xbff67c5c, invocation_hint=0xbff67b6c, marshal_data=0xb650a9)
at gmarshal.c:636
#10 0x03aae779 in g_type_class_meta_marshal (closure=0xa2f4850,
return_value=0x0, n_param_values=2, 
    param_values=0xbff67c5c, invocation_hint=0xbff67b6c, marshal_data=0x170) at
gclosure.c:567
#11 0x03aaff83 in IA__g_closure_invoke (closure=0xa2f4850, return_value=0x0,
n_param_values=2, param_values=0xbff67c5c, 
    invocation_hint=0xbff67b6c) at gclosure.c:490
#12 0x03ac091a in signal_emit_unlocked_R (node=0xa2b3fa8, detail=0,
instance=0xa0185c0, emission_return=0x0, 
    instance_and_params=0xbff67c5c) at gsignal.c:2370
#13 0x03ac1997 in IA__g_signal_emit_valist (instance=0xa0185c0, signal_id=132,
detail=0, var_args=0xbff67ea0 "Q�?")
    at gsignal.c:2199
#14 0x03ac1b59 in IA__g_signal_emit (instance=0xa0185c0, signal_id=132,
detail=0) at gsignal.c:2243
#15 0x00a6fe9d in IA__gtk_container_remove (container=0xa0185c0,
widget=0xa417e80) at gtkcontainer.c:1187
#16 0x00ccf6a1 in gtk_widget_dispose (object=0xa417e80) at gtkwidget.c:7843
#17 0x007ab645 in bonobo_widget_dispose (object=0xa417e80) at bonobo-widget.c:369
#18 0x03ab2630 in IA__g_object_run_dispose (object=0xa417e80) at gobject.c:573
#19 0x00b6ee47 in IA__gtk_object_destroy (object=0xa417e80) at gtkobject.c:403
#20 0x00cc4fda in IA__gtk_widget_destroy (widget=0xa417e80) at gtkwidget.c:2886
#21 0x00b658aa in gtk_notebook_forall (container=0xa0185c0, include_internals=0, 
---Type <return> to continue, or q <return> to quit---
    callback=0xcc4f4b <IA__gtk_widget_destroy>, callback_data=0x0) at
gtknotebook.c:3979
#22 0x00a70ae7 in IA__gtk_container_foreach (container=0xa0185c0,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkcontainer.c:1480
#23 0x00a6f722 in gtk_container_destroy (object=0xa0185c0) at gtkcontainer.c:1020
#24 0x00b5fc45 in gtk_notebook_destroy (object=0xa0185c0) at gtknotebook.c:1474
#25 0x03abd409 in IA__g_cclosure_marshal_VOID__VOID (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff682cc, invocation_hint=0xbff681dc, marshal_data=0xb5fb88)
at gmarshal.c:77
#26 0x03aae779 in g_type_class_meta_marshal (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff682cc, invocation_hint=0xbff681dc, marshal_data=0x4c) at
gclosure.c:567
#27 0x03ab006c in IA__g_closure_invoke (closure=0x9f65908, return_value=0x0,
n_param_values=1, param_values=0xbff682cc, 
    invocation_hint=0xbff681dc) at gclosure.c:490
#28 0x03ac0c3f in signal_emit_unlocked_R (node=0x9f65950, detail=0,
instance=0xa0185c0, emission_return=0x0, 
    instance_and_params=0xbff682cc) at gsignal.c:2556
#29 0x03ac1997 in IA__g_signal_emit_valist (instance=0xa0185c0, signal_id=2,
detail=0, var_args=0xbff6850c "%޶")
    at gsignal.c:2199
#30 0x03ac1b59 in IA__g_signal_emit (instance=0xa0185c0, signal_id=2, detail=0)
at gsignal.c:2243
#31 0x00b6eed0 in gtk_object_dispose (gobject=0xa0185c0) at gtkobject.c:418
#32 0x00ccf737 in gtk_widget_dispose (object=0xa0185c0) at gtkwidget.c:7851
#33 0x03ab2630 in IA__g_object_run_dispose (object=0xa0185c0) at gobject.c:573
#34 0x00b6ee47 in IA__gtk_object_destroy (object=0xa0185c0) at gtkobject.c:403
#35 0x00cc4fda in IA__gtk_widget_destroy (widget=0xa0185c0) at gtkwidget.c:2886
#36 0x0805ce11 in impl_forall (container=0xa014150, include_internals=0,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at e-sidebar.c:332
#37 0x00a70ae7 in IA__gtk_container_foreach (container=0xa014150,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkcontainer.c:1480
#38 0x00a6f722 in gtk_container_destroy (object=0xa014150) at gtkcontainer.c:1020
#39 0x03abd409 in IA__g_cclosure_marshal_VOID__VOID (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff688bc, invocation_hint=0xbff687cc, marshal_data=0xa6f696)
at gmarshal.c:77
#40 0x03aae779 in g_type_class_meta_marshal (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff688bc, invocation_hint=0xbff687cc, marshal_data=0x4c) at
gclosure.c:567
---Type <return> to continue, or q <return> to quit---
#41 0x03ab006c in IA__g_closure_invoke (closure=0x9f65908, return_value=0x0,
n_param_values=1, param_values=0xbff688bc, 
    invocation_hint=0xbff687cc) at gclosure.c:490
#42 0x03ac0c3f in signal_emit_unlocked_R (node=0x9f65950, detail=0,
instance=0xa014150, emission_return=0x0, 
    instance_and_params=0xbff688bc) at gsignal.c:2556
#43 0x03ac1997 in IA__g_signal_emit_valist (instance=0xa014150, signal_id=2,
detail=0, var_args=0xbff68afc "%޶")
    at gsignal.c:2199
#44 0x03ac1b59 in IA__g_signal_emit (instance=0xa014150, signal_id=2, detail=0)
at gsignal.c:2243
#45 0x00b6eed0 in gtk_object_dispose (gobject=0xa014150) at gtkobject.c:418
#46 0x00ccf737 in gtk_widget_dispose (object=0xa014150) at gtkwidget.c:7851
#47 0x0805d118 in impl_dispose (object=0xa014150) at e-sidebar.c:424
#48 0x03ab2630 in IA__g_object_run_dispose (object=0xa014150) at gobject.c:573
#49 0x00b6ee47 in IA__gtk_object_destroy (object=0xa014150) at gtkobject.c:403
#50 0x00cc4fda in IA__gtk_widget_destroy (widget=0xa014150) at gtkwidget.c:2886
#51 0x00b78372 in gtk_paned_forall (container=0xa2a3548, include_internals=0,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkpaned.c:1173
#52 0x00a70ae7 in IA__gtk_container_foreach (container=0xa2a3548,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkcontainer.c:1480
#53 0x00a6f722 in gtk_container_destroy (object=0xa2a3548) at gtkcontainer.c:1020
#54 0x03abd409 in IA__g_cclosure_marshal_VOID__VOID (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff68edc, invocation_hint=0xbff68dec, marshal_data=0xa6f696)
at gmarshal.c:77
#55 0x03aae779 in g_type_class_meta_marshal (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff68edc, invocation_hint=0xbff68dec, marshal_data=0x4c) at
gclosure.c:567
#56 0x03ab006c in IA__g_closure_invoke (closure=0x9f65908, return_value=0x0,
n_param_values=1, param_values=0xbff68edc, 
    invocation_hint=0xbff68dec) at gclosure.c:490
#57 0x03ac0c3f in signal_emit_unlocked_R (node=0x9f65950, detail=0,
instance=0xa2a3548, emission_return=0x0, 
    instance_and_params=0xbff68edc) at gsignal.c:2556
#58 0x03ac1997 in IA__g_signal_emit_valist (instance=0xa2a3548, signal_id=2,
detail=0, var_args=0xbff6911c "%޶")
    at gsignal.c:2199
#59 0x03ac1b59 in IA__g_signal_emit (instance=0xa2a3548, signal_id=2, detail=0)
at gsignal.c:2243
#60 0x00b6eed0 in gtk_object_dispose (gobject=0xa2a3548) at gtkobject.c:418
---Type <return> to continue, or q <return> to quit---
#61 0x00ccf737 in gtk_widget_dispose (object=0xa2a3548) at gtkwidget.c:7851
#62 0x03ab2630 in IA__g_object_run_dispose (object=0xa2a3548) at gobject.c:573
#63 0x00b6ee47 in IA__gtk_object_destroy (object=0xa2a3548) at gtkobject.c:403
#64 0x00cc4fda in IA__gtk_widget_destroy (widget=0xa2a3548) at gtkwidget.c:2886
#65 0x00a15742 in gtk_box_forall (container=0xb6201558, include_internals=0,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkbox.c:799
#66 0x00a70ae7 in IA__gtk_container_foreach (container=0xb6201558,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkcontainer.c:1480
#67 0x00a6f722 in gtk_container_destroy (object=0xb6201558) at gtkcontainer.c:1020
#68 0x03abd409 in IA__g_cclosure_marshal_VOID__VOID (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff694dc, invocation_hint=0xbff693ec, marshal_data=0xa6f696)
at gmarshal.c:77
#69 0x03aae779 in g_type_class_meta_marshal (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff694dc, invocation_hint=0xbff693ec, marshal_data=0x4c) at
gclosure.c:567
#70 0x03ab006c in IA__g_closure_invoke (closure=0x9f65908, return_value=0x0,
n_param_values=1, param_values=0xbff694dc, 
    invocation_hint=0xbff693ec) at gclosure.c:490
#71 0x03ac0c3f in signal_emit_unlocked_R (node=0x9f65950, detail=0,
instance=0xb6201558, emission_return=0x0, 
    instance_and_params=0xbff694dc) at gsignal.c:2556
#72 0x03ac1997 in IA__g_signal_emit_valist (instance=0xb6201558, signal_id=2,
detail=0, var_args=0xbff6971c "%޶")
    at gsignal.c:2199
#73 0x03ac1b59 in IA__g_signal_emit (instance=0xb6201558, signal_id=2, detail=0)
at gsignal.c:2243
#74 0x00b6eed0 in gtk_object_dispose (gobject=0xb6201558) at gtkobject.c:418
#75 0x00ccf737 in gtk_widget_dispose (object=0xb6201558) at gtkwidget.c:7851
#76 0x03ab2630 in IA__g_object_run_dispose (object=0xb6201558) at gobject.c:573
#77 0x00b6ee47 in IA__gtk_object_destroy (object=0xb6201558) at gtkobject.c:403
#78 0x00cc4fda in IA__gtk_widget_destroy (widget=0xb6201558) at gtkwidget.c:2886
#79 0x007789cc in bonobo_dock_forall (container=0xa084078, include_internals=0, 
    callback=0xcc4f4b <IA__gtk_widget_destroy>, callback_data=0x0) at
bonobo-dock.c:657
#80 0x00a70ae7 in IA__gtk_container_foreach (container=0xa084078,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkcontainer.c:1480
#81 0x00a6f722 in gtk_container_destroy (object=0xa084078) at gtkcontainer.c:1020
---Type <return> to continue, or q <return> to quit---
#82 0x03abd409 in IA__g_cclosure_marshal_VOID__VOID (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff69acc, invocation_hint=0xbff699dc, marshal_data=0xa6f696)
at gmarshal.c:77
#83 0x03aae779 in g_type_class_meta_marshal (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff69acc, invocation_hint=0xbff699dc, marshal_data=0x4c) at
gclosure.c:567
#84 0x03ab006c in IA__g_closure_invoke (closure=0x9f65908, return_value=0x0,
n_param_values=1, param_values=0xbff69acc, 
    invocation_hint=0xbff699dc) at gclosure.c:490
#85 0x03ac0c3f in signal_emit_unlocked_R (node=0x9f65950, detail=0,
instance=0xa084078, emission_return=0x0, 
    instance_and_params=0xbff69acc) at gsignal.c:2556
#86 0x03ac1997 in IA__g_signal_emit_valist (instance=0xa084078, signal_id=2,
detail=0, var_args=0xbff69d0c "%޶")
    at gsignal.c:2199
#87 0x03ac1b59 in IA__g_signal_emit (instance=0xa084078, signal_id=2, detail=0)
at gsignal.c:2243
#88 0x00b6eed0 in gtk_object_dispose (gobject=0xa084078) at gtkobject.c:418
#89 0x00ccf737 in gtk_widget_dispose (object=0xa084078) at gtkwidget.c:7851
#90 0x03ab2630 in IA__g_object_run_dispose (object=0xa084078) at gobject.c:573
#91 0x00b6ee47 in IA__gtk_object_destroy (object=0xa084078) at gtkobject.c:403
#92 0x00cc4fda in IA__gtk_widget_destroy (widget=0xa084078) at gtkwidget.c:2886
#93 0x00a15742 in gtk_box_forall (container=0x9f7f320, include_internals=0,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkbox.c:799
#94 0x00a70ae7 in IA__gtk_container_foreach (container=0x9f7f320,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkcontainer.c:1480
#95 0x00a6f722 in gtk_container_destroy (object=0x9f7f320) at gtkcontainer.c:1020
#96 0x03abd409 in IA__g_cclosure_marshal_VOID__VOID (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff6a0cc, invocation_hint=0xbff69fdc, marshal_data=0xa6f696)
at gmarshal.c:77
#97 0x03aae779 in g_type_class_meta_marshal (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff6a0cc, invocation_hint=0xbff69fdc, marshal_data=0x4c) at
gclosure.c:567
#98 0x03ab006c in IA__g_closure_invoke (closure=0x9f65908, return_value=0x0,
n_param_values=1, param_values=0xbff6a0cc, 
    invocation_hint=0xbff69fdc) at gclosure.c:490
#99 0x03ac0c3f in signal_emit_unlocked_R (node=0x9f65950, detail=0,
instance=0x9f7f320, emission_return=0x0, 
    instance_and_params=0xbff6a0cc) at gsignal.c:2556
#100 0x03ac1997 in IA__g_signal_emit_valist (instance=0x9f7f320, signal_id=2,
detail=0, var_args=0xbff6a30c "%޶")
---Type <return> to continue, or q <return> to quit---
    at gsignal.c:2199
#101 0x03ac1b59 in IA__g_signal_emit (instance=0x9f7f320, signal_id=2, detail=0)
at gsignal.c:2243
#102 0x00b6eed0 in gtk_object_dispose (gobject=0x9f7f320) at gtkobject.c:418
#103 0x00ccf737 in gtk_widget_dispose (object=0x9f7f320) at gtkwidget.c:7851
#104 0x03ab2630 in IA__g_object_run_dispose (object=0x9f7f320) at gobject.c:573
#105 0x00b6ee47 in IA__gtk_object_destroy (object=0x9f7f320) at gtkobject.c:403
#106 0x00cc4fda in IA__gtk_widget_destroy (widget=0x9f7f320) at gtkwidget.c:2886
#107 0x00a10ae2 in gtk_bin_forall (container=0xa018450, include_internals=0,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkbin.c:133
#108 0x00a70ae7 in IA__gtk_container_foreach (container=0xa018450,
callback=0xcc4f4b <IA__gtk_widget_destroy>, 
    callback_data=0x0) at gtkcontainer.c:1480
#109 0x00a6f722 in gtk_container_destroy (object=0xa018450) at gtkcontainer.c:1020
#110 0x00cdb7e3 in gtk_window_destroy (object=0xa018450) at gtkwindow.c:4189
#111 0x03abd409 in IA__g_cclosure_marshal_VOID__VOID (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff6a6fc, invocation_hint=0xbff6a60c, marshal_data=0xcdb6fb)
at gmarshal.c:77
#112 0x03aae779 in g_type_class_meta_marshal (closure=0x9f65908,
return_value=0x0, n_param_values=1, 
    param_values=0xbff6a6fc, invocation_hint=0xbff6a60c, marshal_data=0x4c) at
gclosure.c:567
#113 0x03aaff83 in IA__g_closure_invoke (closure=0x9f65908, return_value=0x0,
n_param_values=1, param_values=0xbff6a6fc, 
    invocation_hint=0xbff6a60c) at gclosure.c:490
#114 0x03ac0c3f in signal_emit_unlocked_R (node=0x9f65950, detail=0,
instance=0xa018450, emission_return=0x0, 
    instance_and_params=0xbff6a6fc) at gsignal.c:2556
#115 0x03ac1997 in IA__g_signal_emit_valist (instance=0xa018450, signal_id=2,
detail=0, var_args=0xbff6a93c "%޶")
    at gsignal.c:2199
#116 0x03ac1b59 in IA__g_signal_emit (instance=0xa018450, signal_id=2, detail=0)
at gsignal.c:2243
#117 0x00b6eed0 in gtk_object_dispose (gobject=0xa018450) at gtkobject.c:418
#118 0x00ccf737 in gtk_widget_dispose (object=0xa018450) at gtkwidget.c:7851
#119 0x00cd773e in gtk_window_dispose (object=0xa018450) at gtkwindow.c:1968
#120 0x007ac476 in bonobo_window_dispose (object=0xa018450) at bonobo-window.c:141
#121 0x0805baf4 in impl_dispose (object=0xa018450) at e-shell-window.c:871
#122 0x03ab2630 in IA__g_object_run_dispose (object=0xa018450) at gobject.c:573
---Type <return> to continue, or q <return> to quit---
#123 0x00b6ee47 in IA__gtk_object_destroy (object=0xa018450) at gtkobject.c:403
#124 0x00cc4fda in IA__gtk_widget_destroy (widget=0xa018450) at gtkwidget.c:2886
#125 0x08052594 in e_shell_close_all_windows (shell=0x9fed800) at e-shell.c:1065
#126 0x080526d3 in es_run_quit (shell=0x9fed800) at e-shell.c:1328
#127 0x0459c8c6 in g_timeout_dispatch (source=0xa66c3b8, callback=0x6,
user_data=0x9fed800) at gmain.c:3488
#128 0x0459c10c in IA__g_main_context_dispatch (context=0x9f824c8) at gmain.c:2061
#129 0x0459f54f in g_main_context_iterate (context=0x9f824c8, block=1,
dispatch=1, self=0x9f5b6c8) at gmain.c:2694
#130 0x0459f8f9 in IA__g_main_loop_run (loop=0x9fa9c10) at gmain.c:2898
#131 0x00898813 in bonobo_main () at bonobo-main.c:311
#132 0x0805e6f1 in main (argc=2, argv=0xbff6ae84) at main.c:602
#133 0x050b1390 in __libc_start_main (main=0x805e340 <main>, argc=2,
ubp_av=0xbff6ae84, init=0x805eee0 <__libc_csu_init>, 
    fini=0x805eed0 <__libc_csu_fini>, rtld_fini=0x11e940 <_dl_fini>,
stack_end=0xbff6ae7c) at libc-start.c:220
#134 0x0804f671 in _start ()

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
Comment 1 Milan Crha 2007-12-11 03:16:24 EST
I see this too, but seems to me as related to actual version of gtk2, because
there is no message with gtk2-2.12.1-5.fc8, but the version gtk2-2.12.3-1.fc8
shows couple of runtime warnings. This is with same actual version of Evolution
from svn. So assigning to gtk2.
Comment 2 Matthew Barnes 2007-12-11 15:57:08 EST
Switching assignees and CC'ing myself.
Comment 3 Matthias Clasen 2007-12-11 18:07:03 EST
Please try the gtk2-2.12.3-2.fc8 that I pushed into updates-testing earlier today.
It should fix this issue.
Comment 4 Milan Crha 2008-01-02 11:38:39 EST
Kjartan ping
Comment 5 Kjartan Maraas 2008-01-03 07:10:04 EST
Fixed.

Note You need to log in before you can comment on or make changes to this bug.