On Sun, Mar 1, 2009 at 4:48 PM, Colin Bean<[email protected]> wrote: > Hi all, > > I'm getting an intermittent segmentation fault (only happens one every > 3 runs or so) when using a checkout of Pyglet trunk under Fedora 190 > 64 bit. I'm using the proprietary Nvida driver on a GTX260. I've > attached a minimal example with triggers the problem; it seems to > happen when the label is created. A GDB stack trace pointed to > fontconfig as the culprit; I've got fontconfig 2.6 installed. Here's > the GDB trace with debug info: > > (gdb) bt > #0 FcPatternObjectAddWithBinding (p=0xef4320d0, object=10, value= > {type = FcTypeDouble, u = {s = 0x4028000000000000 <Address > 0x4028000000000000 out of bounds>, i = 0, b = 0, d = 12, m = > 0x4028000000000000, c = 0x4028000000000000, f = 0x4028000000000000, l > = 0x4028000000000000}}, > binding=FcValueBindingStrong, append=1) at fcpat.c:476 > #1 0x0000000000b7e7b4 in ffi_call_unix64 () > at /usr/src/debug/Python-2.5.2/Modules/_ctypes/libffi/src/x86/unix64.S:73 > #2 0x0000000000b7e59c in ffi_call (cif=0x7fffffffb010, > fn=0x3a6fa18b10 <IA__FcPatternAddDouble>, rvalue=0x7fffffffaf30, > avalue=0x7fffffffaf00) > at /usr/src/debug/Python-2.5.2/Modules/_ctypes/libffi/src/x86/ffi64.c:428 > #3 0x0000000000b79715 in _call_function_pointer () > at /usr/src/debug/Python-2.5.2/Modules/_ctypes/callproc.c:668 > #4 _CallProc (pProc=0x3a6fa18b10 <IA__FcPatternAddDouble>, > argtuple=0x7ffff150a0f0, flags=<value optimized out>, argtypes=0x0, > restype=0x6c32e0, checker=0x0) > at /usr/src/debug/Python-2.5.2/Modules/_ctypes/callproc.c:991 > #5 0x0000000000b7404f in CFuncPtr_call (self=0x7fffef44ed98, > inargs=0x7ffff150a0f0, kwds=0x0) > at /usr/src/debug/Python-2.5.2/Modules/_ctypes/_ctypes.c:3373 > #6 0x0000003a85a3d493 in PyObject_Call (func=0xef4320d0, arg=0xa, kw=0x2) > at Objects/abstract.c:1861 > #7 0x0000003a85abcfd3 in do_call (na=1) at Python/ceval.c:3784 > ---Type <return> to continue, or q <return> to quit--- > #8 call_function () at Python/ceval.c:3596 > #9 PyEval_EvalFrameEx (f=0x7fffee71c590, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #10 0x0000003a85abfe6d in fast_function () at Python/ceval.c:3659 > #11 call_function () at Python/ceval.c:3594 > #12 PyEval_EvalFrameEx (f=0x7fffee7174a0, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #13 0x0000003a85ac0865 in PyEval_EvalCodeEx (co=0x7fffef9eba08, > globals=<value optimized out>, locals=<value optimized out>, > args=0x7fffee717648, argcount=3, kws=0x7fffef97e2f0, kwcount=3, > defs=0x7fffef3fcce8, defcount=3, closure=0x0) at Python/ceval.c:2836 > #14 0x0000003a85a5be07 in function_call (func=0x7fffefa0af50, > arg=0x7ffff7f89a50, kw=0x7fffef4ae2d0) at Objects/funcobject.c:517 > #15 0x0000003a85a3d493 in PyObject_Call (func=0xef4320d0, arg=0xa, kw=0x2) > at Objects/abstract.c:1861 > #16 0x0000003a85a44740 in instancemethod_call (func=0x7fffefa0af50, > arg=0x7ffff7f89a50, kw=0x7fffef4ae2d0) at Objects/classobject.c:2519 > #17 0x0000003a85a3d493 in PyObject_Call (func=0xef4320d0, arg=0xa, kw=0x2) > at Objects/abstract.c:1861 > #18 0x0000003a85a8890e in slot_tp_init (self=<value optimized out>, > args=0x7fffef4626c8, kwds=0x7fffef4ae2d0) at Objects/typeobject.c:4943 > #19 0x0000003a85a8734e in type_call (type=<value optimized out>, > args=0x7fffef4626c8, kwds=0x7fffef4ae2d0) at Objects/typeobject.c:436 > ---Type <return> to continue, or q <return> to quit--- > #20 0x0000003a85a3d493 in PyObject_Call (func=0xef4320d0, arg=0xa, kw=0x2) > at Objects/abstract.c:1861 > #21 0x0000003a85abcfd3 in do_call (na=1) at Python/ceval.c:3784 > #22 call_function () at Python/ceval.c:3596 > #23 PyEval_EvalFrameEx (f=0x7fffee716e60, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #24 0x0000003a85ac0865 in PyEval_EvalCodeEx (co=0x7fffef9a9828, > globals=<value optimized out>, locals=<value optimized out>, > args=0x7fffee717000, argcount=2, kws=0x7fffee716df0, kwcount=3, > defs=0x7fffef9ec068, defcount=5, closure=0x0) at Python/ceval.c:2836 > #25 0x0000003a85abefdc in fast_function () at Python/ceval.c:3669 > #26 call_function () at Python/ceval.c:3594 > #27 PyEval_EvalFrameEx (f=0x7fffee716c20, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #28 0x0000003a85ac0865 in PyEval_EvalCodeEx (co=0x7fffef457648, > globals=<value optimized out>, locals=<value optimized out>, > args=0x7fffee716db0, argcount=1, kws=0x7fffee716bd8, kwcount=1, > defs=0x7fffef458bf0, defcount=2, closure=0x0) at Python/ceval.c:2836 > #29 0x0000003a85abefdc in fast_function () at Python/ceval.c:3669 > #30 call_function () at Python/ceval.c:3594 > #31 PyEval_EvalFrameEx (f=0x7fffee716a40, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #32 0x0000003a85ac0865 in PyEval_EvalCodeEx (co=0x7fffef4575d0, > ---Type <return> to continue, or q <return> to quit--- > globals=<value optimized out>, locals=<value optimized out>, > args=0x7fffee716bc8, argcount=1, kws=0x7fffee7169e8, kwcount=1, > defs=0x7fffef459ae8, defcount=1, closure=0x0) at Python/ceval.c:2836 > #33 0x0000003a85abefdc in fast_function () at Python/ceval.c:3669 > #34 call_function () at Python/ceval.c:3594 > #35 PyEval_EvalFrameEx (f=0x7fffee716820, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #36 0x0000003a85abfe6d in fast_function () at Python/ceval.c:3659 > #37 call_function () at Python/ceval.c:3594 > #38 PyEval_EvalFrameEx (f=0x7fffee716600, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #39 0x0000003a85abfe6d in fast_function () at Python/ceval.c:3659 > #40 call_function () at Python/ceval.c:3594 > #41 PyEval_EvalFrameEx (f=0x7fffee7161f0, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #42 0x0000003a85abfe6d in fast_function () at Python/ceval.c:3659 > #43 call_function () at Python/ceval.c:3594 > #44 PyEval_EvalFrameEx (f=0x7fffee716030, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #45 0x0000003a85abfe6d in fast_function () at Python/ceval.c:3659 > #46 call_function () at Python/ceval.c:3594 > #47 PyEval_EvalFrameEx (f=0x7fffef4adaf0, throwflag=<value optimized out>) > at Python/ceval.c:2272 > ---Type <return> to continue, or q <return> to quit--- > #48 0x0000003a85ac0865 in PyEval_EvalCodeEx (co=0x7ffff0557eb8, > globals=<value optimized out>, locals=<value optimized out>, > args=0x7fffef4624e8, argcount=2, kws=0x0, kwcount=0, defs=0x0, defcount=0, > closure=0x0) at Python/ceval.c:2836 > #49 0x0000003a85a5be72 in function_call (func=0x7fffef4530c8, > arg=0x7fffef4624d0, kw=0x0) at Objects/funcobject.c:517 > #50 0x0000003a85a3d493 in PyObject_Call (func=0xef4320d0, arg=0xa, kw=0x2) > at Objects/abstract.c:1861 > #51 0x0000003a85a3dec7 in call_function_tail (callable=0x7fffef4530c8, > args=0x7fffef4624d0) at Objects/abstract.c:1892 > #52 0x0000003a85a3e408 in PyObject_CallFunction (callable=0x7fffef4530c8, > format=<value optimized out>) at Objects/abstract.c:1916 > #53 0x0000003a85a4c633 in property_descr_set (self=<value optimized out>, > obj=<value optimized out>, value=<value optimized out>) > at Objects/descrobject.c:1168 > #54 0x0000003a85a70f36 in PyObject_GenericSetAttr (obj=0x68aa10, > name=0x7ffff7f952a0, value=0x7fffef45f690) at Objects/object.c:1412 > #55 0x0000003a85a71681 in PyObject_SetAttr (v=0x68aa10, name=0x7ffff7f952a0, > value=0x7fffef45f690) at Objects/object.c:1183 > #56 0x0000003a85abc0ca in PyEval_EvalFrameEx (f=0x7fffef4b1410, > throwflag=<value optimized out>) at Python/ceval.c:1783 > #57 0x0000003a85ac0865 in PyEval_EvalCodeEx (co=0x7ffff0557990, > globals=<value optimized out>, locals=<value optimized out>, > ---Type <return> to continue, or q <return> to quit--- > args=0x7fffef4b15c8, argcount=2, kws=0x7fffef4b11f8, kwcount=6, > defs=0x7fffef9b5a28, defcount=6, closure=0x0) at Python/ceval.c:2836 > #58 0x0000003a85abefdc in fast_function () at Python/ceval.c:3669 > #59 call_function () at Python/ceval.c:3594 > #60 PyEval_EvalFrameEx (f=0x7fffef4b1010, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #61 0x0000003a85ac0865 in PyEval_EvalCodeEx (co=0x7ffff1504c60, > globals=<value optimized out>, locals=<value optimized out>, > args=0x7fffef4a3de0, argcount=12, kws=0x7fffef4a3e40, kwcount=0, > defs=0x7fffef3fe218, defcount=11, closure=0x0) at Python/ceval.c:2836 > #62 0x0000003a85abefdc in fast_function () at Python/ceval.c:3669 > #63 call_function () at Python/ceval.c:3594 > #64 PyEval_EvalFrameEx (f=0x7fffef4a3bd0, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #65 0x0000003a85ac0865 in PyEval_EvalCodeEx (co=0x7ffff06a4210, > globals=<value optimized out>, locals=<value optimized out>, > args=0x7fffef4a3dd8, argcount=2, kws=0x0, kwcount=0, defs=0x7fffef3d2668, > defcount=17, closure=0x0) at Python/ceval.c:2836 > #66 0x0000003a85a5be72 in function_call (func=0x7fffef466d70, > arg=0x7ffff7f88fc8, kw=0x0) at Objects/funcobject.c:517 > #67 0x0000003a85a3d493 in PyObject_Call (func=0xef4320d0, arg=0xa, kw=0x2) > at Objects/abstract.c:1861 > #68 0x0000003a85a44740 in instancemethod_call (func=0x7fffef466d70, > ---Type <return> to continue, or q <return> to quit--- > arg=0x7ffff7f88fc8, kw=0x0) at Objects/classobject.c:2519 > #69 0x0000003a85a3d493 in PyObject_Call (func=0xef4320d0, arg=0xa, kw=0x2) > at Objects/abstract.c:1861 > #70 0x0000003a85a8890e in slot_tp_init (self=<value optimized out>, > args=0x7ffff7f94150, kwds=0x0) at Objects/typeobject.c:4943 > #71 0x0000003a85a8734e in type_call (type=<value optimized out>, > args=0x7ffff7f94150, kwds=0x0) at Objects/typeobject.c:436 > #72 0x0000003a85a3d493 in PyObject_Call (func=0xef4320d0, arg=0xa, kw=0x2) > at Objects/abstract.c:1861 > #73 0x0000003a85abcfd3 in do_call (na=1) at Python/ceval.c:3784 > #74 call_function () at Python/ceval.c:3596 > #75 PyEval_EvalFrameEx (f=0x61c460, throwflag=<value optimized out>) > at Python/ceval.c:2272 > #76 0x0000003a85ac0865 in PyEval_EvalCodeEx (co=0x7ffff7f7a5d0, > globals=<value optimized out>, locals=<value optimized out>, args=0x0, > argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) > at Python/ceval.c:2836 > #77 0x0000003a85ac0aa2 in PyEval_EvalCode (co=0xef4320d0, globals=0xa, > locals=0x2) at Python/ceval.c:494 > #78 0x0000003a85adc931 in run_mod (mod=<value optimized out>, > filename=<value optimized out>, globals=0x6245a0, locals=0x6245a0, > flags=<value optimized out>, arena=<value optimized out>) > at Python/pythonrun.c:1273 > ---Type <return> to continue, or q <return> to quit--- > #79 0x0000003a85adca06 in PyRun_FileExFlags (fp=0x601010, > filename=0x7fffffffe633 "test.py", start=257, globals=0x6245a0, > locals=0x6245a0, closeit=1, flags=0x7fffffffe250) > at Python/pythonrun.c:1259 > #80 0x0000003a85addfed in PyRun_SimpleFileExFlags (fp=0x601010, > filename=0x7fffffffe633 "test.py", closeit=1, flags=0x7fffffffe250) > at Python/pythonrun.c:879 > #81 0x0000003a85ae7ef1 in Py_Main (argc=1, argv=<value optimized out>) > at Modules/main.c:523 > #82 0x0000003a6b21e576 in __libc_start_main (main=0x400710 <main>, argc=2, > ubp_av=0x7fffffffe368, init=0x400730 <__libc_csu_init>, > fini=<value optimized out>, rtld_fini=<value optimized out>, > stack_end=0x7fffffffe358) at libc-start.c:220 > #83 0x0000000000400649 in _start () > > > Looks like the function that's segfaulting > (FcPatternObjectAddWithBinding) gets called from FcPatternAddDouble. > Stepping through the example with PDB, it blows up line 323 of > font/freetype.py, which calls that function: > fontconfig.FcPatternAddDouble(pattern, FC_SIZE, c_double(size)) > > > Any ideas (could the fontconfig version be the culprit)? Can anyone > with a similar setup reproduce this? > > Thanks! > > Colin >
Well, to follow up on this months later, it looks like the 180.60 driver update from NVidia fixed this (and another intermittent segfault when loading textures). Woohoo! Colin --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pyglet-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en -~----------~----~----~----~------~----~------~--~---
