Exception when trying "Add to panel"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libbonobo (Ubuntu) |
Fix Released
|
Medium
|
Ubuntu Desktop Bugs |
Bug Description
When I right click on gnome-panel and select "Add to panel" I got
message that application generated exception and will be closed.
Restarting gnome-panel don't change anything. I upgraded from Ubuntu Breeze
Steps to reproduce the crash:
1. Right click on gnome-panel
2. Select "Add to panel"
Expected Results:
Should show component to add applets to panel.
How often does this happen?
Always
Sebastien Bacher (seb128) wrote : | #1 |
Changed in gnome-panel: | |
assignee: | nobody → desktop-bugs |
status: | Unconfirmed → Needs Info |
Bartosz Mosica (wilow) wrote : | #2 |
Sorry for delay.
I'm using locale pl_PL.
Here is info from debugger:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1223424320 (LWP 7169)]
0xb77b5b78 in g_markup_
(gdb) thread apply all bt
Thread 2 (Thread -1230206032 (LWP 7175)):
#0 0xb7637e0a in poll () from /lib/tls/libc.so.6
#1 0xb77b46e8 in g_main_
#2 0xb77b4bb8 in g_main_loop_run () from /usr/lib/
#3 0xb7cb770e in link_thread_
#4 0xb77cd472 in g_static_
#5 0xb7c731ce in start_thread () from /lib/tls/
#6 0xb76418fe in clone () from /lib/tls/libc.so.6
Thread 1 (Thread -1223424320 (LWP 7169)):
#0 0xb77b5b78 in g_markup_
#1 0xb77b80b9 in g_markup_
#2 0xb77b8216 in g_markup_
#3 0x080a1a0b in panel_addto_
desc=0x865ecd8 "Narzędzie montujące lokalne dyski i urządzenia")
at /build/
#4 0x080a1c98 in panel_addto_
model=
at /build/
#5 0x080a210e in panel_addto_
at /build/
#6 0x080a41a2 in panel_addto_present (item=0x8634168, panel_widget=
at /build/
#7 0xb7827423 in g_cclosure_
#8 0xb781b79f in g_closure_invoke () from /usr/lib/
#9 0xb782a4de in g_signal_
#10 0xb782bae9 in g_signal_
#11 0xb782be59 in g_signal_emit () from /usr/lib/
#12 0xb7b985ad in gtk_widget_activate () from /usr/lib/
#13 0xb7ac51af in gtk_menu_
#14 0xb7ac5481 in gtk_menu_
#15 0xb7abbc34 in gtk_menu_
#16 0xb7ab6540 in _gtk_marshal_
#17 0xb781b16f in g_cclosure_new_swap () from /usr/lib/
#18 0xb781b79f in g_closure_invoke () from /usr/lib/
#19 0xb782a9d8 in g_signal_
#20 0xb782b856 in g_signal_
#21 0xb782be59 in g_signal_emit () from /usr/lib/
---Type <return> to continue, or q <return> to quit---
#22 0xb7b9878f in gtk_widget_activate () from /usr/lib/
#23 0xb7ab4cbd in gtk_propagate_event () from /usr/lib/
#24 0xb7ab50cb in gtk_main_do_event () from /usr/lib/
#25 ...
Sebastien Bacher (seb128) wrote : | #3 |
Could you get a backtrace with libglib2.0-0-dbg installed?
Bartosz Mosica (wilow) wrote : | #4 |
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1222863168 (LWP 5475)]
IA__g_markup_
char_
1866 gmarkup.c: Nie ma takiego pliku ani katalogu.
in gmarkup.c
(gdb) threa apply all bt
Thread 2 (Thread -1229587536 (LWP 5567)):
#0 0xb76c0e0a in poll () from /lib/tls/libc.so.6
#1 0xb783d6e8 in g_main_
self=0x8121388) at gmain.c:2553
#2 0xb783dbb8 in IA__g_main_loop_run (loop=0x82a0590) at gmain.c:2722
#3 0xb7d4070e in link_thread_
#4 0xb7856472 in g_thread_cleanup (data=0x8121388) at gthread.c:552
#5 0xb7cfc1ce in start_thread () from /lib/tls/
#6 0xb76ca8fe in clone () from /lib/tls/libc.so.6
Thread 1 (Thread -1222863168 (LWP 5475)):
#0 IA__g_markup_
char_
#1 0x086e89d0 in ?? ()
#2 0x0871cfff in ?? ()
#3 0x00000001 in ?? ()
#4 0xb7854b22 in IA__g_string_
val=0x86c6176 "XNarzędzie montujące lokalne dyski i urządzeniaX", len=-1081148972)
at gstring.c:484
#5 0xb78410b9 in IA__g_markup_
format=
args=0xbf8efa14 "\220\036k\
#6 0xb7841216 in IA__g_markup_
format=
args=0x86b1e90 "Narzędzie do montowania dysków") at gmarkup.c:2207
#7 0x080a1a0b in panel_addto_
desc=0xb7cedbb8 "Čč,")
at /build/
#8 0x080a1c98 in panel_addto_
model=
at /build/
#9 0x080a210e in panel_addto_
at /build/
#10 0x080a41a2 in panel_addto_present (item=0x8549e78, panel_widget=
at /build/
#11 0xb78b0423 in IA__g_cclosure_
return_
---Type <return> to continue, or q <return> to quit---
invocation_
#12 0xb78a479f in IA__g_closure_
n_param_
at gclosure.c:490
#13 0xb78b34de in signal_
instance=
at gbsearcharray.h:169
#14 0xb78b4ae9 in IA__g_signal_
var_args=<value optimized out>) at gsignal.c:662
#15 0xb78b4e59 in IA__g_signal_
Sebastien Bacher (seb128) wrote : | #5 |
Could you get a backtrace with http://
Bartosz Mosica (wilow) wrote : | #6 |
Yes, here it is:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1223686464 (LWP 6452)]
0xb7775c18 in IA__g_markup_
text=0x8696000 <Address 0x8696000 out of bounds>, length=30) at gmarkup.c:1890
1890 gmarkup.c: Nie ma takiego pliku ani katalogu.
in gmarkup.c
(gdb) thread apply all bt
Thread 2 (Thread -1242825808 (LWP 6463)):
#0 0xb75f7e0a in poll () from /lib/tls/libc.so.6
#1 0xb7774788 in g_main_
self=0x8235f30) at gmain.c:2849
#2 0xb7774c58 in IA__g_main_loop_run (loop=0x82810b0) at gmain.c:2751
#3 0xb7c7770e in link_thread_
#4 0xb778d582 in g_thread_
#5 0xb7c331ce in start_thread () from /lib/tls/
#6 0xb76018fe in clone () from /lib/tls/libc.so.6
Thread 1 (Thread -1223686464 (LWP 6452)):
#0 0xb7775c18 in IA__g_markup_
text=0x8696000 <Address 0x8696000 out of bounds>, length=30) at gmarkup.c:1890
#1 0xb7778159 in IA__g_markup_
format=
args=0xbfd279d4 "đěc\bXíc\bĄ\016§ˇ \032S\bđěc\b\027") at gmarkup.c:2200
#2 0xb77782b6 in IA__g_markup_
format=
#3 0x080b28c9 in panel_addto_
name=0x863ecf0 "Narzędzie do montowania dysków",
desc=0x863ed58 "Narzędzie montujące lokalne dyski i urządzenia")
at /home/seb128/
#4 0x080b2fa5 in panel_addto_
applet=
at /home/seb128/
#5 0x080b30fc in panel_addto_
at /home/seb128/
#6 0x080b45ed in panel_addto_
at /home/seb128/
#7 0x080b5796 in panel_addto_present (item=0x8613630, panel_widget=
at /home/seb128/
#8 0xb77e7423 in IA__g_cclosure_
return_
---Type <return> to continue, or q <return> to quit---
invocation_
#9 0xb77db79f in IA__g_closure_
n_param_
at gclosure.c:490
#10 0xb77ea2ea in signal_
emission_
#11 0xb77ebb19 in IA__g_signal_
var_args=<value optimized out>) at gsignal.c:2197
#12 0xb77ebe89 in IA__g_signal_emit (instance=
Bartosz Mosica (wilow) wrote : | #7 |
Generally I'm developer and I can try to debug it, but I need some tips about using valgrind and how to rebuild package. If you have any links it would be helpfull.
Sebastien Bacher (seb128) wrote : | #8 |
Thank you for offering to work on that. Valgrind can point incorrect memory usage by example. Install the valgrind package to get it. Then to get a log:
- gnome-session-
- valgrind --trace-
running it makes things much slower but is useful. Once the panel started, open the dialog to get the crash and copy the log to a comment
To edit the code
- apt-get source gnome-panel
- cd gnome-panel-2.14.1
- sudo apt-get build-dep gnome-panel
- sudo apt-get install fakeroot devscripts build-essential
- debuild
you get a the package built
- edit gnome-panel/
then either:
- run "debuild binary" to get a fast package rebuild with your changes applied
or
- make && gnome-panel/
The function were the crash happens according to the bt:
"static char *
panel_addto_
const char *desc)
{
const char *real_name;
char *result;
real_name = name ? name : _("(empty)");
if (!string_empty (desc)) {
result = g_markup_
real_name, desc);
} else {
result = g_markup_
real_name);
}
return result;
}"
real_name and desc seems to be correct according to the backtrace, that could be nice to have a printf before every g_markup_
you may want to run gnome-panel with GNOME_PANEL_DEBUG=1 set so it doesn't restart automatically if you doesn't want to
Bartosz Mosica (wilow) wrote : | #9 |
Right now I have valgrind log, but as I see it is truncated, so I will make correct one soon.
I think that problem is related to some polish letters, and it can be connected with not displaying some names in menu (see attachment - menu_no_
** (gnome-
(gnome-
In function panel_addto_
Name: Monitor systemu
Desc: Wskaźnik obciążenia systemu
Real_name: Monitor systemu
RESULT: <span weight=
Wskaźnik obciążenia systemu
And it crash on such values, which don't look even strange:
Name: Narzędzie do montowania dysków
Desc: Narzędzie montujące lokalne dyski i urządzenia
Real_name: Narzędzie do montowania dysków
This is what I have right now, I will try to digg more.
Bartosz Mosica (wilow) wrote : Menu with no entries | #10 |
- Menu with no entries Edit (141.0 KiB, image/png)
Menu with no entries - probably because of polish letters.
On console such warnings:
(gnome-
** (gnome-
Bartosz Mosica (wilow) wrote : gnome-panel valgrind log | #11 |
Sebastien Bacher (seb128) wrote : | #12 |
a bunch of duplicates for Ubuntu and upstream, would be nice to fix for dapper ...
Changed in gnome-panel: | |
status: | Needs Info → Confirmed |
Sebastien Bacher (seb128) wrote : | #13 |
do you use an UTF-8 locale? do you still have the issue?
Sebastien Bacher (seb128) wrote : | #14 |
I'll upload a fixed package soon
Changed in gnome-panel: | |
status: | Confirmed → Fix Committed |
Sebastien Bacher (seb128) wrote : | #15 |
This upload fixes the issue:
libbonobo (2.14.0-0ubuntu2) dapper; urgency=low
.
* debian/
- Check whether the application used bind_textdomain
dgettext() return encoding, and not use g_locale_to_utf8() in this case.
fix "add to panel" dialog crasher or broken translations when using an
utf-8 locale (Ubuntu: #37624)
Changed in libbonobo: | |
status: | Fix Committed → Fix Released |
Thanks for your bug. What locale do you use? Could you get a backtrace of the crash with gnome-panel-dbg installed?
- run "gdb -p $(pidof gnome-panel)"
- try opening the dialog
- type "thread apply all bt" to the gdb prompt
then copy that to a comment