Summary: | cairo and XFree86 4.2.1 across SSH | ||
---|---|---|---|
Product: | cairo | Reporter: | Amaury Jacquot <sxpert> |
Component: | general | Assignee: | Carl Worth <cworth> |
Status: | RESOLVED WORKSFORME | QA Contact: | cairo-bugs mailing list <cairo-bugs> |
Severity: | major | ||
Priority: | high | CC: | billy.biggs, jwatt, pere, roland.mainz |
Version: | 0.9.3 | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | Output from xdpyinfo |
Description
Amaury Jacquot
2005-01-09 12:45:10 UTC
This might well be a bug in the application ... or in GtkCairo; somebody is likely not passing the right visual into GTK+ or to cairo. xpdyinfo might be interesting. BadMatch on PutImage should only occur for mismatched depths. Does the target display have multiple available visuals? Created attachment 1693 [details]
Output from xdpyinfo
Here is the output from xdpyinfo in the problematic display. I
access it across an SSH forwarding, in case that is relevant.
xdpyinfo information looks normal, not a problem. Looking again at the error log - (mapeditor:29737): Gdk-CRITICAL **: file gdkvisual-x11.c: line 645 is the first thing to track down and fix before investigating further. (A gtkcairo or app problem, cairo couldn't generate that warning.) You can get a backtrace at that point by running the program with --g-fatal-warnings. There are obviously bad problems in cairo_xlib_surface.c for handling anything other than 24bpp destination surfaces. It isn't going to work for 16bpp windows. Don't see how that's relevant for that display, however. This is the backtrace when running with --g-fatal-warnings (and --sync, which I believe I remember should do positive things). I hope this will bring you closer to the target. pere@minerva:~/src/openstreetmapsvn/mapeditor-debug/src/mapeditor$ gdb ./src/mapeditor GNU gdb 6.3-debian Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-linux"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run --g-fatal-warnings --sync Starting program: /skole/tjener/home0/pere/src/openstreetmapsvn/mapeditor-debug/src/mapeditor/src/mapeditor --g-fatal-warnings --sync [Thread debugging using libthread_db enabled] [New Thread 16384 (LWP 14884)] Could not open /proc/14884/status (gdb) q The program is running. Exit anyway? (y or n) y pere@minerva:~/src/openstreetmapsvn/mapeditor-debug/src/mapeditor$ gdb ./src/mapeditor GNU gdb 6.3-debian Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-linux"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run --g-fatal-warnings --sync Starting program: /skole/tjener/home0/pere/src/openstreetmapsvn/mapeditor-debug/src/mapeditor/src/mapeditor --g-fatal-warnings --sync [Thread debugging using libthread_db enabled] [New Thread 16384 (LWP 14888)] scroll adjustment requested 0x80b0290 0x80b2960 update_adjustment 0x80b0290 update_adjustment 0x80b2960 me_transform_resize_surface: ( 0 , 0 ) - 0 143 x 51 -- 0 x 0 | ( 0 , 0 ) - ( 0 , 0 ) me_transform_resize_surface: ( 0 , 0 ) - 0 1006 x 601 -- 0 x 0 | ( 0 , 0 ) - ( 0 , 0 ) loading tracks from file requested signal_data 0x8053528 | file_selector 0x810b948 | mapeditor 0x8093cf8 reading file /skole/tjener/home0/pere/src/openstreetmapsvn/openstreetmap/data/fns-2004-12-10.gpx 7311066695147732796 0.000000 3682536253565067075422435951902192467225307869722202525040006097212316836447517968520594386058424162606064416593637135001329063355506216888883281667156619720944443432186333051155615966862202497233760203219646624323826633481912320.000000 1125867336810118856572928.000000 1397301821 not a navsys version 0 file or unable to open file reading file /skole/tjener/home0/pere/src/openstreetmapsvn/openstreetmap/data/fns-2004-12-10.gpx 16 Not an NGPSD version 1 tracklog not a navsys version 1 file or unable to open file reading file /skole/tjener/home0/pere/src/openstreetmapsvn/openstreetmap/data/fns-2004-12-10.gpx begin of XML document 2 end of XML document Generating Squares Squares done GPX file successfully loaded Gdk-CRITICAL **: file gdkvisual-x11.c: line 645 (gdk_x11_visual_get_xvisual): assertion `visual != NULL' failed aborting... Program received signal SIGABRT, Aborted. [Switching to Thread 16384 (LWP 14888)] 0x4079c741 in kill () from /lib/libc.so.6 (gdb) bt #0 0x4079c741 in kill () from /lib/libc.so.6 #1 0x40717771 in pthread_kill () from /lib/libpthread.so.0 #2 0x40717a7b in raise () from /lib/libpthread.so.0 #3 0x4079c4d4 in raise () from /lib/libc.so.6 #4 0x4079da08 in abort () from /lib/libc.so.6 #5 0x40479c37 in g_logv () from /usr/lib/libglib-2.0.so.0 #6 0x40479c74 in g_log () from /usr/lib/libglib-2.0.so.0 #7 0x4034bfad in gdk_x11_visual_get_xvisual () from /usr/lib/libgdk-x11-2.0.so.0 #8 0x0804ee16 in me_layer_resize_surface (layer=0x404ca738, width=1006, height=601) at me-layer.c:143 #9 0x08050506 in load_filename (file_selector=0x80c0300, data=0x8151d38) at map-editor.c:378 #10 0x40428121 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #11 0x40413c20 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #12 0x40427c28 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #13 0x40426be7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #14 0x40426ee4 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #15 0x400832a5 in gtk_button_clicked () from /usr/lib/libgtk-x11-2.0.so.0 #16 0x400842bb in _gtk_button_paint () from /usr/lib/libgtk-x11-2.0.so.0 #17 0x40428121 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #18 0x40413fb7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #19 0x40413c20 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #20 0x40427451 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #21 0x40426be7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #22 0x40426ee4 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #23 0x400831f5 in gtk_button_released () from /usr/lib/libgtk-x11-2.0.so.0 #24 0x4008413b in _gtk_button_paint () from /usr/lib/libgtk-x11-2.0.so.0 #25 0x401410d4 in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0 #26 0x40413fb7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #27 0x40413c20 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #28 0x40427655 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #29 0x404269be in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #30 0x40426ee4 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #31 0x4023ff67 in gtk_widget_send_expose () from /usr/lib/libgtk-x11-2.0.so.0 #32 0x4013f672 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 #33 0x4013e3c6 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #34 0x4033c1a5 in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0 #35 0x40470c02 in g_main_depth () from /usr/lib/libglib-2.0.so.0 #36 0x40471cf8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #37 0x40472030 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #38 0x40472673 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #39 0x4013dc83 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #40 0x08051b65 in main (argc=1, argv=0xbffffc84) at main.c:209 (gdb) Could this be the new ssh behaviour of using the SECURITY extension with the -X option? Recently, ssh changed the -X option to use the SECURITY extension, if you want the old behaviour, you should use -Y. Yes, it could be that. I used ssh from a debian/woody system into a debian/sid system, and the sid system had a new sshd. Why should cairo care about the X security status, btw? Cairo doesn't care, but using -X instead of -Y now means that certain X functions which seem benign will suddenly fail. This affects a lot of X apps. In general it seems that app authors are recommending "use -Y" rather than trying to figure out which calls fail on what X servers and see what can be done to work around them. Really not clear at all what is going on here. What needs to be done here is to try this with current GTK+ and Cairo (using GTK+-2.8 native integration with Cairo rather than GtkCairo), and if it still crashes, under a debugger: - Break on gdk_x_error - run the program with --sync - Provide a backtrace. Having debug symbols for GTK+ would be great. Move bugs against "cvs" version to "0.9.3" so we can remove the "cvs" version. Just for the record, I am no longer able to test this issue. The woody machine I used when I discovered this problem is reinstalled with sarge. Clsoing as WORKSFORME since it seems unlikely that we'll get more information here. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.