[SOLVED] Synfigstudio 0.61.09 crashes with LC_ALL=fr@euro

Hello to all,

I would like to report

  • A segmentation fault of synfigstudio 0.61.09:
    [list][*] at splash screen, during “History initialization” (or some name like that)

  • the text messages relate the event to “Invalid UTF-8 string passed to pango_layout_set_text()” and the crashes occurs in g_markup_escape_text() from glib.
    [/:m]
    [
    ] a workaround for my box: $ LC_ALL=C synfigstudio
    (my locale, with which synfigstudio crashes, is “fr_FR@euro”)[/:m]
    [
    ] some details about how it compiles (or not) and crashes (or not)[/*:m][/list:u]

I don’t know if it is really a bug of synfigstudio or some misconfiguration of my linux box, but anyway some warning should be added to the documentation so new users are not surprised by a crash which they don’t understand, specially if they launch synfigstudio from a graphical menu and hence don’t see the messages on the command-line, and that (maybe) main synfig developers never faced if they configured their machine to work in English.

Best regards,

Jérôme

[size=150]General information and internet lookup[/size]
I installed synfigstudio on a AMD64 Gentoo linux box (using sunrise overlay, 0.61.08 and 0.61.09 versions), along with synfig 0.61.09 and ETL 0.04.12. I got a segmentation fault after splash screen. It has already been reported at different places on the internet. See

http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg511830.html (a similar crash)
http://dooglus.rincevent.net/synfig/logs/2008/%23synfig-2008-01-03.log (no crash but interesting discussion on the topic of non-en_US locales and execution warnings)

One similar bug had been reported to exist in the 0.61.08 version, corrected recently in the 0.61.09 release. This is obviously a different bug since it still exists in 0.61.09. The existence of two separate bugs has been reported at:

http://bugs.launchpad.net/ubuntu/+source/synfigstudio/+bug/292750

[size=150]Configuration[/size]

[code]
Synfig Studio v.0.61.09
Configuration Summary


Install Prefix -------------------> /usr
Host Platform --------------------> x86_64-pc-linux-gnu
Icon Format ----------------------> png
Debug Mode -----------------------> yes
Profiling Mode -------------------> no
Optimizations --------------------> 2
Window System --------------------> gtkmm
FMOD Enabled ---------------------> no

$CXX ------------------------------> ‘x86_64-pc-linux-gnu-g++’
$CXXFLAGS -------------------------> ’ -pipe -D_DEBUG -g -O2 -W -Wall’
$LDFLAGS --------------------------> ‘-Wl,-O1’
$SYNFIG_CFLAGS ---------------------> '-I/usr/include/synfig-0.0 -I/usr/include/libxml+±2.6 -I/usr/lib64/libxml+±2.6/include -I/usr/include/sigc+±2.0 -I/usr/lib64/sigc+±2.0/include -I/usr/include/libxml2 -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include

$SYNFIG_LIBS -----------------------> '-lsynfig -lxml+±2.6 -lxml2 -lglibmm-2.4-lgobject-2.0 -lglib-2.0 -lpthread -lsigc-2.0 ’
$GTKMM_CFLAGS ---------------------> '-D_REENTRANT -pthread -I/usr/include/gtkmm-2.4 -I/usr/lib64/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib64/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/gtk-2.0 -I/usr/include/sigc+±2.0 -I/usr/lib64/sigc+±2.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/pixman-1 -I/usr/include/atk-1.0 ’
$GTKMM_LIBS -----------------------> '-pthread -lgtkmm-2.4 -lgdkmm-2.4 -lgtk-x11-2.0 -lpangomm-1.4 -lcairomm-1.0 -lglibmm-2.4 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lrt -lglib-2.0 '[/code]

[size=150]Debug information[/size]

Although I would like to provide backtraces, I could not compile synfigstudio with -ggdb option, because it would fail like this:

./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --without-libfmod --libdir=/usr/lib64 --build=x86_64-pc-linux-gnu --enable-debug
[...]
creating .libs/synfigstudioS.c
generating symbol list for `synfigstudio'
extracting global C symbols from `synfigstudio-mod_mirror.o'
extracting global C symbols from `synfigstudio-state_mirror.o'
[...]
extracting global C symbols from `synfigstudio-dialog_waypoint.o'
(cd .libs && x86_64-pc-linux-gnu-gcc  -march=k8  gdb -D_DEBUG -g -O2 -c -fno-builtin "synfigstudioS.c")
x86_64-pc-linux-gnu-gcc: gdb: No such file or directory
make[3]: *** [synfigstudio] Error 1
make[3]: leaving folder « /mnt/stockage/sys/tmp/portage/media-gfx/synfigstudio-0.61.09/work/synfigstudio-0.61.09/src/gtkmm »

(Some of the compiler messages were manually translated to English for ease of reading.)

Of course I would be glad if someone could help me passing the correct options to ./configure or to the CFLAGS.

[size=150]Failed execution test[/size]

18:22:25 jerome jerome/ gdb -r synfigstudio
GNU gdb 6.7.1
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu"...
r
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) r
Starting program: /usr/bin/synfigstudio

   Synfig Studio -- démarrage de l'application ...


(synfigstudio:5314): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()

[skipping dozens of identical lines]

(synfigstudio:5314): Gtk-WARNING **: Invalid input string

[skipping dozens of identical lines]

Program received signal SIGSEGV, Segmentation fault.
0x00007f4aa80eb302 in g_markup_escape_text () from /usr/lib/libglib-2.0.so.0
(gdb) q
The program is running.  Exit anyway? (y or n) y

[size=150]Successful execution test[/size]

18:23:07 jerome jerome/ LC_ALL=C synfigstudio

synfig studio -- starting up application...

synfig(5365) [18:27:31] info: Created directory "/home/jerome/initialisation/.synfig/tmp"
synfig(5365) [18:32:30] warning: Couldn't find layer to be activated in layer list. Rebuilding index...

[size=150]Other possibly relevant information[/size]

$ uname -a
Linux anomalocaris 2.6.28-gentoo #1 SMP PREEMPT Fri Dec 26 09:09:43 WET 2008 x86_64 AMD Athlon(tm) 64 Processor 3200+ AuthenticAMD GNU/Linux

Synfigstudio specifically crashes using this locale (at least):

$ echo $LC_ALL
fr_FR@euro

Filesystem is in ISO-8859-1, which usually causes me some problems to programs using GTK+. For example, Inkscape would not be able to open a file when the path contains non Latin-0 characters. But until now, it does not causes a crash to the software I use, and anyway synfigstudio crashes while it is called from a directory tree using only 7-bits ASCII characters.

To enable debug symbols and disable optimisation, do this:

./configure --enable-debug --enable-optimization=0

Once you’ve done that do ‘bt full’ in GDB after the crash.

Hello pabs, thank you for your reply, here is the backtrace, obtained with the configure options you suggested. (I tried to attach the file to avoid flooding the topic page, but the software told me txt file are not allowed.)

Jérôme

Program received signal SIGSEGV, Segmentation fault.
0x00007f1bc4fb1302 in g_markup_escape_text () from /usr/lib/libglib-2.0.so.0
(gdb) bt full

#0  0x00007f36ef20f302 in g_markup_escape_text () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#1  0x00007f36f1795a50 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#2  0x00007f36efcd7ed5 in g_object_set_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#3  0x00007f36efcd833a in g_object_set () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#4  0x00007f36f15b0e31 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#5  0x00007f36f15afd3f in gtk_action_create_tool_item () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#6  0x00007f36f1783b02 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#7  0x00007f36f1782f03 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#8  0x00007f36f1782f03 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#9  0x00007f36f1783c43 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#10 0x00007f36f1784299 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#11 0x00007f36f201fc50 in Gtk::UIManager::get_widget () from /usr/lib/libgtkmm-2.4.so.1
No symbol table info available.
#12 0x000000000070ef11 in Dock_History (this=0x1141690) at dock_history.cpp:144
No locals.
#13 0x000000000076aea3 in App (this=0x7ffffb5090c0, argc=0x7ffffb5090bc, 
    argv=0x7ffffb5090b0) at app.cpp:1178
No locals.
#14 0x00000000007498e4 in main (argc=1, argv=0x7ffffb509258) at main.cpp:97
        file = {obj = 0x0, refcount = {counter_ = 0x0}}
        app = {<> = {<No data fields>}, <studio::IconController> = {icon_factory = {
      pCppObject_ = 0xe10a90}}, synfigapp_main = {obj = 0xf39600, refcount = {
      counter_ = 0x1015410}}, static selected_instance = {obj = 0x0}, 
  static selected_canvas_view = {obj = 0x0}, static ui_manager_ = {
    pCppObject_ = 0x1038e00}, static dialog_input = 0x0, static device_tracker = 0x0, 
  static auto_recover = 0x0, static dock_manager = 0x1061a30, static dialog_setup = 0x0, 
  static dialog_gradient = 0x0, static dialog_color = 0x0, 
  static dialog_tool_options = 0x111f060, 
  static distance_system = synfig::Distance::SYSTEM_UNITS, static gamma = {gamma_r = 1, 
    gamma_g = 1, gamma_b = 1, black_level = 0, red_blue_level = 1, 
    table_r_U16_to_U8 = '\0' <repeats 129 times>, '\001' <repeats 257 times>, '\002' <repeats 257 times>, '\003' <repeats 257 times>, '\004' <repeats 257 times>, '\005' <repeats 257 times>, '\006' <repeats 257 times>, '\a' <repeats 257 times>, '\b' <repeats 257 times>, '\t' <repeats 257 times>, '\n' <repeats 257 times>, '\v' <repeats 257 times>, '\f' <repeats 257 times>, '\r' <repeats 257 times>, '\016' <repeats 257 times>, '\017' <repeats 257 times>, '\020' <repeats 257 times>, '\021' <repeats 257 times>, '\022' <repeats 257 times>, '\023' <repeats 257 times>..., 
    table_g_U16_to_U8 = '\0' <repeats 129 times>, '\001' <repeats 257 times>, '\002' <repeats 257 times>, '\003' <repeats 257 times>, '\004' <repeats 257 times>, '\005' <repeats 257 times>, '\006' <repeats 257 times>, '\a' <repeats 257 times>, '\b' <repeats 257 times>, '\t' <repeats 257 times>, '\n' <repeats 257 times>, '\v' <repeats 257 times>, '\f' <repeats 257 times>, '\r' <repeats 257 times>, '\016' <repeats 257 times>, '\017' <repeats 257 times>, '\020' <repeats 257 times>, '\021' <repeats 257 times>, '\022' <repeats 257 times>, '\023' <repeats 257 times>..., 
    table_b_U16_to_U8 = '\0' <repeats 129 times>, '\001' <repeats 257 times>, '\002' <repeats 257 times>, '\003' <repeats 257 times>, '\004' <repeats 257 times>, '\005' <repeats 257 times>, '\006' <repeats 257 times>, '\a' <repeats 257 times>, '\b' <repeats 257 times>, '\t' <repeats 257 times>, '\n' <repeats 257 times>, '\v' <repeats 257 times>, '\f' <repeats 257 times>, '\r' <repeats 257 times>, '\016' <repeats 257 times>, '\017' <repeats 257 times>, '\020' <repeats 257 times>, '\021' <repeats 257 times>, '\022' <repeats 257 times>, '\023' <repeats 257 times>..., 
    table_r_U8_to_F32 = {0, 0.00392156886, 0.00784313772, 
      0.0117647061, 0.0156862754, 0.0196078438, 0.0235294122, 0.0274509806, 0.0313725509, 
      0.0352941193, 0.0392156877, 0.0431372561, 0.0470588244, 0.0509803928, 0.0549019612, 
      0.0588235296, 0.0627451017, 0.0666666701, 0.0705882385, 0.0745098069, 0.0784313753, 
      0.0823529437, 0.0862745121, 0.0901960805, 0.0941176489, 0.0980392173, 0.101960786, 
      0.105882354, 0.109803922, 0.113725491, 0.117647059, 0.121568628, 0.125490203, 
      0.129411772, 0.13333334, 0.137254909, 0.141176477, 0.145098045, 0.149019614, 
      0.152941182, 0.156862751, 0.160784319, 0.164705887, 0.168627456, 0.172549024, 
      0.176470593, 0.180392161, 0.184313729, 0.188235298, 0.192156866, 0.196078435, 
      0.200000003, 0.203921571, 0.20784314, 0.211764708, 0.215686277, 0.219607845, 
      0.223529413, 0.227450982, 0.23137255, 0.235294119, 0.239215687, 0.243137255, 
      0.247058824, 0.250980407, 0.254901975, 0.258823544, 0.262745112, 0.266666681, 
      0.270588249, 0.274509817, 0.278431386, 0.282352954, 0.286274523, 0.290196091, 
      0.294117659, 0.298039228, 0.301960796, 0.305882365, 0.309803933, 0.313725501, 
      0.31764707, 0.321568638, 0.325490206, 0.329411775, 0.333333343, 0.337254912, 
      0.34117648, 0.345098048, 0.349019617, 0.352941185, 0.356862754, 0.360784322, 
      0.36470589, 0.368627459, 0.372549027, 0.376470596, 0.380392164, 0.384313732, 
      0.388235301, 0.392156869, 0.396078438, 0.400000006, 0.403921574, 0.407843143, 
      0.411764711, 0.41568628, 0.419607848, 0.423529416, 0.427450985, 0.431372553, 
      0.435294122, 0.43921569, 0.443137258, 0.447058827, 0.450980395, 0.454901963, 
      0.458823532, 0.4627451, 0.466666669, 0.470588237, 0.474509805, 0.478431374, 
      0.482352942, 0.486274511, 0.490196079, 0.494117647, 0.498039216, 0.501960814, 
      0.505882382, 0.509803951, 0.513725519, 0.517647088, 0.521568656, 0.525490224, 
      0.529411793, 0.533333361, 0.53725493, 0.541176498, 0.545098066, 0.549019635, 
      0.552941203, 0.556862772, 0.56078434, 0.564705908, 0.568627477, 0.572549045, 
      0.576470613, 0.580392182, 0.58431375, 0.588235319, 0.592156887, 0.596078455, 
      0.600000024, 0.603921592, 0.607843161, 0.611764729, 0.615686297, 0.619607866, 
      0.623529434, 0.627451003, 0.631372571, 0.635294139, 0.639215708, 0.643137276, 
      0.647058845, 0.650980413, 0.654901981, 0.65882355, 0.662745118, 0.666666687, 
      0.670588255, 0.674509823, 0.678431392, 0.68235296, 0.686274529, 0.690196097, 
      0.694117665, 0.698039234, 0.701960802, 0.70588237, 0.709803939, 0.713725507, 
      0.717647076, 0.721568644, 0.725490212, 0.729411781, 0.733333349, 0.737254918, 
      0.741176486, 0.745098054, 0.749019623, 0.752941191, 0.75686276, 0.760784328, 
      0.764705896, 0.768627465, 0.772549033, 0.776470602, 0.78039217...}, 
    table_g_U8_to_F32 = {0, 0.00392156886, 0.00784313772, 0.0117647061, 0.0156862754, 
      0.0196078438, 0.0235294122, 0.0274509806, 0.0313725509, 0.0352941193, 0.0392156877, 
      0.0431372561, 0.0470588244, 0.0509803928, 0.0549019612, 0.0588235296, 0.0627451017, 
      0.0666666701, 0.0705882385, 0.0745098069, 0.0784313753, 0.0823529437, 0.0862745121, 
      0.0901960805, 0.0941176489, 0.0980392173, 0.101960786, 0.105882354, 0.109803922, 
      0.113725491, 0.117647059, 0.121568628, 0.125490203, 0.129411772, 0.13333334, 
      0.137254909, 0.141176477, 0.145098045, 0.149019614, 0.152941182, 0.156862751, 
      0.160784319, 0.164705887, 0.168627456, 0.172549024, 0.176470593, 0.180392161, 
      0.184313729, 0.188235298, 0.192156866, 0.196078435, 0.200000003, 0.203921571, 
      0.20784314, 0.211764708, 0.215686277, 0.219607845, 0.223529413, 0.227450982, 
      0.23137255, 0.235294119, 0.239215687, 0.243137255, 0.247058824, 0.250980407, 
      0.254901975, 0.258823544, 0.262745112, 0.266666681, 0.270588249, 0.274509817, 
      0.278431386, 0.282352954, 0.286274523, 0.290196091, 0.294117659, 0.298039228, 
      0.301960796, 0.305882365, 0.309803933, 0.313725501, 0.31764707, 0.321568638, 
      0.325490206, 0.329411775, 0.333333343, 0.337254912, 0.34117648, 0.345098048, 
      0.349019617, 0.352941185, 0.356862754, 0.360784322, 0.36470589, 0.368627459, 
      0.372549027, 0.376470596, 0.380392164, 0.384313732, 0.388235301, 0.392156869, 
      0.396078438, 0.400000006, 0.403921574, 0.407843143, 0.411764711, 0.41568628, 
      0.419607848, 0.423529416, 0.427450985, 0.431372553, 0.435294122, 0.43921569, 
      0.443137258, 0.447058827, 0.450980395, 0.454901963, 0.458823532, 0.4627451, 
      0.466666669, 0.470588237, 0.474509805, 0.478431374, 0.482352942, 0.486274511, 
      0.490196079, 0.494117647, 0.498039216, 0.501960814, 0.505882382, 0.509803951, 
      0.513725519, 0.517647088, 0.521568656, 0.525490224, 0.529411793, 0.533333361, 
      0.53725493, 0.541176498, 0.545098066, 0.549019635, 0.552941203, 0.556862772, 
      0.56078434, 0.564705908, 0.568627477, 0.572549045, 0.576470613, 0.580392182, 
      0.58431375, 0.588235319, 0.592156887, 0.596078455, 0.600000024, 0.603921592, 
      0.607843161, 0.611764729, 0.615686297, 0.619607866, 0.623529434, 0.627451003, 
      0.631372571, 0.635294139, 0.639215708, 0.643137276, 0.647058845, 0.650980413, 
      0.654901981, 0.65882355, 0.662745118, 0.666666687, 0.670588255, 0.674509823, 
      0.678431392, 0.68235296, 0.686274529, 0.690196097, 0.694117665, 0.698039234, 
      0.701960802, 0.70588237, 0.709803939, 0.713725507, 0.717647076, 0.721568644, 
      0.725490212, 0.729411781, 0.733333349, 0.737254918, 0.741176486, 0.745098054, 
      0.749019623, 0.752941191, 0.75686276, 0.760784328, 0.764705896, 0.768627465, 
      0.772549033, 0.776470602, 0.78039217...}, table_b_U8_to_F32 = {0, 0.00392156886, 
      0.00784313772, 0.0117647061, 0.0156862754, 0.0196078438, 0.0235294122, 
      0.0274509806, 0.0313725509, 0.0352941193, 0.0392156877, 0.0431372561, 0.0470588244, 
      0.0509803928, 0.0549019612, 0.0588235296, 0.0627451017, 0.0666666701, 0.0705882385, 
      0.0745098069, 0.0784313753, 0.0823529437, 0.0862745121, 0.0901960805, 0.0941176489, 
      0.0980392173, 0.101960786, 0.105882354, 0.109803922, 0.113725491, 0.117647059, 
      0.121568628, 0.125490203, 0.129411772, 0.13333334, 0.137254909, 0.141176477, 
      0.145098045, 0.149019614, 0.152941182, 0.156862751, 0.160784319, 0.164705887, 
      0.168627456, 0.172549024, 0.176470593, 0.180392161, 0.184313729, 0.188235298, 
      0.192156866, 0.196078435, 0.200000003, 0.203921571, 0.20784314, 0.211764708, 
      0.215686277, 0.219607845, 0.223529413, 0.227450982, 0.23137255, 0.235294119, 
      0.239215687, 0.243137255, 0.247058824, 0.250980407, 0.254901975, 0.258823544, 
      0.262745112, 0.266666681, 0.270588249, 0.274509817, 0.278431386, 0.282352954, 
      0.286274523, 0.290196091, 0.294117659, 0.298039228, 0.301960796, 0.305882365, 
      0.309803933, 0.313725501, 0.31764707, 0.321568638, 0.325490206, 0.329411775, 
      0.333333343, 0.337254912, 0.34117648, 0.345098048, 0.349019617, 0.352941185, 
      0.356862754, 0.360784322, 0.36470589, 0.368627459, 0.372549027, 0.376470596, 
      0.380392164, 0.384313732, 0.388235301, 0.392156869, 0.396078438, 0.400000006, 
      0.403921574, 0.407843143, 0.411764711, 0.41568628, 0.419607848, 0.423529416, 
      0.427450985, 0.431372553, 0.435294122, 0.43921569, 0.443137258, 0.447058827, 
      0.450980395, 0.454901963, 0.458823532, 0.4627451, 0.466666669, 0.470588237, 
      0.474509805, 0.478431374, 0.482352942, 0.486274511, 0.490196079, 0.494117647, 
      0.498039216, 0.501960814, 0.505882382, 0.509803951, 0.513725519, 0.517647088, 
      0.521568656, 0.525490224, 0.529411793, 0.533333361, 0.53725493, 0.541176498, 
      0.545098066, 0.549019635, 0.552941203, 0.556862772, 0.56078434, 0.564705908, 
      0.568627477, 0.572549045, 0.576470613, 0.580392182, 0.58431375, 0.588235319, 
      0.592156887, 0.596078455, 0.600000024, 0.603921592, 0.607843161, 0.611764729, 
      0.615686297, 0.619607866, 0.623529434, 0.627451003, 0.631372571, 0.635294139, 
      0.639215708, 0.643137276, 0.647058845, 0.650980413, 0.654901981, 0.65882355, 
      0.662745118, 0.666666687, 0.670588255, 0.674509823, 0.678431392, 0.68235296, 
      0.686274529, 0.690196097, 0.694117665, 0.698039234, 0.701960802, 0.70588237, 
      0.709803939, 0.713725507, 0.717647076, 0.721568644, 0.725490212, 0.729411781, 
      0.733333349, 0.737254918, 0.741176486, 0.745098054, 0.749019623, 0.752941191, 
      0.75686276, 0.760784328, 0.764705896, 0.768627465, 0.772549033, 0.776470602, 
      0.78039217...}}, static about = 0x11095e0, static toolbox = 0x1062570, 
  static instance_list = {<std::_List_base<etl::handle<studio::Instance>,std::allocator<etl::handle<studio::Instance> > >> = {
      _M_impl = {<std::allocator<std::_List_node<etl::handle<studio::Instance> > >> = {<__gnu_cxx::new_allocator<std::_List_node<etl::handle<studio::Instance> > >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0xdac320, 
          _M_prev = 0xdac320}}}, <No data fields>}, static shutdown_in_progress = false, 
  static use_colorspace_gamma = true, static restrict_radius_ducks = false, 
  static browser_command = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xdb0148 "xdg-open"}}, 
  static custom_filename_prefix = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xdaf8c8 "Synfig Animation "}}, 
  static preferred_x_size = 480, static preferred_y_size = 270, static predefined_size = {
    static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xdaf948 "Custom Size"}}}
        ret = 0
        str = {static npos = 18446744073709551615, 
  _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffffb509120 "À\f "}}
        x = <incomplete type>
        x = (class Glib::Exception &) @0x0: <error reading variable>
(gdb) 

Set the plain text extension category to allowed, sorry about that.

What happens with LANG=fr_FR.UTF-8?

Can you get a backtrace with glib/gtk debug symbols?

LANG=… does not change anything, however LC_ALL does the trick. But you’ll notice that there’s a coding problem in the console, because my system is actually ISO8859-1 (or 8859-15 when supported), not utf8.

13:38:51 jerome jerome/ LC_ALL=fr_FR.UTF8 /usr/bin/synfigstudio

Synfig Studio – démarrage de l’application …

(it works fine)

13:40:19 jerome jerome/ LC_ALL=fr_FR.ISO8859-1 /usr/bin/synfigstudio

Synfig Studio – démarrage de l’application …
[…]
(synfigstudio:25618): Gtk-WARNING **: Invalid input string
Segmentation fault

So I compiled Glib 2.16.5 and gtk+ 2.12.11 with debug symbols. The crash apparently occurs during the creation of toolbar-history, as there are some out of bounds addresses related to the “redo” action.

Regards,

Jérôme

$ gdb -r /usr/bin/synfigstudio
[...]
Program received signal SIGSEGV, Segmentation fault.
0x00007f742d77504b in append_escaped_text (str=0x114a6c0, text=0x114a8c0 "Rétablir la dernière action annulée", length=35) at gmarkup.c:1952
1952    gmarkup.c: No such file or directory.
        in gmarkup.c
Current language:  auto; currently c
(gdb) bt full
#0  0x00007f742d77504b in append_escaped_text (str=0x114a6c0, text=0x114a8c0 "Rétablir la dernière action annulée", length=35)
    at gmarkup.c:1952
        next = (const gchar *) 0x119b000 <Address 0x119b000 out of bounds>
        p = (const gchar *) 0x119b000 <Address 0x119b000 out of bounds>
        end = (const gchar *) 0x114a8e3 ""
        c = 0
#1  0x00007f742d77523c in IA__g_markup_escape_text (text=0x114a8c0 "Rétablir la dernière action annulée", length=35) at gmarkup.c:2022
        str = (GString *) 0x114a6c0
        __PRETTY_FUNCTION__ = "IA__g_markup_escape_text"
#2  0x00007f742fe1ecd1 in gtk_widget_set_property (object=0x1120af0, prop_id=21, value=0x7fff39bcde60, pspec=0xddbce0) at gtkwidget.c:2447
        tmp = 76
        saved_flags = 0
        tooltip_markup = (gchar *) 0x139bcde60 <Address 0x139bcde60 out of bounds>
        tooltip_window = (GtkWindow *) 0x0
        tooltip_text = (const gchar *) 0x114a8c0 "Rétablir la dernière action annulée"
        widget = (GtkWidget *) 0x1120af0
#3  0x00007f742e2592fc in object_set_property (object=0x1120af0, pspec=0xddbce0, value=0x7fff39bcdf60, nqueue=0x114a680) at gobject.c:697
        tmp_value = {g_type = 64, data = {{v_int = 18131136, v_uint = 18131136, v_long = 18131136, v_ulong = 18131136, v_int64 = 18131136, 
      v_uint64 = 18131136, v_float = 2.73043791e-38, v_double = 8.9579714176754755e-317, v_pointer = 0x114a8c0}, {v_int = 0, v_uint = 0, 
      v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        class = (GObjectClass *) 0xe35230
        param_id = 21
        redirect = (GParamSpec *) 0x0
#4  0x00007f742e25a0ba in IA__g_object_set_valist (object=0x1120af0, first_property_name=0x7f742ff2f911 "tooltip-text", 
    var_args=0x7fff39bce010) at gobject.c:1130
        value = {g_type = 64, data = {{v_int = 18131088, v_uint = 18131088, v_long = 18131088, v_ulong = 18131088, v_int64 = 18131088, 
      v_uint64 = 18131088, v_float = 2.73042445e-38, v_double = 8.9579477025244751e-317, v_pointer = 0x114a890}, {v_int = 0, v_uint = 0, 
      v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        pspec = (GParamSpec *) 0xddbce0
        error = (gchar *) 0x0
        nqueue = (GObjectNotifyQueue *) 0x114a680
        name = (const gchar *) 0x7f742ff2f911 "tooltip-text"
        __PRETTY_FUNCTION__ = "IA__g_object_set_valist"
#5  0x00007f742e25aa90 in IA__g_object_set (_object=0x1120af0, first_property_name=0x7f742ff2f911 "tooltip-text") at gobject.c:1212
        object = (GObject *) 0x1120af0
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fff39bce110, reg_save_area = 0x7fff39bce050}}
        __PRETTY_FUNCTION__ = "IA__g_object_set"
#6  0x00007f742fe2e044 in IA__gtk_widget_set_tooltip_text (widget=0x1120af0, text=0x11462c0 "Rétablir la dernière action annulée")
    at gtkwidget.c:9609
        __PRETTY_FUNCTION__ = "IA__gtk_widget_set_tooltip_text"
#7  0x00007f742fdb93f7 in IA__gtk_tool_item_set_tooltip_text (tool_item=0x110b190, text=0x11462c0 "Rétablir la dernière action annulée")
    at gtktoolitem.c:834
        child = (GtkWidget *) 0x1120af0
        __PRETTY_FUNCTION__ = "IA__gtk_tool_item_set_tooltip_text"
#8  0x00007f742fb6fd45 in gtk_action_sync_tooltip (action=0x1143340, proxy=0x110b190) at gtkaction.c:1452
No locals.
#9  0x00007f742fb6e358 in connect_proxy (action=0x1143340, proxy=0x110b190) at gtkaction.c:803
No locals.
#10 0x00007f742fb6e9e4 in IA__gtk_action_create_tool_item (action=0x1143340) at gtkaction.c:976
        button = (GtkWidget *) 0x110b190
        __PRETTY_FUNCTION__ = "IA__gtk_action_create_tool_item"
#11 0x00007f742fe150e3 in update_node (self=0x1008400, node=0x11470a0, in_popup=0) at gtkuimanager.c:2600
        toolbar = (GtkWidget *) 0x10d6360
        pos = 1

        info = (Node *) 0x113cf80
        child = (GNode *) 0x0
        action = (GtkAction *) 0x1143340
        action_name = (const gchar *) 0x10546b0 "redo"
        ref = (NodeUIReference *) 0x1113610
        __PRETTY_FUNCTION__ = "update_node"
#12 0x00007f742fe15642 in update_node (self=0x1008400, node=0x1147040, in_popup=0) at gtkuimanager.c:2708
        current = (GNode *) 0x11470a0
        info = (Node *) 0x113cf00
        child = (GNode *) 0x11470d0
        action = (GtkAction *) 0x11433c0
        action_name = (const gchar *) 0x1146c20 "toolbar-history"
        ref = (NodeUIReference *) 0x11137c0
        __PRETTY_FUNCTION__ = "update_node"
#13 0x00007f742fe15642 in update_node (self=0x1008400, node=0x101b780, in_popup=0) at gtkuimanager.c:2708
        current = (GNode *) 0x1147040
        info = (Node *) 0xff5540
        child = (GNode *) 0x0
        action = (GtkAction *) 0x0
        action_name = (const gchar *) 0x0
        ref = (NodeUIReference *) 0x111b420
        __PRETTY_FUNCTION__ = "update_node"
#14 0x00007f742fe15800 in do_updates (self=0x1008400) at gtkuimanager.c:2750
No locals.
#15 0x00007f742fe158a4 in IA__gtk_ui_manager_ensure_update (self=0x1008400) at gtkuimanager.c:2807
No locals.
#16 0x00007f742fe0f8b1 in gtk_ui_manager_real_get_widget (self=0x1008400, path=0x1146fd8 "/toolbar-history") at gtkuimanager.c:552
        node = (GNode *) 0x100000000
#17 0x00007f742fe101e3 in IA__gtk_ui_manager_get_widget (self=0x1008400, path=0x1146fd8 "/toolbar-history") at gtkuimanager.c:824
        __PRETTY_FUNCTION__ = "IA__gtk_ui_manager_get_widget"
#18 0x00007f74306e5c50 in Gtk::UIManager::get_widget () from /usr/lib/libgtkmm-2.4.so.1
No symbol table info available.
#19 0x000000000070ef11 in Dock_History (this=0x1142290) at dock_history.cpp:144
No locals.
#20 0x000000000076aea3 in App (this=0x7fff39bcf790, argc=0x7fff39bcf78c, argv=0x7fff39bcf780) at app.cpp:1178
No locals.
#21 0x00000000007498e4 in main (argc=1, argv=0x7fff39bcf928) at main.cpp:97
        file = {obj = 0x0, refcount = {counter_ = 0x0}}
        app = {<> = {<No data fields>}, <studio::IconController> = {icon_factory = {pCppObject_ = 0xe10a90}}, synfigapp_main = {
    obj = 0xf39600, refcount = {counter_ = 0x1017a90}}, static selected_instance = {obj = 0x0}, static selected_canvas_view = {obj = 0x0}, 
  static ui_manager_ = {pCppObject_ = 0x103bc10}, static dialog_input = 0x0, static device_tracker = 0x0, static auto_recover = 0x0, 
  static dock_manager = 0x1064a30, static dialog_setup = 0x0, static dialog_gradient = 0x0, static dialog_color = 0x0, 
  static dialog_tool_options = 0x1121360, static distance_system = synfig::Distance::SYSTEM_UNITS, static gamma = {gamma_r = 1, gamma_g = 1, 
    gamma_b = 1, black_level = 0, red_blue_level = 1, 
    table_r_U16_to_U8 = '\0' <repeats 129 times>, '\001' <repeats 257 times>, '\002' <repeats 257 times>, '\003' <repeats 257 times>, 
[...]
  static instance_list = {<std::_List_base<etl::handle<studio::Instance>,std::allocator<etl::handle<studio::Instance> > >> = {
      _M_impl = {<std::allocator<std::_List_node<etl::handle<studio::Instance> > >> = {<__gnu_cxx::new_allocator<std::_List_node<etl::handle<studio::Instance> > >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0xdac320, _M_prev = 0xdac320}}}, <No data fields>}, 
  static shutdown_in_progress = false, static use_colorspace_gamma = true, static restrict_radius_ducks = false, static browser_command = {
    static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
      _M_p = 0xdb0148 "xdg-open"}}, static custom_filename_prefix = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
      _M_p = 0xdaf8c8 "Synfig Animation "}}, static preferred_x_size = 480, static preferred_y_size = 270, static predefined_size = {
    static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
      _M_p = 0xdaf948 "Custom Size"}}}
        ret = 0
        str = {static npos = 18446744073709551615, 
  _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
    _M_p = 0x7fff39bcf7f0 "À\f "}}
        x = <incomplete type>
        x = (class Glib::Exception &) @0x0: <error reading variable>

(I did not find in the in the User Control Panel how to activate the “plain text extension category” and google was not very helpful–these are the first messages I ever posted on a phpBB forum, so I know nothing about this interface.)

No idea about the crash, but I would guess it is a bug in GTK+.

I suggest switching to a UTF-8 locale if you can or using LC_ALL for now.

I’ve ask about it on the GTK+ IRC channel, will post updates.

About the text thing, just name the crash dump foo.txt and attach it to your post.

I got an answer from the GTK+ IRC channel:

<pabs> Hi all. Can any developers help with this crash within GTK+ triggered by synfigstudio? it's a SIGSEGV in append_escaped_text when using LC_ALL=fr_FR.ISO8859-1 http://synfig.org/forums/viewtopic.php?p=2029#p2029 <someone> pabs: where is the problematic tooltip text coming from ? it is probably not valid utf-8 <pabs> isutf8 says the .po file is fine <pabs> http://synfig.svn.sourceforge.net/viewvc/synfig/synfig-studio/trunk/po/fr.po?view=markup <someone> are you calling bindtextdomain_codeset ? <someone> make that bind_textdomain_codeset() <pabs> seems not <someone> see http://library.gnome.org/devel/gtk/stable/gtk-question-index.html#id3058702 <pabs> hmm, ok. thanks for the info

I don’t really have time right now to make a patch, test and commit it; if someone else could, that would be great.

KiBi has proposed this patch, could you please test it?

alioth.debian.org/~kibi/tmp/main.cpp.diff

Apply with this:

cd synfigstudio-0.61.09 wget -O - http://alioth.debian.org/~kibi/tmp/main.cpp.diff | patch -p1

This patch works fine, thank you very much for your support.

Jérôme

Cool, I’ll apply the patch along with a couple of others KiBi proposed to silence some warnings.

So it does not crash anymore, but I found another weird issue. Now a few properties are not displayed with the proper coding. Window titles, general GTK GUI are OK, but the translation of the parameter names (Integer, Real, Z Depth, Amount…) is wrong when it has a non-latin-0 letter.

When launched with LC_ALL=fr_FR.UTF8, this problem does not show up (coding appears ok), it happens only now that it does not crash any more with ISO8859-1.

Below an illustration in the Params and History windows, for the parameter “Amount” (“Quantité”).

Sorry for not seeing this sooner.

Best regards,

Jérôme

Could you please try the latest SVN versions? I committed another patch from KiBi that may also fix this.

I have a little proble in compiling from R2329 (canvasinterface.cpp:593: error: ‘class synfig::Canvas’ has no member named ‘register_external_canvas’). I’ll read the FAQ, try harder, and tell you more when I manage.

Jérôme

I took time to read and follow the build instructions and I can confirm that r2329 corrects both problems reported in this topic (crash and traduction coding).

Thank you again for your efficiency.

Jérôme