Build farm: tdb patches.

William Jojo jojowil at hvcc.edu
Wed May 7 20:29:25 GMT 2008



This patch will fix tdb linking with Python on aix53bf in the build farm:

--- tdb.mk.orig 2008-05-07 07:29:57.000000000 -0400
+++ tdb.mk      2008-05-07 07:27:42.000000000 -0400
@@ -39,7 +39,7 @@
        $(CC) $(PICFLAG) -c $(tdbdir)/tdb_wrap.c $(CFLAGS) `$(PYTHON_CONFIG) --cflags`
 
 _tdb.$(SHLIBEXT): libtdb.$(SHLIBEXT) tdb_wrap.o
-       $(SHLD) $(SHLD_FLAGS) -o $@ tdb_wrap.o -L. -ltdb `$(PYTHON_CONFIG) --libs`
+       $(SHLD) $(SHLD_FLAGS) -o $@ tdb_wrap.o -L. -ltdb `$(PYTHON_CONFIG) --ldflags`
 
 install:: installdirs installbin installheaders installlibs \
                  $(PYTHON_INSTALL_TARGET)


And this:

--- configure.orig      2008-05-07 16:24:06.000000000 -0400
+++ configure   2008-05-07 12:46:42.000000000 -0400
@@ -26630,7 +26630,7 @@
                        LD_SHLIB_FLAGS="-shared"
                        ;;
                *aix*)
-                       LD_SHLIB_FLAGS="-Wl,-G,-bexpall,-bbigtoc"
+                       LD_SHLIB_FLAGS="-Wl,-G,-bnoentry,-bexpall,-bbigtoc"
                        ;;
                *hpux*)
                        if test "${GCC}" = "yes"; then


Fixes _tdb.so load failure with the following error:


testing with 3 processes, 5000 loops, 2 hash_size, seed=1210588070
OK
LIB_PATH=. PYTHONPATH=".:." /opt/pware/bin/python2.5 ./python/tests/simple.py
Traceback (most recent call last):
  File "./python/tests/simple.py", line 9, in <module>
    import tdb
  File "/home/build/build_farm/tdb/tdb.py", line 6, in <module>
    import _tdb
ImportError: rtld: 0712-001 Symbol main was referenced
      from module /home/build/build_farm/tdb/_tdb.so(), but a runtime definition
            of the symbol was not found.
make: *** [check-python] Error 1


The -bnoentry removes the reference to main().


After all of that, Python consumes about 450MB during the make test and then fails, dumps core and the gdb backtrace shows the following:

(gdb) bt
#0  0xd01247f4 in pthread_kill () from /usr/lib/libpthreads.a(shr_xpg5.o)
#1  0xd0124268 in _p_raise () from /usr/lib/libpthreads.a(shr_xpg5.o)
#2  0xd0376b2c in raise () from /usr/lib/libc.a(shr.o)
#3  0xd03d4dfc in abort () from /usr/lib/libc.a(shr.o)
#4  0x10048f74 in Py_FatalError (
    msg=0xffffffff <Address 0xffffffff out of bounds>)
    at Python/pythonrun.c:1561
#5  0xd176df90 in none_dealloc (ignore=0x0) at Objects/object.c:1809
#6  0x1009a580 in list_dealloc (op=0x300b4dac) at Objects/listobject.c:274
#7  0x1012dc30 in frame_dealloc (f=0x301369f4) at Objects/frameobject.c:416
#8  0x1012f208 in tb_dealloc (tb=0x300d8f54) at Python/traceback.c:34
#9  0x1012f234 in tb_dealloc (tb=0x300d8f2c) at Python/traceback.c:33
#10 0x1012f234 in tb_dealloc (tb=0x3019602c) at Python/traceback.c:33
#11 0x1012f234 in tb_dealloc (tb=0x30196054) at Python/traceback.c:33
#12 0x1007b470 in PyDict_DelItem (op=0x3003b8ac, key=0x30196098)
    at Objects/dictobject.c:695
#13 0x1007b56c in PyDict_DelItemString (v=0x3003b8ac, 
    key=0xffffffff <Address 0xffffffff out of bounds>)
    at Objects/dictobject.c:2195
#14 0x1000291c in PySys_SetObject (name=0x1015df00 "exc_traceback", 
    v=0xffffffff) at Python/sysmodule.c:79
#15 0x1005c074 in PyEval_EvalFrameEx (f=0x30133354, throwflag=806564692)
    at Python/ceval.c:2991
---Type <return> to continue, or q <return> to quit---
#16 0x10063a4c in PyEval_EvalCodeEx (co=0x300bd7b8, globals=0xffffffff, 
    locals=0xffffffff, args=0x300db998, argcount=2, kws=0x300843b8, kwcount=0, 
    defs=0x300ce638, defcount=1, closure=0x0) at Python/ceval.c:2836
#17 0x1012ad88 in function_call (func=0x300cac34, arg=0x300db98c, 
    kw=0x3019535c) at Objects/funcobject.c:517
#18 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#19 0x10060158 in PyEval_EvalFrameEx (f=0x301331e4, throwflag=806205836)
    at Python/ceval.c:3853
#20 0x10063a4c in PyEval_EvalCodeEx (co=0x300bd800, globals=0xffffffff, 
    locals=0xffffffff, args=0x300db958, argcount=2, kws=0x0, kwcount=0, 
    defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2836
#21 0x1012ae18 in function_call (func=0x300cac6c, arg=0x300db94c, kw=0x0)
    at Objects/funcobject.c:517
#22 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#23 0x10065358 in instancemethod_call (func=0x0, arg=0x300db94c, kw=0x0)
    at Objects/classobject.c:2519
#24 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#25 0x100120fc in slot_tp_call (self=0x0, args=0x300db92c, kwds=0x0)
    at Objects/typeobject.c:4714
#26 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
---Type <return> to continue, or q <return> to quit---
    at Objects/abstract.c:1861
#27 0x1005edf0 in PyEval_EvalFrameEx (f=0x30133074, throwflag=806205740)
    at Python/ceval.c:3784
#28 0x10063a4c in PyEval_EvalCodeEx (co=0x300bdec0, globals=0xffffffff, 
    locals=0xffffffff, args=0x300db538, argcount=2, kws=0x30082ba8, kwcount=0, 
    defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2836
#29 0x1012ad88 in function_call (func=0x300cd064, arg=0x300db52c, 
    kw=0x301952d4) at Objects/funcobject.c:517
#30 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#31 0x10060158 in PyEval_EvalFrameEx (f=0x30132f04, throwflag=806204716)
    at Python/ceval.c:3853
#32 0x10063a4c in PyEval_EvalCodeEx (co=0x300bdf08, globals=0xffffffff, 
    locals=0xffffffff, args=0x300db3b8, argcount=2, kws=0x0, kwcount=0, 
    defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2836
#33 0x1012ae18 in function_call (func=0x300cd09c, arg=0x300db3ac, kw=0x0)
    at Objects/funcobject.c:517
#34 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#35 0x10065358 in instancemethod_call (func=0x0, arg=0x300db3ac, kw=0x0)
    at Objects/classobject.c:2519
#36 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
---Type <return> to continue, or q <return> to quit---
#37 0x100120fc in slot_tp_call (self=0x0, args=0x300db8cc, kwds=0x0)
    at Objects/typeobject.c:4714
#38 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#39 0x1005edf0 in PyEval_EvalFrameEx (f=0x30132d94, throwflag=806205644)
    at Python/ceval.c:3784
#40 0x10063a4c in PyEval_EvalCodeEx (co=0x300bdec0, globals=0xffffffff, 
    locals=0xffffffff, args=0x300db318, argcount=2, kws=0x300828a8, kwcount=0, 
    defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2836
#41 0x1012ad88 in function_call (func=0x300cd064, arg=0x300db30c, 
    kw=0x3019524c) at Objects/funcobject.c:517
#42 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#43 0x10060158 in PyEval_EvalFrameEx (f=0x30132c24, throwflag=806204172)
    at Python/ceval.c:3853
#44 0x10063a4c in PyEval_EvalCodeEx (co=0x300bdf08, globals=0xffffffff, 
    locals=0xffffffff, args=0x300d7678, argcount=2, kws=0x0, kwcount=0, 
    defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2836
#45 0x1012ae18 in function_call (func=0x300cd09c, arg=0x300d766c, kw=0x0)
    at Objects/funcobject.c:517
#46 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#47 0x10065358 in instancemethod_call (func=0x0, arg=0x300d766c, kw=0x0)
---Type <return> to continue, or q <return> to quit---
    at Objects/classobject.c:2519
#48 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#49 0x100120fc in slot_tp_call (self=0x0, args=0x300cf62c, kwds=0x0)
    at Objects/typeobject.c:4714
#50 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#51 0x1005edf0 in PyEval_EvalFrameEx (f=0x301324c4, throwflag=806155820)
    at Python/ceval.c:3784
#52 0x10061470 in PyEval_EvalFrameEx (f=0x30132344, throwflag=806560964)
    at Python/ceval.c:3659
#53 0x10061470 in PyEval_EvalFrameEx (f=0x30123564, throwflag=806560580)
    at Python/ceval.c:3659
#54 0x10063a4c in PyEval_EvalCodeEx (co=0x300c5c80, globals=0xffffffff, 
    locals=0xffffffff, args=0x300ceb98, argcount=1, kws=0x0, kwcount=0, 
    defs=0x300c48d8, defcount=5, closure=0x0) at Python/ceval.c:2836
#55 0x1012ae18 in function_call (func=0x300cd7d4, arg=0x300ceb8c, kw=0x0)
    at Objects/funcobject.c:517
#56 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#57 0x10065358 in instancemethod_call (func=0x0, arg=0x300ceb8c, kw=0x0)
    at Objects/classobject.c:2519
#58 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
---Type <return> to continue, or q <return> to quit---
    at Objects/abstract.c:1861
#59 0x100119e8 in slot_tp_init (self=0x0, args=0x3003902c, kwds=0x0)
    at Objects/typeobject.c:4943
#60 0x10015b5c in type_call (type=0x301253d4, args=0x3003902c, kwds=0x0)
    at Objects/typeobject.c:436
#61 0x1006f44c in PyObject_Call (func=0x0, arg=0xffffffff, kw=0xffffffff)
    at Objects/abstract.c:1861
#62 0x1005edf0 in PyEval_EvalFrameEx (f=0x30083444, throwflag=805539884)
    at Python/ceval.c:3784
#63 0x10063a4c in PyEval_EvalCodeEx (co=0x300bc530, globals=0xffffffff, 
    locals=0xffffffff, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, 
    defcount=0, closure=0x0) at Python/ceval.c:2836
#64 0x10063b3c in PyEval_EvalCode (co=0x0, globals=0xffffffff, 
    locals=0xffffffff) at Python/ceval.c:494
#65 0x1004b430 in PyRun_FileExFlags (fp=0xf02713a0, 
    filename=0x2ff22c59 "./python/tests/simple.py", start=805540592, 
    globals=0x30051acc, locals=0x30051acc, closeit=1, flags=0x2ff22a18)
    at Python/pythonrun.c:1273
#66 0x1004b7ec in PyRun_SimpleFileExFlags (fp=0xf02713a0, 
    filename=0x2ff22c59 "./python/tests/simple.py", closeit=1, 
    flags=0x2ff22a18) at Python/pythonrun.c:879
#67 0x10000fc4 in Py_Main (argc=804399640, argv=0x2ff22ba8)
    at Modules/main.c:523
---Type <return> to continue, or q <return> to quit---
#68 0x100003f0 in main (argc=0, argv=0xffffffff) at ./Modules/python.c:23
(gdb) quit


I am still digging into this one.


Cheers,
Bill




More information about the samba-technical mailing list