After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 305493 - crashes while copying files/folders with arabic (UTF8) names
crashes while copying files/folders with arabic (UTF8) names
Status: RESOLVED DUPLICATE of bug 89541
Product: nautilus
Classification: Core
Component: Cut Copy Paste Undo
2.11.x
Other Linux
: High critical
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-05-25 22:39 UTC by Islam Amer
Modified: 2005-06-06 20:45 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10



Description Islam Amer 2005-05-25 22:39:44 UTC
Distribution/Version: gentoo

1-Copy files or folders with arabic (UTF8) names.
2-Crash
Comment 1 Islam Amer 2005-05-26 01:02:49 UTC
I think it happens only, when copying multiple items that have arabic names
recursively. That is, folder with arabic name, having files with arabic names.
Comment 2 Sebastien Bacher 2005-05-26 08:14:19 UTC
Thanks for the bug report. Without a stack trace from the crash it's very hard
to determine what caused it. Can you provide us with one? Please see
http://live.gnome.org/GettingTraces for more information on how to do so.
Comment 3 Islam Amer 2005-05-26 11:27:47 UTC
I am sorry about the sloppy bugreport, it was late. now I have recompiled
nautilus with debug turned on, and removed -fomit-frame-pointer from my CFLAGS (
they were conservative don't worry ). they are now : "-Os -march=i686 -pipe"

a small note. This crash has been happening since gnome-2.8

The problem now is that nautilus doesn't stay running in the same thread. So
when I run it in gdb it just transfers to another thread and gdb says it exits.

anyway here were the errors thrown:

(nautilus:18682): Gtk-WARNING **: Failed to set label from markup due to error
parsing markup: Error on line 1: Character ' ' is not valid inside an entity name
Pango-ERROR **: file pango-layout.c: line 4861
(pango_layout_iter_get_char_extents): assertion failed: (p <= current)
aborting...

pango error ?!!

What do I do now, please assist :)
Comment 4 Sebastien Bacher 2005-05-26 12:13:22 UTC
you can use "gdb -p <pid>" to use gdb on the currently running nautilus, then
"c" to continue running it
Comment 5 Islam Amer 2005-05-26 12:41:33 UTC
great now we're in business:

I did as you said and then started copying one of the offending folders. Sure
enough, crash, this time caught by gdb:

Program received signal SIGABRT, Aborted.
[Switching to Thread -1477106000 (LWP 23955)]
0x00415410 in ?? ()
(gdb) thread apply all bt



I removed a lot of duplicate lines in the middle.

I hope this is helpful.
Comment 6 Islam Amer 2005-05-28 17:14:01 UTC
I did a lot more testing and have come to the following conclusions:

1- My gdb backtrace is not helpful. Something is wrong, lots of symbols are
missing. Can you tell what's wrong?

2- I narrowed down the problem to certain files. These files were copied from a
windows vfat partition , mounted with the utf8 option.

3- Any operations on these files using nautilus, trigger the crash.

4- Some of them are mp3 and beep-media-player complains that their names are
invalid UTF8. However it doesn't crash. Turning on the name rencoding option in
the mp3 plugin and entering "cp1256" ( windows arabic encoding ) as the source
enoding , fixes the name display. 

5- Manipulating the files at the command line, with cp, mv or tar , will fix the
names , and nautilus won't crash on manipulating them anymore.

I hope this has clarified some points. Thanks in advance.
Comment 7 Mohammed Sameer 2005-05-29 20:18:13 UTC
Hope this'll help:
Pango-ERROR **: file pango-layout.c: line 4861 (pango_layout_iter_get_char_extents): assertion 
failed: (p <= current)
aborting...

Program received signal SIGABRT, Aborted.

Thread NaN (LWP 27700)

  • #0 raise
    from /lib/tls/libc.so.6
  • #1 abort
    from /lib/tls/libc.so.6
  • #2 g_logv
    from /usr/lib/libglib-2.0.so.0
  • #3 g_log
    from /usr/lib/libglib-2.0.so.0
  • #4 g_assert_warning
    from /usr/lib/libglib-2.0.so.0
  • #5 pango_layout_iter_get_char_extents
    at pango-layout.c line 4882
  • #6 eel_pango_layout_set_font_desc_from_string
    from /usr/lib/libeel-2.so.2
  • #7 eel_pango_layout_set_font_desc_from_string
    from /usr/lib/libeel-2.so.2
  • #8 eel_pango_layout_set_text_ellipsized
    from /usr/lib/libeel-2.so.2
  • #9 eel_ellipsizing_label_set_text
    from /usr/lib/libeel-2.so.2
  • #10 g_cclosure_marshal_VOID__BOXED
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #15 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #16 gtk_widget_size_allocate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #17 gtk_table_get_homogeneous
    from /usr/lib/libgtk-x11-2.0.so.0
  • #18 g_cclosure_marshal_VOID__BOXED
    from /usr/lib/libgobject-2.0.so.0
  • #19 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #20 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #21 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #22 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #23 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #24 gtk_widget_size_allocate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #25 gtk_vbox_new
    from /usr/lib/libgtk-x11-2.0.so.0
  • #26 g_cclosure_marshal_VOID__BOXED
    from /usr/lib/libgobject-2.0.so.0
  • #27 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #28 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #29 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #30 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #31 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #32 gtk_widget_size_allocate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #33 gtk_vbox_new
    from /usr/lib/libgtk-x11-2.0.so.0
  • #34 g_cclosure_marshal_VOID__BOXED
    from /usr/lib/libgobject-2.0.so.0
  • #35 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #36 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #37 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #38 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #5 pango_layout_iter_get_char_extents
    at pango-layout.c line 4882
$1 = (PangoLayoutIter *) 0xb7792253
(gdb) print logical_rect
$2 = (PangoRectangle *) 0xbfffd9e0
(gdb) 
Comment 8 Mohammed Sameer 2005-05-29 20:21:59 UTC
I also noticed something:
When I run nautilus with LANG=en_U.UTF-8 the crash happens but with LANG=en_US only nothing 
happens.
Comment 9 Martin Wehner 2005-06-06 20:45:59 UTC
Thanks for the bug report. This particular bug has already been reported into
our bug tracking system, but please feel free to report any further bugs you find. 

*** This bug has been marked as a duplicate of 89541 ***