Summary: | BadMatch is shm extention | ||
---|---|---|---|
Product: | cairo | Reporter: | Maciej Piechotka <uzytkownik2> |
Component: | xlib backend | Assignee: | Chris Wilson <chris> |
Status: | RESOLVED MOVED | QA Contact: | cairo-bugs mailing list <cairo-bugs> |
Severity: | normal | ||
Priority: | medium | ||
Version: | 1.12.16 | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Maciej Piechotka
2014-05-03 14:15:03 UTC
Sorry, but that backtrace doesn't help. Errors in X11 are reported asynchronously. When sending a request, Xlib doesn't wait for a "there was no error"-reply from the server. Only randomly later does it receive errors, if one occurs. So the backtrace in that case is just "randomly later". What is the error message that is printed on stderr? Why is this bug titled "BadMatch is shm extention"? Did you guess that SHM is involved just from the backtrace? (In reply to comment #1) > Sorry, but that backtrace doesn't help. Errors in X11 are reported > asynchronously. When sending a request, Xlib doesn't wait for a "there was > no error"-reply from the server. Only randomly later does it receive errors, > if one occurs. So the backtrace in that case is just "randomly later". > I know. Backtrace from a breakpoint in gdk_x_error with GDK_SYNCHRONIZE=1 so that's covered. > What is the error message that is printed on stderr? > Why is this bug titled "BadMatch is shm extention"? Did you guess that SHM > is involved just from the backtrace? The error was 'BadMatch (invalid parameter attributes)'. (Details: serial 795449 error_code 8 request_code 62 (core protocol) minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the GDK_SYNCHRONIZE environment variable to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) And name of the functions are _cairo_xlib_surface_update_shm/_cairo_xlib_surface_get_shm etc. PS. I got another repro after running some time. I'll get a better stacktrace soon. This time no cairo is bt. Any idea where the problem might be? Thread 1 (Thread 0x7ffff7f8a940 (LWP 11903)): #0 gdk_x_error (xdisplay=0x718630, error=0x7fffffffd530) at gdkmain-x11.c:267 No locals. #1 0x00007ffff7ae49cb in _XError (dpy=dpy@entry=0x718630, rep=rep@entry=0x178ef90) at /var/tmp/portage/x11-libs/libX11-1.6.2/work/libX11-1.6.2/src/XlibInt.c:1463 rtn_val = <optimized out> event = {type = 0, xany = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627}, xkey = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, root = 140737351874768, subwindow = 0, time = 140737488344620, x = 7444608, y = 0, x_root = -10600, y_root = 32767, state = 7439920, keycode = 0, same_screen = -136404985}, xbutton = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, root = 140737351874768, subwindow = 0, time = 140737488344620, x = 7444608, y = 0, x_root = -10600, y_root = 32767, state = 7439920, button = 0, same_screen = -136404985}, xmotion = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, root = 140737351874768, subwindow = 0, time = 140737488344620, x = 7444608, y = 0, x_root = -10600, y_root = 32767, state = 7439920, is_hint = 0 '\000', same_screen = -136404985}, xcrossing = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, root = 140737351874768, subwindow = 0, time = 140737488344620, x = 7444608, y = 0, x_root = -10600, y_root = 32767, mode = 7439920, detail = 0, same_screen = -136404985, focus = 32767, state = 5}, xfocus = { type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, mode = -136480560, detail = 32767}, xexpose = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, x = -136480560, y = 32767, width = 0, height = 0, count = -10708}, xgraphicsexpose = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, drawable = 140737471578627, x = -136480560, y = 32767, width = 0, height = 0, count = -10708, major_code = 32767, minor_code = 7444608}, xnoexpose = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, drawable = 140737471578627, major_code = -136480560, minor_code = 32767}, xvisibility = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, state = -136480560}, xcreatewindow = { type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, parent = 140737471578627, window = 140737351874768, x = 0, y = 0, width = -10708, height = 32767, border_width = 7444608, override_redirect = 0}, xdestroywindow = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, event = 140737471578627, window = 140737351874768}, xunmap = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, event = 140737471578627, window = 140737351874768, from_configure = 0}, xmap = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, event = 140737471578627, window = 140737351874768, override_redirect = 0}, xmaprequest = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, parent = 140737471578627, window = 140737351874768}, xreparent = { type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, event = 140737471578627, window = 140737351874768, parent = 0, x = -10708, y = 32767, override_redirect = 7444608}, xconfigure = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, event = 140737471578627, window = 140737351874768, x = 0, y = 0, width = -10708, height = 32767, border_width = 7444608, above = 140737488344728, override_redirect = 7439920}, xgravity = { type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, event = 140737471578627, window = 140737351874768, x = 0, y = 0}, xresizerequest = { type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, width = -136480560, height = 32767}, xconfigurerequest = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, parent = 140737471578627, window = 140737351874768, x = 0, y = 0, width = -10708, height = 32767, border_width = 7444608, above = 140737488344728, detail = 7439920, value_mask = 140737351950343}, xcirculate = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, event = 140737471578627, window = 140737351874768, place = 0}, xcirculaterequest = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, parent = 140737471578627, window = 140737351874768, place = 0}, xproperty = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, atom = 140737351874768, time = 0, state = -10708}, xselectionclear = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, selection = 140737351874768, time = 0}, xselectionrequest = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, owner = 140737471578627, requestor = 140737351874768, selection = 0, target = 140737488344620, property = 7444608, time = 140737488344728}, xselection = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, requestor = 140737471578627, selection = 140737351874768, target = 0, property = 140737488344620, time = 7444608}, xcolormap = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, colormap = 140737351874768, new = 0, state = 0}, xclient = { type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, message_type = 140737351874768, format = 0, data = { b = ",\326\377\377\377\177\000\000\200\230q\000\000\000\000\000\230\326\377\377", s = {-10708, -1, 32767, 0, -26496, 113, 0, 0, -10600, -1}, l = {140737488344620, 7444608, 140737488344728, 7439920, 140737351950343}}}, xmapping = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, request = -136480560, first_keycode = 32767, count = 0}, xerror = {type = 0, display = 0x718630, resourceid = 35651592, serial = 378632, error_code = 3 '\003', request_code = 2 '\002', minor_code = 0 '\000'}, xkeymap = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, window = 140737471578627, key_vector = "\320x\335\367\377\177\000\000\000\000\000\000\000\000\000\000,\326\377\377\377\177\000\000\200\230q\000\000\000\000"}, xgeneric = { type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, extension = -16776701, evtype = 32767}, xcookie = {type = 0, serial = 7439920, send_event = 35651592, display = 0x5c708, extension = -16776701, evtype = 32767, cookie = 4158486736, data = 0x0}, pad = {0, 7439920, 35651592, 378632, 140737471578627, 140737351874768, 0, 140737488344620, 7444608, 140737488344728, 7439920, 140737351950343, 140733193388037, 0, 7444608, 140737348528848, 0, 7439920, 24702864, 140737351976181, 0, -1, 1, 24702864}} async = <optimized out> next = <optimized out> #2 0x00007ffff7ae1a47 in handle_error (dpy=0x718630, err=0x178ef90, in_XReply=<optimized out>) at /var/tmp/portage/x11-libs/libX11-1.6.2/work/libX11-1.6.2/src/xcb_io.c:213 ext = <optimized out> ret_code = 0 #3 0x00007ffff7ae1af5 in handle_response (dpy=dpy@entry=0x718630, response=0x178ef90, in_XReply=in_XReply@entry=1) at /var/tmp/portage/x11-libs/libX11-1.6.2/work/libX11-1.6.2/src/xcb_io.c:325 async = <optimized out> next = <optimized out> #4 0x00007ffff7ae29f0 in _XReply (dpy=dpy@entry=0x718630, rep=rep@entry=0x7fffffffd6e0, extra=extra@entry=0, discard=discard@entry=1) at /var/tmp/portage/x11-libs/libX11-1.6.2/work/libX11-1.6.2/src/xcb_io.c:627 event = <optimized out> req = 0x1748020 response = 0x1678860 error = 0x0 c = 0x719880 reply = <optimized out> current = 0x1748020 __PRETTY_FUNCTION__ = "_XReply" #5 0x00007ffff7ade7dd in XSync (dpy=0x718630, discard=discard@entry=0) at /var/tmp/portage/x11-libs/libX11-1.6.2/work/libX11-1.6.2/src/Sync.c:44 rep = {type = 0 '\000', revertTo = 0 '\000', sequenceNumber = 0, length = 0, focus = 0, pad1 = 0, pad2 = 24774736, pad3 = 0, pad4 = 35651592, pad5 = 0} #6 0x00007ffff7ade86b in _XSyncFunction (dpy=<optimized out>) at /var/tmp/portage/x11-libs/libX11-1.6.2/work/libX11-1.6.2/src/Synchro.c:35 No locals. #7 0x00007ffff7adc2de in XSelectInput (dpy=dpy@entry=0x718630, w=w@entry=35651592, mask=mask@entry=0) at /var/tmp/portage/x11-libs/libX11-1.6.2/work/libX11-1.6.2/src/SelInput.c:46 req = <optimized out> #8 0x00007ffff788b8f1 in _wnck_select_input (screen=<optimized out>, xwindow=xwindow@entry=35651592, mask=mask@entry=0, update=update@entry=0) at xutils.c:1406 display = 0x718630 gdkwindow = 0x0 old_mask = 0 #9 0x00007ffff78810e4 in wnck_window_finalize (object=0x167a460) at window.c:389 window = 0x167a460 #10 0x00007ffff219071a in g_object_unref (_object=0x167a460) at /var/tmp/portage/dev-libs/glib-2.40.0/work/glib-2.40.0/gobject/gobject.c:3112 weak_locations = <optimized out> object = 0x167a460 old_ref = 1 __FUNCTION__ = "g_object_unref" #11 0x00007ffff1e7e8ba in g_hash_table_remove_internal (hash_table=0x167bb00, key=0x7fffffffd8d8, notify=1) at /var/tmp/portage/dev-libs/glib-2.40.0/work/glib-2.40.0/glib/ghash.c:1300 node_hash = 35651592 #12 0x00007ffff7881411 in _wnck_window_destroy (window=0x167a460) at window.c:562 xwindow = 35651592 __PRETTY_FUNCTION__ = "_wnck_window_destroy" #13 0x00007ffff787639c in update_client_list (screen=0x165a890) at screen.c:1651 mapping = 0x17cd9d0 created_class_groups = <optimized out> reentrancy_guard = 1 mapping_length = 5 created = <optimized out> new_hash = <optimized out> active_changed = <optimized out> new_list = <optimized out> closed = <optimized out> closed_class_groups = <optimized out> list_changed = <optimized out> stack = 0x176cbd0 tmp = 0x901c40 i = <optimized out> stack_length = 5 new_stack_list = <optimized out> created_apps = <optimized out> closed_apps = <optimized out> stack_changed = <optimized out> #14 do_update_now (screen=0x165a890) at screen.c:2206 No locals. #15 0x00007ffff7876be4 in update_idle (data=<optimized out>) at screen.c:2229 screen = <optimized out> #16 0x00007ffff1e8f53d in g_main_dispatch (context=0x711cc0) at /var/tmp/portage/dev-libs/glib-2.40.0/work/glib-2.40.0/glib/gmain.c:3064 dispatch = 0x7ffff1e8c410 <g_idle_dispatch> prev_source = 0x0 was_in_call = 0 user_data = 0x165a890 callback = 0x7ffff7876bd0 <update_idle> cb_funcs = 0x7ffff21788e0 <g_source_callback_funcs> cb_data = 0x168eb80 need_destroy = <optimized out> source = 0x1765a00 current = 0x6f7b90 i = 0 #17 g_main_context_dispatch (context=context@entry=0x711cc0) at /var/tmp/portage/dev-libs/glib-2.40.0/work/glib-2.40.0/glib/gmain.c:3663 No locals. #18 0x00007ffff1e8f8a8 in g_main_context_iterate ( context=context@entry=0x711cc0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.40.0/work/glib-2.40.0/glib/gmain.c:3734 max_priority = 200 timeout = 0 some_ready = 1 nfds = <optimized out> allocated_nfds = 6 fds = <optimized out> #19 0x00007ffff1e8f94c in g_main_context_iteration (context=0x711cc0, context@entry=0x0, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.40.0/work/glib-2.40.0/glib/gmain.c:3795 retval = <optimized out> #20 0x00007ffff2472e7c in g_application_run (application=0x8a0180, argc=argc@entry=1, argv=argv@entry=0x7fffffffdc38) at /var/tmp/portage/dev-libs/glib-2.40.0/work/glib-2.40.0/gio/gapplication.c:2114 arguments = 0x835520 status = 0 __FUNCTION__ = "g_application_run" #21 0x0000000000431192 in main (argc=1, argv=0x7fffffffdc38) at ephy-main.c:488 option_context = <optimized out> option_group = <optimized out> error = 0x0 user_time = <optimized out> arbitrary_url = <optimized out> ctx = <optimized out> startup_flags = <optimized out> mode = <optimized out> ephy_shell = 0x8a0180 status = <optimized out> flags = <optimized out> > xerror = {type = 0,
> display = 0x718630, resourceid = 35651592, serial = 378632,
> error_code = 3 '\003', request_code = 2 '\002',
> minor_code = 0 '\000'}
That's not a BadMatch. Error 3 is BadWindow. And major request 2 is ChangeWindowAttributes. Which matches the function from the backtrace (XSelectInput() is a wrapper for generating ChangeWindowAttribute requests).
And since this time there is no cairo involved in the backtrace, I guess that something is seriously wrong on your end which makes lots of stuff randomly fail which can't really fail.
Let's see if someone wh cares about cairo's Xlib backend has an idea...
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/cairo/cairo/issues/202. |
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.