MySQLdb and egenix mxDateTime dumps core

M.-A. Lemburg mal at lemburg.com
Wed Aug 6 03:52:06 EDT 2003


Dave Harrison wrote:
> Hi all, got a problem combinging mx and MySQLdb, when I build and install both for my Python2.1 install on a Solaris 9 box I can import mx fine, but importing MySQLdb causing python to core dump.

You hit an optimizer compiler bug on Solaris.

The best thing to do, is to comment out these lines in
mx/DateTime/mxDateTime/mxDateTime.c (near the top):

/* Define these to have the module use free lists (saves malloc calls) */
#define MXDATETIME_FREELIST
#define MXDATETIMEDELTA_FREELIST

and then recompile the egenix-mx-base package.

> I am using egenenix 2.0.4 and MySQLdb 0.9.2.
> 
> I have also replaced the -shared flag in the Makefile is /usr/local/lib/Python2.1/config with -G (a recommended solaris change to let the build of the modules work in the first place) -> notably I also made sure I recompiled python from source using this flag in the makefile too.
> 
> I plead guilty to not knowing a heap about debugging linking etc etc, tho I do know a bit of C.
> 
> Any help is REALLY REALLY appreciated ;-) this problem is just sending me right round the bend ;-)
> 
> cheers
> Dave
> 
> Here is a transcription of the trace from the core dump :
> 
> #0  mxDateTime_New () at mx/DateTime/mxDateTime/mxDateTime.c:279
> #1  0xff01396c in mxDateTime_FromDateAndTime (year=-5851455, month=-4217812, day=3, hour=680236, 
>     minute=1096156, second=0) at mx/DateTime/mxDateTime/mxDateTime.c:952
> #2  0xff018b1c in mxDateTime_DateTime (self=0x0, args=0xffa6b6c1) at mx/DateTime/mxDateTime/mxDateTime.c:3667
> #3  0x22858 in call_cfunction (func=0xfc568, arg=0x101e6c, kw=0x0) at Python/ceval.c:2854
> #4  0x207a4 in eval_code2 (co=0x115cc0, globals=0x0, locals=0xfc568, args=0x10c164, argcount=0, kws=0xe1050, 
>     kwcount=0, defs=0x0, defcount=0, closure=0xfc568) at Python/ceval.c:1948
> #5  0x1da3c in PyEval_EvalCode (co=0x0, globals=0xc3ddc, locals=0x3) at Python/ceval.c:341
> #6  0x322f4 in PyImport_ExecCodeModuleEx (name=0xffbfb118 "mx.DateTime.DateTime", co=0x115cc0, 
>     pathname=0xffbfa738 "/usr/local/lib/python2.1/site-packages/mx/DateTime/DateTime.pyc")
>     at Python/import.c:490
> #7  0x328d8 in load_source_module (name=0xffbfb118 "mx.DateTime.DateTime", 
>     pathname=0xffbfa738 "/usr/local/lib/python2.1/site-packages/mx/DateTime/DateTime.pyc", fp=0x115cc0)
>     at Python/import.c:754
> #8  0x33184 in load_module (name=0xffbfb118 "mx.DateTime.DateTime", fp=0xb4038, 
>     buf=0xffbfac28 "/usr/local/lib/python2.1/site-packages/mx/DateTime/DateTime.py", type=1)
>     at Python/import.c:1301
> #9  0x33fe8 in import_submodule (mod=0xb54fc, subname=0xffbfb124 "DateTime", 
>     fullname=0xffbfb118 "mx.DateTime.DateTime") at Python/import.c:1829
> #10 0x33b68 in load_next (mod=0xb54fc, altmod=0xa6cd8, p_name=0xffbfb124, 
>     buf=0xffbfb118 "mx.DateTime.DateTime", p_buflen=0xffbfb114) at Python/import.c:1685
> #11 0x33738 in import_module_ex (name=0x0, globals=0xb54fc, locals=0x100664, fromlist=0xffbd4)
>     at Python/import.c:1536
> #12 0x33910 in PyImport_ImportModuleEx (name=0xfa564 "DateTime", globals=0x100664, locals=0x100664, 
>     fromlist=0xffbd4) at Python/import.c:1577
> #13 0x77254 in builtin___import__ (self=0x0, args=0xfa564) at Python/bltinmodule.c:31
> #14 0x22858 in call_cfunction (func=0xb5ce0, arg=0x1032d4, kw=0x0) at Python/ceval.c:2854
> #15 0x227bc in call_object (func=0xb5ce0, arg=0x1032d4, kw=0x0) at Python/ceval.c:2807
> #16 0x22548 in PyEval_CallObjectWithKeywords (func=0xb5ce0, arg=0x1032d4, kw=0x0) at Python/ceval.c:2740
> #17 0x20124 in eval_code2 (co=0x103df0, globals=0x0, locals=0x100664, args=0xfd749, argcount=0, kws=0x1032d4, 
>     kwcount=0, defs=0x0, defcount=0, closure=0xb5ce0) at Python/ceval.c:1820
> #18 0x1da3c in PyEval_EvalCode (co=0x0, globals=0xffbd4, locals=0xb5ce0) at Python/ceval.c:341
> #19 0x322f4 in PyImport_ExecCodeModuleEx (name=0xffbfc830 "mx.DateTime", co=0x103df0, 
>     pathname=0xffbfb960 "/usr/local/lib/python2.1/site-packages/mx/DateTime/__init__.pyc")
>     at Python/import.c:490
> #20 0x328d8 in load_source_module (name=0xffbfc830 "mx.DateTime", 
>     pathname=0xffbfb960 "/usr/local/lib/python2.1/site-packages/mx/DateTime/__init__.pyc", fp=0x103df0)
>     at Python/import.c:754
> #21 0x33184 in load_module (name=0xffbfc830 "mx.DateTime", fp=0xb4028, 
>     buf=0xffbfbe50 "/usr/local/lib/python2.1/site-packages/mx/DateTime/__init__.py", type=1)
>     at Python/import.c:1301
> #22 0x32ae8 in load_package (name=0xffbfc830 "mx.DateTime", pathname=0xfd500 "") at Python/import.c:811
> #23 0x331f0 in load_module (name=0xffbfc830 "mx.DateTime", fp=0x0, 
>     buf=0xffbfc340 "/usr/local/lib/python2.1/site-packages/mx/DateTime", type=5) at Python/import.c:1324
> #24 0x33fe8 in import_submodule (mod=0xb551c, subname=0xffbfc833 "DateTime", fullname=0xffbfc830 "mx.DateTime")
>     at Python/import.c:1829
> #25 0x33b68 in load_next (mod=0xb551c, altmod=0xb551c, p_name=0xffbfc833, buf=0xffbfc830 "mx.DateTime", 
>     p_buflen=0xffbfc82c) at Python/import.c:1685
> #26 0x33874 in import_module_ex (name=0x0, globals=0xb551c, locals=0xfe744, fromlist=0xd2764)
>     at Python/import.c:1543
> #27 0x33910 in PyImport_ImportModuleEx (name=0x10052c "mx.DateTime", globals=0xfe744, locals=0xfe744, 
>     fromlist=0xd2764) at Python/import.c:1577
> #28 0x77254 in builtin___import__ (self=0x0, args=0x10052c) at Python/bltinmodule.c:31
> #29 0x22858 in call_cfunction (func=0xb5ce0, arg=0xfe77c, kw=0x0) at Python/ceval.c:2854
> #30 0x227bc in call_object (func=0xb5ce0, arg=0xfe77c, kw=0x0) at Python/ceval.c:2807
> #31 0x22548 in PyEval_CallObjectWithKeywords (func=0xb5ce0, arg=0xfe77c, kw=0x0) at Python/ceval.c:2740
> #32 0x20124 in eval_code2 (co=0x1006d8, globals=0x0, locals=0xfe744, args=0xfa87b, argcount=0, kws=0xfe77c, 
>     kwcount=0, defs=0x0, defcount=0, closure=0xb5ce0) at Python/ceval.c:1820
> #33 0x1da3c in PyEval_EvalCode (co=0x0, globals=0xd2764, locals=0xb5ce0) at Python/ceval.c:341
> #34 0x322f4 in PyImport_ExecCodeModuleEx (name=0xffbfda58 "MySQLdb.times", co=0x1006d8, 
>     pathname=0xffbfd078 "/usr/local/lib/python2.1/site-packages/MySQLdb/times.pyc") at Python/import.c:490
> #35 0x328d8 in load_source_module (name=0xffbfda58 "MySQLdb.times", 
>     pathname=0xffbfd078 "/usr/local/lib/python2.1/site-packages/MySQLdb/times.pyc", fp=0x1006d8)
>     at Python/import.c:754
> #36 0x33184 in load_module (name=0xffbfda58 "MySQLdb.times", fp=0xb4018, 
>     buf=0xffbfd568 "/usr/local/lib/python2.1/site-packages/MySQLdb/times.py", type=1) at Python/import.c:1301
> #37 0x33fe8 in import_submodule (mod=0xb52fc, subname=0xffbfda60 "times", fullname=0xffbfda58 "MySQLdb.times")
>     at Python/import.c:1829
> #38 0x33b68 in load_next (mod=0xb52fc, altmod=0xb52fc, p_name=0xffbfda60, buf=0xffbfda58 "MySQLdb.times", 
>     p_buflen=0xffbfda54) at Python/import.c:1685
> #39 0x33874 in import_module_ex (name=0x0, globals=0xb52fc, locals=0xc10d4, fromlist=0xc6adc)
>     at Python/import.c:1543
> #40 0x33910 in PyImport_ImportModuleEx (name=0xb9fe4 "MySQLdb.times", globals=0xc10d4, locals=0xc10d4, 
>     fromlist=0xc6adc) at Python/import.c:1577
> #41 0x77254 in builtin___import__ (self=0x0, args=0xb9fe4) at Python/bltinmodule.c:31
> #42 0x22858 in call_cfunction (func=0xb5ce0, arg=0xc85bc, kw=0x0) at Python/ceval.c:2854
> #43 0x227bc in call_object (func=0xb5ce0, arg=0xc85bc, kw=0x0) at Python/ceval.c:2807
> #44 0x22548 in PyEval_CallObjectWithKeywords (func=0xb5ce0, arg=0xc85bc, kw=0x0) at Python/ceval.c:2740
> #45 0x20124 in eval_code2 (co=0xc8130, globals=0x0, locals=0xc10d4, args=0xb96b1, argcount=0, kws=0xc85bc, 
>     kwcount=0, defs=0x0, defcount=0, closure=0xb5ce0) at Python/ceval.c:1820
> #46 0x1da3c in PyEval_EvalCode (co=0x0, globals=0xc6adc, locals=0xb5ce0) at Python/ceval.c:341
> #47 0x322f4 in PyImport_ExecCodeModuleEx (name=0xffbff170 "MySQLdb", co=0xc8130, 
>     pathname=0xffbfe2a0 "/usr/local/lib/python2.1/site-packages/MySQLdb/__init__.pyc") at Python/import.c:490
> #48 0x328d8 in load_source_module (name=0xffbff170 "MySQLdb", 
>     pathname=0xffbfe2a0 "/usr/local/lib/python2.1/site-packages/MySQLdb/__init__.pyc", fp=0xc8130)
>     at Python/import.c:754
> #49 0x33184 in load_module (name=0xffbff170 "MySQLdb", fp=0xb4008, 
>     buf=0xffbfe790 "/usr/local/lib/python2.1/site-packages/MySQLdb/__init__.py", type=1)
>     at Python/import.c:1301
> #50 0x32ae8 in load_package (name=0xffbff170 "MySQLdb", pathname=0xc6a68 "") at Python/import.c:811
> #51 0x331f0 in load_module (name=0xffbff170 "MySQLdb", fp=0x0, 
>     buf=0xffbfec80 "/usr/local/lib/python2.1/site-packages/MySQLdb", type=5) at Python/import.c:1324
> #52 0x33fe8 in import_submodule (mod=0xa6cd8, subname=0xffbff170 "MySQLdb", fullname=0xffbff170 "MySQLdb")
>     at Python/import.c:1829
> #53 0x33b68 in load_next (mod=0xa6cd8, altmod=0xa6cd8, p_name=0xffbff170, buf=0xffbff170 "MySQLdb", 
>     p_buflen=0xffbff16c) at Python/import.c:1685
> #54 0x33738 in import_module_ex (name=0x0, globals=0xa6cd8, locals=0xb6fc4, fromlist=0xa6cd8)
>     at Python/import.c:1536
> #55 0x33910 in PyImport_ImportModuleEx (name=0xd1f14 "MySQLdb", globals=0xb6fc4, locals=0xb6fc4, 
>     fromlist=0xa6cd8) at Python/import.c:1577
> #56 0x77254 in builtin___import__ (self=0x0, args=0xd1f14) at Python/bltinmodule.c:31
> #57 0x22858 in call_cfunction (func=0xb5ce0, arg=0xba9e4, kw=0x0) at Python/ceval.c:2854
> #58 0x227bc in call_object (func=0xb5ce0, arg=0xba9e4, kw=0x0) at Python/ceval.c:2807
> #59 0x22548 in PyEval_CallObjectWithKeywords (func=0xb5ce0, arg=0xba9e4, kw=0x0) at Python/ceval.c:2740
> #60 0x20124 in eval_code2 (co=0xc0f40, globals=0x0, locals=0xb6fc4, args=0xb9ec0, argcount=0, kws=0xba9e4, 
>     kwcount=0, defs=0x0, defcount=0, closure=0xb5ce0) at Python/ceval.c:1820
> #61 0x1da3c in PyEval_EvalCode (co=0x0, globals=0xa6cd8, locals=0xb5ce0) at Python/ceval.c:341
> #62 0x3ab0c in run_node (n=0xb51f0, filename=0xb6fc4 "", globals=0xb6fc4, locals=0xb6fc4, flags=0xb6fc4)
>     at Python/pythonrun.c:1045
> #63 0x39908 in PyRun_InteractiveOneFlags (fp=0xffffffff, filename=0x7d4f8 "<stdin>", flags=0xffbffb3c)
>     at Python/pythonrun.c:570
> #64 0x39704 in PyRun_InteractiveLoopFlags (fp=0xb3fd8, filename=0x7d4f8 "<stdin>", flags=0xffbffb3c)
>     at Python/pythonrun.c:510
> #65 0x3966c in PyRun_AnyFileExFlags (fp=0xb3fd8, filename=0x7d4f8 "<stdin>", closeit=0, flags=0xffbffb3c)
>     at Python/pythonrun.c:473
> #66 0x19b90 in Py_Main (argc=1, argv=0xffbffbb4) at Modules/main.c:320
> 
> 

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Software directly from the Source  (#1, Aug 06 2003)
 >>> Python/Zope Products & Consulting ...         http://www.egenix.com/
 >>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________






More information about the Python-list mailing list