Re: pl/python custom exceptions for SPI - Mailing list pgsql-hackers
From | Tom Lane |
---|---|
Subject | Re: pl/python custom exceptions for SPI |
Date | |
Msg-id | 26971.1298918338@sss.pgh.pa.us Whole thread Raw |
In response to | Re: pl/python custom exceptions for SPI (Peter Eisentraut <peter_e@gmx.net>) |
Responses |
Re: pl/python custom exceptions for SPI
|
List | pgsql-hackers |
Peter Eisentraut <peter_e@gmx.net> writes: > On mån, 2011-02-28 at 12:08 -0500, Tom Lane wrote: >> I'm seeing a core dump as well as multiple inconsistencies in error >> message spelling in the plpython regression tests on a Fedora 13 box >> (python 2.6.4). Several buildfarm critters don't look too happy either. > Fixed. (Well, some of it. We'll see ...) Core dump is still there. It appears to be a python assertion failure. I installed python's debuginfo and got this backtrace: Program terminated with signal 6, Aborted. #0 0x00000032a36328f5 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); Missing separate debuginfos, use: debuginfo-install keyutils-libs-1.2-6.fc12.x86_64 krb5-libs-1.7.1-17.fc13.x86_64 libcom_err-1.41.10-7.fc13.x86_64libselinux-2.0.94-2.fc13.x86_64 openssl-1.0.0c-1.fc13.x86_64 zlib-1.2.3-23.fc12.x86_64 (gdb) bt #0 0x00000032a36328f5 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x00000032a36340d5 in abort () at abort.c:92 #2 0x00000032a362b8b5 in __assert_fail (assertion=0x32a5b46391 "gc->gc.gc_refs != 0", file=<value optimized out>, line=277,function=<value optimized out>) at assert.c:81 #3 0x00000032a5b0853e in visit_decref (op=<module at remote 0x7f11c3666d38>, data=<value optimized out>) at Modules/gcmodule.c:277 #4 0x00000032a5a7cbd9 in dict_traverse (op= {'info': <built-in function info>, 'notice': <built-in function notice>, 'Fatal':<type at remote 0x1bba7e0>, 'log': <built-in function log>, 'prepare': <built-in function prepare>, 'spiexceptions':<module at remote 0x7f11c3666d38>, 'SPIError': <type at remote 0x1bbacc0>, 'Error': <type at remote 0x1bba300>,'execute': <built-in function execute>, '__package__': None, 'quote_ident': <built-in function quote_ident>, 'warning':<built-in function warning>, 'subtransaction': <built-in function subtransaction>, 'quote_literal': <built-in functionquote_literal>, 'quote_nullable': <built-in function quote_nullable>, 'error': <built-in function error>, 'debug':<built-in function debug>, '__name__': 'plpy', 'fatal': <built-in function fatal>, '__doc__': None}, visit=0x32a5b084c0<visit_decref>, arg=0x0) at Objects/dictobject.c:2003 #5 0x00000032a5b08c9f in subtract_refs (generation=1) at Modules/gcmodule.c:296 #6 collect (generation=1) at Modules/gcmodule.c:817 #7 0x00000032a5b096fa in collect_generations (basicsize=<value optimized out>) at Modules/gcmodule.c:924 #8 _PyObject_GC_Malloc (basicsize=<value optimized out>) at Modules/gcmodule.c:1363 #9 0x00000032a5b0972e in _PyObject_GC_NewVar (tp=0x32a5d899a0, nitems=1) at Modules/gcmodule.c:1383 #10 0x00000032a5a9703f in PyTuple_New (size=1) at Objects/tupleobject.c:69 #11 0x00000032a5af3697 in r_object (p=0x7fffe1f5f330) at Python/marshal.c:788 #12 0x00000032a5af389c in r_object (p=0x7fffe1f5f330) at Python/marshal.c:927 #13 0x00000032a5af36dd in r_object (p=0x7fffe1f5f330) at Python/marshal.c:794 #14 0x00000032a5af389c in r_object (p=0x7fffe1f5f330) at Python/marshal.c:927 #15 0x00000032a5af36dd in r_object (p=0x7fffe1f5f330) at Python/marshal.c:794 #16 0x00000032a5af389c in r_object (p=0x7fffe1f5f330) at Python/marshal.c:927 #17 0x00000032a5af3fd8 in PyMarshal_ReadObjectFromString (str=<value optimized out>, len=<value optimized out>) at Python/marshal.c:1107 #18 0x00000032a5af5952 in PyMarshal_ReadLastObjectFromFile (fp=0x1c66e50) at Python/marshal.c:1066 #19 0x00000032a5aedb39 in read_compiled_module (cpathname=0x7fffe1f63540 "/usr/lib64/python2.6/string.pyc", fp=<value optimizedout>) at Python/import.c:767 #20 0x00000032a5aef69d in load_source_module (name=0x7fffe1f656a0 "string", pathname=0x7fffe1f645c0 "/usr/lib64/python2.6/string.py",fp=0x1c29b30) at Python/import.c:991 #21 0x00000032a5af0cb5 in import_submodule (mod=None, subname=0x7fffe1f656a0 "string", fullname=0x7fffe1f656a0 "string")at Python/import.c:2589 #22 0x00000032a5af0f34 in load_next (mod=None, altmod=None, p_name=<value optimized out>, buf=0x7fffe1f656a0 "string", p_buflen=0x7fffe1f65698) at Python/import.c:2409 #23 0x00000032a5af1582 in import_module_level (name=0x0, globals=<value optimized out>, locals=<value optimized out>, fromlist=None,level=<value optimized out>) at Python/import.c:2131 #24 0x00000032a5af22c4 in PyImport_ImportModuleLevel (name=0x7f11c40c2084 "string", globals= {'plpy': <module at remote0x7f11c3666ad0>, 'GD': {}, 'args': [], '__builtins__': <module at remote 0x7f11c4158830>, '__name__': '__main__', 'SD':{}, '__doc__': None, '__plpython_procedure_import_succeed_41194': <function at remote 0x7f11c3652aa0>, '__package__':None}, locals=None, fromlist=None, level=<value optimized out>) at Python/import.c:2182 #25 0x00000032a5ad762f in builtin___import__ (self=<value optimized out>, args=<value optimized out>, kwds=<value optimizedout>) at Python/bltinmodule.c:48 #26 0x00000032a5a43db3 in PyObject_Call (func=<built-in function __import__>, arg=<value optimized out>, kw=<value optimizedout>) at Objects/abstract.c:2492 #27 0x00000032a5ad7ba3 in PyEval_CallObjectWithKeywords (func=<built-in function __import__>, arg= ('string', {'plpy':<module at remote 0x7f11c3666ad0>, 'GD': {}, 'args': [], '__builtins__': <module at remote 0x7f11c4158830>, '__name__':'__main__', 'SD': {}, '__doc__': None, '__plpython_procedure_import_succeed_41194': <function at remote 0x7f11c3652aa0>,'__package__': None}, None, None), kw=<value optimized out>) at Python/ceval.c:3633 #28 0x00000032a5ada844 in PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:2192 #29 0x00000032a5ade312 in fast_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:3850 #30 call_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:3785 #31 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:2445 #32 0x00000032a5adf4e9 in PyEval_EvalCodeEx (co=0x7f11c36526c0, globals=<value optimized out>, locals=<value optimized out>,args=<value optimized out>, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3026 #33 0x00000032a5adf5b2 in PyEval_EvalCode (co=<value optimized out>, globals=<value optimized out>, locals=<value optimizedout>) at Python/ceval.c:526 #34 0x00007f11c418cab2 in PLy_procedure_call (proc=0x1c2c9d8, kargs=<value optimized out>, vargs=<value optimized out>) atplpython.c:1317 #35 0x00007f11c418cdfe in PLy_function_handler (fcinfo=0x1c3fd30, proc=0x1c2c9d8) at plpython.c:1091 #36 0x00007f11c418fb77 in plpython_call_handler (fcinfo=0x1c3fd30) at plpython.c:569 #37 0x0000000000588100 in ExecMakeFunctionResult (fcache=0x1c3fcc0, econtext=0x1c3fa98, isNull=0x1c40670 "\177~\177\177\177\177\177\177\270\004\253\001", isDone=<value optimized out>) at execQual.c:1826 #38 0x00000000005831b6 in ExecTargetList (projInfo=<value optimized out>, isDone=0x7fffe1f6703c) at execQual.c:5123 #39 ExecProject (projInfo=<value optimized out>, isDone=0x7fffe1f6703c) at execQual.c:5338 #40 0x000000000059b65b in ExecResult (node=0x1c3f980) at nodeResult.c:155 #41 0x0000000000582738 in ExecProcNode (node=0x1c3f980) at execProcnode.c:367 #42 0x0000000000581496 in ExecutePlan (queryDesc=0x19e4df8, direction=<value optimized out>, count=0) at execMain.c:1385 #43 standard_ExecutorRun (queryDesc=0x19e4df8, direction=<value optimized out>, count=0) at execMain.c:311 #44 0x000000000065d5d7 in PortalRunSelect (portal=0x19e2de8, forward=<value optimized out>, count=0, dest=0x1c3de28) at pquery.c:950 #45 0x000000000065e9f0 in PortalRun (portal=0x19e2de8, count=9223372036854775807, isTopLevel=1 '\001', dest=0x1c3de28, altdest=0x1c3de28,completionTag= 0x7fffe1f672a0 "") at pquery.c:794 #46 0x000000000065ae39 in exec_simple_query (query_string=0x1a70ac8 "SELECT import_succeed();") at postgres.c:1059 #47 0x000000000065bdf0 in PostgresMain (argc=<value optimized out>, argv=<value optimized out>, username=<value optimizedout>) at postgres.c:3943 #48 0x0000000000615081 in BackendRun () at postmaster.c:3590 #49 BackendStartup () at postmaster.c:3275 #50 ServerLoop () at postmaster.c:1449 #51 0x000000000061795f in PostmasterMain (argc=<value optimized out>, argv=<value optimized out>) at postmaster.c:1110 #52 0x00000000005b2e70 in main (argc=3, argv=0x19c3910) at main.c:199 Don't know python enough to do anything useful with this, but the reference to "gc_refs" sure makes it look like something is dropping the ball on when to do INCREF/DECREF. regards, tom lane
pgsql-hackers by date: