On Monday 29 December 2008 19:26:50 Jake b wrote: > On Mon, Dec 29, 2008 at 7:07 AM, Joseph Rawson <umeboshi3@xxxxxxxxx> wrote: > > python: ../../src/xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) > > ((xcb_req) - (dpy->request)) >= 0)' failed. > > Is there any more to the message? I would guess its a failed lock, ( > but, it doesn't look like pygame specifically. ) > No, this is the entire message. If you know of any variables that can be set to create more verbose error messages, I would be happy to set them and make a better report. (I just made a script that wound up showing a longer backtrace). > > This only seems to happen when I'm testing on my local desktop, using > > windowed, instead of fullscreen mode. On my desktop, I get more xcb_lock > > errors, than I do freezes. > > > > The application is to be run on a dedicated machine, and the signal is to > > go through the tv-out of the video card and be split among several tv's. > > I am using debian/lenny for the OS of the machine, and X11 for the > > display (to be able to use the tv-out). I'm saying this, because I > > believe that the bug may be in X, or the way that X is being used by > > either sdl or pygame, although I'm not really sure. Since I'm new to > > programming with pygame, it's very possible that the bug is in my code, > > and I have overlooked something important. > > > > I test the system using virtualbox, and on the VM, the xcb_lock error > > never occurs, rather, the scene will freeze, and the cpu will be pegged > > at 100%. > > Probably doesn't matter, but, you could try pygame.time.get_ticks() > for your getting ticks function. I haven't been using ticks at all, rather the sleep and delay functions. Each scene, which is a section in the config file has an option called "timer_style", which can be set to "sleep" or "delay". Here's the snippet of code that sets this up. ---------------------------------------- def __init__(self): ... timer_style = config.get(self.scene, 'timer_style') if timer_style == 'sleep': self.delay_function = pygame.time.wait else: self.delay_function = pygame.time.delay self.text_scroll = None ---------------------------------------- Then in the perform scene function, I call self.delay_function . The default in the config file is to use sleep to save on cpu usage, but I leave it as a configuration option in case a scene looks too jumpy, then the more accurate delay function can be used to smooth things out. > > (someone smarter will be along) You have certainly been smart enough to give me a quick reply to let me know that my post has been read. :) I just made a smaller test script that will also expose the problem. It may have to run for a few minutes until the problem occurs. Here's the backtrace. ---------------------------------------- Locking assertion failure. Backtrace: #0 /usr/lib/libxcb-xlib.so.0 [0xb74a3767] #1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb74a38b1] #2 /usr/lib/libX11.so.6 [0xb7656cf1] #3 /usr/lib/libX11.so.6(XSync+0xbe) [0xb764b1ae] #4 /usr/lib/libSDL-1.2.so.0 [0xb7aa99d5] #5 /usr/lib/libSDL-1.2.so.0 [0xb7aaf02f] #6 /usr/lib/libSDL-1.2.so.0(SDL_UpdateRects+0x26f) [0xb7a9e05f] #7 /usr/lib/python2.5/site-packages/pygame/display.so [0xb7b3dc58] #8 python(PyEval_EvalFrameEx+0x55c1) [0x80ced71] #9 python(PyEval_EvalCodeEx+0x685) [0x80d0675] #10 python(PyEval_EvalCode+0x57) [0x80d0887] #11 python(PyRun_FileExFlags+0xef) [0x80edd2f] #12 python(PyRun_SimpleFileExFlags+0x19a) [0x80edffa] #13 python(Py_Main+0xc07) [0x8059327] #14 python(main+0x22) [0x80586f2] #15 /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7d2d455] #16 python [0x8058631] Locking assertion failure. Backtrace: #0 /usr/lib/libxcb-xlib.so.0 [0xb74a3767] #1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_lock+0x2e) [0xb74a381e] #2 /usr/lib/libX11.so.6 [0xb7656de9] #3 /usr/lib/libX11.so.6(_XReply+0x13e) [0xb7657b2e] #4 /usr/lib/libX11.so.6(XSync+0x67) [0xb764b157] #5 /usr/lib/libSDL-1.2.so.0 [0xb7aa99d5] #6 /usr/lib/libSDL-1.2.so.0 [0xb7ab6714] #7 /usr/lib/libSDL-1.2.so.0(SDL_DisplayYUVOverlay+0x1c4) [0xb7a9fd74] #8 /usr/lib/libsmpeg-0.4.so.0(_ZN9MPEGvideo12DisplayFrameEP10vid_stream+0x25a) [0xb71a6fba] #9 /usr/lib/libsmpeg-0.4.so.0 (_ZN9MPEGvideo14ExecuteDisplayEP10vid_stream+0x36) [0xb71a73f6] #10 /usr/lib/libsmpeg-0.4.so.0 [0xb71af4c4] #11 /usr/lib/libsmpeg-0.4.so.0(_Z11mpegVidRsrcdP10vid_streami+0x198) [0xb71b3a38] #12 /usr/lib/libsmpeg-0.4.so.0(_Z14Play_MPEGvideoPv+0x74) [0xb71a5744] #13 /usr/lib/libSDL-1.2.so.0 [0xb7a7b6bb] #14 /usr/lib/libSDL-1.2.so.0 [0xb7acf6ad] #15 /lib/i686/cmov/libpthread.so.0 [0xb7ea74c0] #16 /lib/i686/cmov/libc.so.6(clone+0x5e) [0xb7df761e] ---------------------------------------- I'm attaching a copy of the script. If the line "#screen.blit(background, (0, 0))" is uncommented, it will usually freeze faster, but it will freeze without this statement eventually anyway. Have a good New Year!! :) > > -- > Jake -- Thanks: Joseph Rawson
Attachment:
test-video.py
Description: application/python
Attachment:
signature.asc
Description: This is a digitally signed message part.