Ticket #88 (reopened defect)

Opened 2 years ago

Last modified 6 weeks ago

Python tests fails with a core dump when xapian available as a module and compile with Sun cc

Reported by: aug04acc Owned by: olly
Priority: normal Milestone: 1.1.0
Component: Build system Version: 0.9.6
Severity: minor Keywords:
Cc: Blocked By:
Operating System: Solaris Blocking:

Description (last modified by olly) (diff)

Building Python 2.4.3 on Solaris 9 with the Sun Studio 11 (Sun C 5.8) and additional modules pysqlite 1.1.7, Xapian 0.9.6 crashes the Python "make test" in several tests. Below first the instructions how Python, pysqlite and Xapian was build are given, then the output of the Python "make test" and finally the stack trace. The effective of this core dump is, that the application roundup 1.1.2 will not run because the generation of the Xapian based index fails.

[build instructions] ##-- building Python 2.4.3

##[ URL="http://www.python.org/ftp/python/2.4.3/Python-2.4.3.tar.bz2" SRCDIR=/home/zamiz/admin/sources/python STAR=Python-2.4.3.tar.bz2 PKG=echo $STAR | sed -e 's@\.tar\.gz@@' -e 's@\.tgz@@' -e 's@\.tar\.bz2@@' BUILDDIR=/builddir

TIMESTAMP=date +%Y%m%d%H%M%S LOGFILE=/tmp/$PKG.$TIMESTAMP

cd $BUILDDIR pwd bunzip2 -d -c "${SRCDIR}"/"${STAR}" | gtar xvf - cd $PKG pwd

# Sun ONE Studio 11 installed CC="cc"; export CC CXX=CC; export CXX PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/sbin:/usr/bin; export PATH

./configure --prefix=/usr --without-cxx --without-gcc make | tee /var/tmp/"${PKG}"-"${VERSION}"_make_${TIMESTAMP} make test | tee /var/tmp/"${PKG}"-"${VERSION}"_make_test_${TIMESTAMP}

## done as user 'root'; resource the above variables cd "$BUILDDIR"/"$PKG" make install | tee /var/tmp/"${PKG}"-"${VERSION}"_make_install_${TIMESTAMP} ## done as regular user cd $BUILDDIR; test -d "$BUILDDIR" && rm -rf "$BUILDDIR/$PKG" ##]

##-- installing pysqlite 1.1.7

##[ ## next step done as user 'root' URL="http://initd.org/tracker/pysqlite" SRCDIR=/home/zamiz/admin/sources/python STAR=pysqlite-1.1.7.tar.gz PKG=echo $STAR | sed -e 's@\.tar\.gz@@' -e 's@\.tgz@@' -e 's@\.tar\.bz2@@' PKG=pysqlite BUILDDIR=/builddir PREFIX=/usr

CC=cc; export CC CXX=CC; export CXX LDFLAGS='-R/opt/sqlite/lib -L/opt/sqlite/lib'; export LDFLAGS CFLAGS='-I/opt/sqlite/include'; export CFLAGS PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/sbin:/usr/bin TIMESTAMP=date +%Y%m%d%H%M%S

cd $BUILDDIR /usr/sfw/bin/gtar -zxvf $SRCDIR/$STAR

cd $PKG

cp -p setup.py setup.py.orig # sed -e 's@\(include_dirs=\).*$@\1/opt/sqlite/include@' \ # -e 's@\(library_dirs=\).*$@\1/opt/sqlite/lib@' setup.cfg.orig > setup.cfg

python setup.py build 2>&1 | tee /var/tmp/"${PKG}"-"${VERSION}"_build_${TIMESTAMP}

#- run tests python test/all_test.py

python setup.py install --prefix=$PREFIX 2>&1 | tee /var/tmp/"${PKG}"-"${VERSION}"_install_${TIMESTAMP}

#- sqlite 1.x is loadable, done as a regular user python import sqlite dir(sqlite)

##]

##-- installing Xapian

##[ SRCDIR=/home/zamiz/admin/sources/xapian STAR=xapian-core-0.9.6.tar.gz PKG=echo $STAR | sed -e 's@\.tar\.gz@@' -e 's@\.tgz@@' -e 's@\.tar\.bz2@@' STAR1=omega-0.9.6.tar.gz PKG1=echo $STAR1 | sed -e 's@\.tar\.gz@@' -e 's@\.tgz@@' -e 's@\.tar\.bz2@@' STAR2=xapian-bindings-0.9.6.tar.gz PKG2=echo $STAR2 | sed -e 's@\.tar\.gz@@' -e 's@\.tgz@@' -e 's@\.tar\.bz2@@' BUILDDIR=/builddir

TIMESTAMP=date +%Y%m%d%H%M%S LOGFILE=/tmp/$PKG.$TIMESTAMP

cd $BUILDDIR pwd

CC=cc; export CC CXX=CC ; export CXX

## use Sun C++ compiler but GNU gmake PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/bin:/bin:/opt/sfw/bin cd $BUILDDIR

##- xapian-core /usr/sfw/bin/gtar -zxvf $SRCDIR/$STAR cd $PKG

LDFLAGS="-lm"; export LDFLAGS ./configure --prefix=/usr --without-gcc make # done as user 'root' PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/bin:/bin; export PATH LDFLAGS="-lm"; export LDFLAGS make install

##- omega # done as regular user cd .. /usr/sfw/bin/gtar -zxvf $SRCDIR/$STAR1 cd $PKG1 ./configure --prefix=/usr --without-gcc make

# done as user 'root' PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/bin:/bin; export PATH LDFLAGS="-lm"; export LDFLAGS make install

##- xapian-bindings # done as regular user cd .. /usr/sfw/bin/gtar -zxvf $SRCDIR/$STAR2 cd $PKG2 ./configure --prefix=/usr --without-gcc make

# done as user 'root' PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/bin:/bin; export PATH LDFLAGS="-lm"; export LDFLAGS make install

##]

[output of Python 'make test'] bash-2.05$ python run_tests.py Running unit tests at level 1

Running unit tests from /export/home/builddir/roundup-1.1.2/. Including anydbm tests Skipping metakit tests Skipping mysql tests Skipping postgresql tests Including sqlite tests Skipping tsearch2 tests testDontRetireAdminOrAnonymous (test.test_actions.RetireActionTestCase?) ... ok testNoPermission (test.test_actions.RetireActionTestCase?) ... ok testRetireAction (test.test_actions.RetireActionTestCase?) ... ok testNoPermission (test.test_actions.StandardSearchActionTestCase?) ... ok testQueryName (test.test_actions.StandardSearchActionTestCase?) ... ok testEmptyKey (test.test_actions.FakeFilterVarsTestCase?) ... ok testEmptyMultilink (test.test_actions.FakeFilterVarsTestCase?) ... ok testNonEmptyMultilink (test.test_actions.FakeFilterVarsTestCase?) ... ok testStandardKey (test.test_actions.FakeFilterVarsTestCase?) ... ok testStringKey (test.test_actions.FakeFilterVarsTestCase?) ... ok testTokenizedStringKey (test.test_actions.FakeFilterVarsTestCase?) ... ok testShowAction (test.test_actions.ShowActionTestCase?) ... ok testShowActionNoType (test.test_actions.ShowActionTestCase?) ... ok testCollision (test.test_actions.CollisionDetectionTestCase?) ... ok testLastNodeActivity (test.test_actions.CollisionDetectionTestCase?) ... ok testLastUserActivity (test.test_actions.CollisionDetectionTestCase?) ... ok testCorrectLogin (test.test_actions.LoginTestCase?) ... ok testInvalidPassword (test.test_actions.LoginTestCase?) ... ok testInvalidUsername (test.test_actions.LoginTestCase?) ... ok testNoUsername (test.test_actions.LoginTestCase?) ... ok testNoWebAccess (test.test_actions.LoginTestCase?) ... ok testActorProperty (test.test_anydbm.anydbmDBTest) ... Segmentation Fault (core dumped)

[stack trace] ## I produce a stack trace with the command 'pstack'. The output is attached. ## bash-2.05$ pstack core > core_stack_trace_20060607 core 'core' of 17445: python run_tests.py

fe7ccee0

1cDstdMbasic_string4Ccn0ALchar_traits4Ccn0AJallocator4Cc_2t6Mrk1_v_ (ffbfb378, feac54d0, 0, 1ec00, ffbfb378, 0) + 1c

fe951364 1cOQdDuartzMetaFileGcreate6M_v_ (75b8d0, ffbfb470, ffbfb46f,

2add38, 0, 15) + 34

fe91d6d4 1cOQdDuartzDatabaseWcreate_and_open_tables6MI_v_ (75b8bc, 2000,

fea64f62, 424b18, ffbfb64c, e) + 7c

fe91c95c

1cOQdDuartzDatabase2t5B6MrknDstdMbasic_string4Ccn0BLchar_traits4Ccn0BJallocator4CciI_v_ (75b8bc, 750740, 1, 2000, 0, 0) + ab4

fe920928

1cWQdDuartzWritableDatabase2t5B6MrknDstdMbasic_string4Ccn0BLchar_traits4Ccn0BJallocator4Ccii_v_ (75b850, 750740, 1, 2000, fec3a780, 75b850) + 120

fe919344

1cGXapianIInternalWopen_writable_database6Fpn0AIDatabase_rknDstdMbasic_string4Ccn0DLchar_traits4Ccn0DJallocator4Cci_v_ (6ec510, 750740, 1, 0, 0, 0) + 1e4

fea2656c

1cGXapianQWritableDatabase2t5B6MrknDstdMbasic_string4Ccn0CLchar_traits4Ccn0CJallocator4Cci_v_ (6ec510, 750740, 1, 13798, fec3a780, 6ec510) + 74

feb67700 ???????? (0, 2, ffbfb97c, 2, ffbfb97c, 3588) feb67d2c ???????? (0, 69c030, 0, c4c00, 0, feb67c28) 000237d8 PyNumber?_Power (6b4c60, 69c030, 0, 104b50, 1, 2) 00081d88 PyEval?_EvalFrame (0, ffbfbaf4, 2, 0, 69c030, 6b46e8) + 2e50 0007e1e8 UnicodeDecodeError?str (4, 0, 1e3318, e7b18, 0, 1) + 400 0007f998 PyEval?_EvalFrame (6ae460, 1, 1, 4a3, 0, 1e3318) + a60 000c475c local_clear (693930, 5dc030, 0, 0, 4084c, 0) + b0 000237d8 PyNumber?_Power (693930, 5dc030, 0, 1043f4, 3, 3) 00029b34 instance_rshift (5dc030, 5dc030, 0, 610238, fadc8, 2) + 8 000237d8 PyNumber?_Power (610238, 69c2b0, 0, e65b0, 57fb, 4000) 0005edec tp_new_wrapper (60b170, 69c2b0, 0, 60b160, 115000, 610238) + 194 00053128 rsplit_whitespace (5edb8, 69c2b0, 0, 4, 2, 60b170) + 160 000237d8 PyNumber?_Power (6aa558, 69c2b0, 0, ebdc0, 5582ec, 2) 00081b30 PyEval?_EvalFrame (6aa558, ffbfc198, 2, 0, 0, 69c2b0) + 2bf8 0008138c PyEval?_EvalFrame (ffbfc198, 2, 2, 2aa2ac, 0, 6aa558) + 2454 0007e0e0 UnicodeDecodeError?str (208, 0, 2aa158, e7b18, 0, 1) + 2f8 00081584 PyEval?_EvalFrame (fffffffd, 2aa2a8, 2adaac, 2aa158, 0, 1) + 264c 00081370 PyEval?_EvalFrame (ffbfc320, 5, 1, 2adaa8, 0, 6999b0) + 2438 0007e0e0 UnicodeDecodeError?str (208, 0, 2ad920, e7b18, 0, 1) + 2f8 0007f998 PyEval?_EvalFrame (56e760, 56f030, 4, 1, 1, 2ad920) + a60 00081608 PyEval?_EvalFrame (c, 2a9208, 3, 0, 0, 68ec50) + 26d0 00081370 PyEval?_EvalFrame (ffbfc518, 3, 3, 2a91fc, 0, 6ae4b0) + 2438 0007e0e0 UnicodeDecodeError?str (208, 0, 2a9080, e7b18, 0, 1) + 2f8 0007f998 PyEval?_EvalFrame (52d5e0, eb838, 118b60, 1, 0, 2a9080) + a60 000c4710 local_clear (6b2670, 5dbb70, 2, 2ad488, 0, 5dbb80) + 64 000237d8 PyNumber?_Power (6b2670, 5dbb70, 60e9c0, 1043f4, 5, 1e3278) 00081d88 PyEval?_EvalFrame (0, ffbfc774, 0, 1, 5dbb70, 0) + 2e50 0007e1e8 UnicodeDecodeError?str (606c88, 0, 1e3118, e7b18, 0, 1) + 400 0007f998 PyEval?_EvalFrame (52d4e0, eb838, 118b60, 1, 0, 1e3118) + a60 00081608 PyEval?_EvalFrame (c, 27d80c, 3, 0, 8, 0) + 26d0 00081370 PyEval?_EvalFrame (ffbfc970, 4, 1, 27d800, 2, 6b2630) + 2438 0007e0e0 UnicodeDecodeError?str (208, 0, 27d6a8, e7b18, 0, 1) + 2f8 00081584 PyEval?_EvalFrame (fffffffd, 27d7f8, 2b1518, 27d6a8, 0, 1) + 264c 00081370 PyEval?_EvalFrame (ffbfcaf8, c, 1, 2b1514, 0, 528070) + 2438 0007e0e0 UnicodeDecodeError?str (208, 0, 2b13b8, e7b18, 0, 1) + 2f8 0007f998 PyEval?_EvalFrame (1fade0, 1fd030, 2, 6b1604, 1, 2b13b8) + a60 000c4710 local_clear (2029f0, 6b15f8, 0, 2ad458, 0, 6b1604) + 64 000237d8 PyNumber?_Power (2029f0, 6b15f8, 5daed0, 1043f4, 0, 1) 00081d88 PyEval?_EvalFrame (0, ffbfcd54, 1, 1, 6b15f8, 5db950) + 2e50 0007e1e8 UnicodeDecodeError?str (4a0210, 0, 27d300, e7b18, 0, 1) + 400 0007f998 PyEval?_EvalFrame (1fae20, 1, 1, 13, 0, 27d300) + a60 000c475c local_clear (202a30, 6ad3a0, 0, 0, 4084c, 0) + b0 000237d8 PyNumber?_Power (202a30, 6ad3a0, 0, 1043f4, 2, 6) 00029b34 instance_rshift (6ad3a0, 6ad3a0, 0, 587620, fadc8, 1) + 8 000237d8 PyNumber?_Power (587620, 5db8f0, 0, e65b0, 5db7e0, 1) 0005e740 richcmp_le (4a0210, 5db8f0, 0, 115000, 587620, 0) + 8 000237d8 PyNumber?_Power (4a0210, 5db8f0, 0, 6ebba0, 48ea8c, 1) 00081b30 PyEval?_EvalFrame (4a0210, ffbfd398, 1, 0, 0, 5db8f0) + 2bf8 0008138c PyEval?_EvalFrame (ffbfd398, 1, 1, 2b1314, 0, 4a0210) + 2454 0007e0e0 UnicodeDecodeError?str (208, 0, 2b11b8, e7b18, 0, 1) + 2f8 0007f998 PyEval?_EvalFrame (255360, 1fd030, 2, 6b19ec, 0, 2b11b8) + a60 000c4710 local_clear (202e70, 6b19e0, 0, 750730, 0, 6b19ec) + 64 000237d8 PyNumber?_Power (202e70, 6b19e0, 5dae40, 1043f4, 0, 1) 00081d88 PyEval?_EvalFrame (0, ffbfd5f4, 1, 1, 6b19e0, 5db710) + 2e50 0007e1e8 UnicodeDecodeError?str (5a6cf0, 0, 27cf58, e7b18, 0, 1) + 400 0007f998 PyEval?_EvalFrame (2553a0, 1, 1, e, 0, 27cf58) + a60 000c475c local_clear (202eb0, 6af030, 0, 0, 4084c, 0) + b0 000237d8 PyNumber?_Power (202eb0, 6af030, 0, 1043f4, 2, 6) 00029b34 instance_rshift (6af030, 6af030, 0, 5746e8, fadc8, 1) + 8 000237d8 PyNumber?_Power (5746e8, 5db630, 0, e65b0, 5db540, 1) 0005e740 richcmp_le (5a6cf0, 5db630, 0, 115000, 5746e8, 0) + 8 000237d8 PyNumber?_Power (5a6cf0, 5db630, 0, 28c088, 48ea8c, 1) 00081b30 PyEval?_EvalFrame (5a6cf0, ffbfdc38, 1, 0, 0, 5db630) + 2bf8 0008138c PyEval?_EvalFrame (ffbfdc38, 1, 1, 27db9c, 0, 5a6cf0) + 2454 0007e0e0 UnicodeDecodeError?str (208, 0, 27da40, e7b18, 0, 1) + 2f8 0007f998 PyEval?_EvalFrame (255360, 1fd030, 2, 6b44ec, 0, 27da40) + a60 000c4710 local_clear (202e70, 6b44e0, 0, 2ad428, 0, 6b44ec) + 64 000237d8 PyNumber?_Power (202e70, 6b44e0, 5dadb0, 1043f4, 0, 1) 00081d88 PyEval?_EvalFrame (0, ffbfde94, 1, 1, 6b44e0, 5db230) + 2e50 0007e1e8 UnicodeDecodeError?str (2102d0, 0, 290080, e7b18, 0, 1) + 400 0007f998 PyEval?_EvalFrame (2553a0, 1, 1, 9, 0, 290080) + a60 000c475c local_clear (202eb0, 69ac88, 0, 0, 4084c, 0) + b0 000237d8 PyNumber?_Power (202eb0, 69ac88, 0, 1043f4, 2, 6) 00029b34 instance_rshift (69ac88, 69ac88, 0, 49b620, fadc8, 1) + 8 000237d8 PyNumber?_Power (49b620, 5db810, 0, e65b0, 5db800, 5d0ed0) 0005e740 richcmp_le (2102d0, 5db810, 0, 115000, 49b620, 0) + 8 000237d8 PyNumber?_Power (2102d0, 5db810, 0, 28c088, 48ea8c, 1) 00081b30 PyEval?_EvalFrame (2102d0, ffbfe4d8, 1, 0, 0, 5db810) + 2bf8 0008138c PyEval?_EvalFrame (ffbfe4d8, 1, 1, 2903dc, 0, 2102d0) + 2454 0007e0e0 UnicodeDecodeError?str (208, 0, 290280, e7b18, 0, 1) + 2f8 0007f998 PyEval?_EvalFrame (255360, 1fd030, 2, 696b7c, 0, 290280) + a60 000c4710 local_clear (202e70, 696b70, 0, 2ad448, 0, 696b7c) + 64 000237d8 PyNumber?_Power (202e70, 696b70, 5da8a0, 1043f4, 0, 1) 00081d88 PyEval?_EvalFrame (0, ffbfe734, 1, 1, 696b70, 5c75b0) + 2e50 0007e1e8 UnicodeDecodeError?str (204e50, 0, 16a328, e7b18, 0, 1) + 400 0007f998 PyEval?_EvalFrame (2553a0, 1, 1, 4, 0, 16a328) + a60 000c475c local_clear (202eb0, 6ad030, 0, 0, 4084c, 0) + b0 000237d8 PyNumber?_Power (202eb0, 6ad030, 0, 1043f4, 2, 9) 00029b34 instance_rshift (6ad030, 6ad030, 0, 5875f8, fadc8, 1) + 8 000237d8 PyNumber?_Power (5875f8, 5ad2d0, 0, e65b0, 5, e8fc8) 0005e740 richcmp_le (204e50, 5ad2d0, 0, 115000, 5875f8, 0) + 8 000237d8 PyNumber?_Power (204e50, 5ad2d0, 0, 28c088, 284d7c, 1) 00081b30 PyEval?_EvalFrame (204e50, ffbfed78, 1, 0, 0, 5ad2d0) + 2bf8 0008138c PyEval?_EvalFrame (ffbfed78, 1, 1, 2ba460, 0, 204e50) + 2454 0007e0e0 UnicodeDecodeError?str (208, 0, 2ba2f0, e7b18, 0, 1) + 2f8 0007f998 PyEval?_EvalFrame (2020e0, 1fd030, 2, 69c4ec, 0, 2ba2f0) + a60 000c475c local_clear (2036f0, 69c4e0, 0, 0, 740838, 0) + b0 000237d8 PyNumber?_Power (2036f0, 69c4e0, 0, 1043f4, 1, eb9ec) 00029b34 instance_rshift (49b5f8, 69c4e0, 0, 28e3b8, 2, 0) + 8 000237d8 PyNumber?_Power (49b5f8, 69c4e0, 0, e65b0, 4084c, 2) 00081b30 PyEval?_EvalFrame (49b5f8, ffbff2f8, 2, 0, 0, 69c4e0) + 2bf8 0008138c PyEval?_EvalFrame (ffbff2f8, 2, 2, 1d54e4, 0, 49b5f8) + 2454 0007e0e0 UnicodeDecodeError?str (208, 0, 1d5390, e7b18, 0, 1) + 2f8 00081584 PyEval?_EvalFrame (fffffffe, 1d54e4, 1d4860, 1d5390, 1, 2) + 264c 00081370 PyEval?_EvalFrame (ffbff480, 3, 2, 1d4858, 0, 20b030) + 2438 0007e0e0 UnicodeDecodeError?str (208, 0, 1d46e8, e7b18, 0, 1) + 2f8 00081584 PyEval?_EvalFrame (ffffffff, 1d4840, 177918, 1d46e8, 2, 3) + 264c 00081370 PyEval?_EvalFrame (ffbff608, 3, 3, 177908, 0, 20b330) + 2438 0007e0e0 UnicodeDecodeError?str (208, 0, 177798, e7b18, 0, 1) + 2f8 00081584 PyEval?_EvalFrame (ffffffff, 1778f0, 1641c0, 177798, 2, 3) + 264c 00081370 PyEval?_EvalFrame (ffbff790, 3, 3, 1641b0, 0, 20b430) + 2438 0007e0e0 UnicodeDecodeError?str (208, 0, 163ff8, e7b18, 0, 1) + 2f8 0007f998 PyEval?_EvalFrame (265be0, 131a50, 1, 1, 1, 163ff8) + a60 00081608 PyEval?_EvalFrame (0, 1582b0, 0, 0, 0, 204370) + 26d0 00081370 PyEval?_EvalFrame (ffbff988, 0, 0, 1582ac, 0, 20b470) + 2438 0007e0e0 UnicodeDecodeError?str (208, 0, 158160, e7b18, 0, 1) + 2f8 0007f998 PyEval?_EvalFrame (265c20, 131a50, 131a50, 0, 1582ac, 158160) + a60 0007aaa8 _PyExc_Init (265c20, 131a50, 131a50, 1179b0, 121230, 121000) + bc 000a17d0 com_list_if (121230, ffbffdc3, 131a50, 131a50, 0, 265c20) + f0 000a07d0 parsestrplus (1176e0, ffbffdc3, 1, ffbffc64, ffbffdcb, 10f800) + 98 0001d1e4 parsetok (4, ffbffcd4, ffbffdc3, 0, 1, 0) + e4 0001c1e0 Py_Main (0, 0, 0, 0, 0, 0) + 50

## Furthermore I created a stack trace via 'dbx', which looks slightly ## different. ## bash-2.05$ dbx /usr/bin/python core For information about new features see `help changes' To remove this message, put `dbxenv suppress_startup_message 7.5' in your .dbxrc Reading python core file header read successfully Reading ld.so.1 Reading libresolv.so.2 Reading libsocket.so.1 Reading libnsl.so.1 Reading librt.so.1 Reading libdl.so.1 Reading libpthread.so.1 Reading libm.so.1 Reading libc.so.1 Reading libmp.so.2 Reading libaio.so.1 Reading libmd5.so.1 Reading libc_psr.so.1 Reading libthread.so.1 Reading strop.so Reading itertools.so Reading cStringIO.so Reading time.so Reading collections.so Reading struct.so Reading array.so Reading _socket.so Reading math.so Reading binascii.so Reading _random.so Reading fcntl.so Reading _weakref.so Reading datetime.so Reading _locale.so Reading libintl.so.1 Reading sha.so Reading md5.so Reading crypt.so Reading libcrypt_i.so.1 Reading libgen.so.1 Reading cPickle.so Reading _csv.so Reading operator.so Reading _bisect.so Reading _heapq.so Reading dbm.so Reading _xapian.so Reading libxapian.so.11.1.0 Reading libCstd.so.1 Reading libCrun.so.1

Reading libCstd_isa.so.1 Reading libmd5_psr.so.1 Reading _sqlite.so Reading libsqlite3.so.0.8.6 t@1 (l@1) program terminated by signal SEGV (no mapping at the fault address) 0xfe7ccee0: basic_string+0x001c: ld [%l7 - 16], %i2 Current function is QuartzMetaFile::create

96 string data = metafile_magic;

(dbx) (dbx)where current thread: t@1

[1] std::basic_string<char,std::char_traits<char>,std::allocator<char>

::basic_string(0xffbfb378, 0xfeac54d0, 0x0, 0x1ec00, 0xffbfb378, 0x0), at 0xfe7ccee0 =>[2] QuartzMetaFile::create(this = 0x75b8d0), line 96 in "quartz_metafile.cc"

[3] QuartzDatabase::create_and_open_tables(this = 0x75b8bc, block_size =

8192U), line 200 in "quartz_database.cc"

[4] QuartzDatabase::QuartzDatabase?(this = 0x75b8bc, quartz_dir = CLASS,

action = 1, block_size = 8192U), line 128 in "quartz_database.cc"

[5] QuartzWritableDatabase::QuartzWritableDatabase?(this = 0x75b850, dir =

CLASS, action = 1, block_size = 8192), line 677 in "quartz_database.cc"

[6] Xapian::Internal::open_writable_database(db = 0x6ec510, path = CLASS,

action = 1), line 296 in "database.cc"

[7] Xapian::WritableDatabase::WritableDatabase?(this = 0x6ec510, path = CLASS,

action = 1), line 336 in "omdatabase.cc"

[8] _wrap_new_WritableDatabaseSWIG_1(_ARG1 = (nil), nobjs = 2, swig_obj =

0xffbfb97c), line 17104 in "xapian_wrap.cc"

[9] _wrap_new_WritableDatabase(self = (nil), args = 0x69c030), line 17185

in "xapian_wrap.cc"

[10] PyObject?_Call(0x6b4c60, 0x69c030, 0x0, 0x104b50, 0x1, 0x2), at 0x237d8 [11] ext_do_call(0x0, 0xffbfbaf4, 0x2, 0x0, 0x69c030, 0x6b46e8), at 0x81d88 [12] PyEval?_EvalFrame(0x4, 0x0, 0x1e3318, 0xe7b18, 0x0, 0x1), at 0x7e1e8 [13] PyEval?_EvalCodeEx(0x6ae460, 0x1, 0x1, 0x4a3, 0x0, 0x1e3318), at 0x7f998 [14] function_call(0x693930, 0x5dc030, 0x0, 0x0, 0x4084c, 0x0), at 0xc475c [15] PyObject?_Call(0x693930, 0x5dc030, 0x0, 0x1043f4, 0x3, 0x3), at 0x237d8 [16] instancemethod_call(0x5dc030, 0x5dc030, 0x0, 0x610238, 0xfadc8, 0x2), at

0x29b34

[17] PyObject?_Call(0x610238, 0x69c2b0, 0x0, 0xe65b0, 0x57fb, 0x4000), at

0x237d8

[18] slot_tp_init(0x60b170, 0x69c2b0, 0x0, 0x60b160, 0x115000, 0x610238), at

0x5edec

[19] type_call(0x5edb8, 0x69c2b0, 0x0, 0x4, 0x2, 0x60b170), at 0x53128 [20] PyObject?_Call(0x6aa558, 0x69c2b0, 0x0, 0xebdc0, 0x5582ec, 0x2), at

0x237d8

[21] do_call(0x6aa558, 0xffbfc198, 0x2, 0x0, 0x0, 0x69c2b0), at 0x81b30 [22] call_function(0xffbfc198, 0x2, 0x2, 0x2aa2ac, 0x0, 0x6aa558), at 0x8138c [23] PyEval?_EvalFrame(0x208, 0x0, 0x2aa158, 0xe7b18, 0x0, 0x1), at 0x7e0e0 [24] fast_function(0xfffffffd, 0x2aa2a8, 0x2adaac, 0x2aa158, 0x0, 0x1), at

0x81584

[25] call_function(0xffbfc320, 0x5, 0x1, 0x2adaa8, 0x0, 0x6999b0), at 0x81370 [26] PyEval?_EvalFrame(0x208, 0x0, 0x2ad920, 0xe7b18, 0x0, 0x1), at 0x7e0e0 [27] PyEval?_EvalCodeEx(0x56e760, 0x56f030, 0x4, 0x1, 0x1, 0x2ad920), at

0x7f998

[28] fast_function(0xc, 0x2a9208, 0x3, 0x0, 0x0, 0x68ec50), at 0x81608 [29] call_function(0xffbfc518, 0x3, 0x3, 0x2a91fc, 0x0, 0x6ae4b0), at 0x81370 [30] PyEval?_EvalFrame(0x208, 0x0, 0x2a9080, 0xe7b18, 0x0, 0x1), at 0x7e0e0 [31] PyEval?_EvalCodeEx(0x52d5e0, 0xeb838, 0x118b60, 0x1, 0x0, 0x2a9080), at

0x7f998

[32] function_call(0x6b2670, 0x5dbb70, 0x2, 0x2ad488, 0x0, 0x5dbb80), at

0xc4710

[33] PyObject?_Call(0x6b2670, 0x5dbb70, 0x60e9c0, 0x1043f4, 0x5, 0x1e3278), at

0x237d8

[34] ext_do_call(0x0, 0xffbfc774, 0x0, 0x1, 0x5dbb70, 0x0), at 0x81d88 [35] PyEval?_EvalFrame(0x606c88, 0x0, 0x1e3118, 0xe7b18, 0x0, 0x1), at 0x7e1e8 [36] PyEval?_EvalCodeEx(0x52d4e0, 0xeb838, 0x118b60, 0x1, 0x0, 0x1e3118), at

0x7f998

[37] fast_function(0xc, 0x27d80c, 0x3, 0x0, 0x8, 0x0), at 0x81608 [38] call_function(0xffbfc970, 0x4, 0x1, 0x27d800, 0x2, 0x6b2630), at 0x81370 [39] PyEval?_EvalFrame(0x208, 0x0, 0x27d6a8, 0xe7b18, 0x0, 0x1), at 0x7e0e0 [40] fast_function(0xfffffffd, 0x27d7f8, 0x2b1518, 0x27d6a8, 0x0, 0x1), at

0x81584

[41] call_function(0xffbfcaf8, 0xc, 0x1, 0x2b1514, 0x0, 0x528070), at 0x81370 [42] PyEval?_EvalFrame(0x208, 0x0, 0x2b13b8, 0xe7b18, 0x0, 0x1), at 0x7e0e0 [43] PyEval?_EvalCodeEx(0x1fade0, 0x1fd030, 0x2, 0x6b1604, 0x1, 0x2b13b8), at

0x7f998

[44] function_call(0x2029f0, 0x6b15f8, 0x0, 0x2ad458, 0x0, 0x6b1604), at

0xc4710

[45] PyObject?_Call(0x2029f0, 0x6b15f8, 0x5daed0, 0x1043f4, 0x0, 0x1), at

0x237d8

[46] ext_do_call(0x0, 0xffbfcd54, 0x1, 0x1, 0x6b15f8, 0x5db950), at 0x81d88 [47] PyEval?_EvalFrame(0x4a0210, 0x0, 0x27d300, 0xe7b18, 0x0, 0x1), at 0x7e1e8 [48] PyEval?_EvalCodeEx(0x1fae20, 0x1, 0x1, 0x13, 0x0, 0x27d300), at 0x7f998 [49] function_call(0x202a30, 0x6ad3a0, 0x0, 0x0, 0x4084c, 0x0), at 0xc475c [50] PyObject?_Call(0x202a30, 0x6ad3a0, 0x0, 0x1043f4, 0x2, 0x6), at 0x237d8 [51] instancemethod_call(0x6ad3a0, 0x6ad3a0, 0x0, 0x587620, 0xfadc8, 0x1), at

0x29b34

[52] PyObject?_Call(0x587620, 0x5db8f0, 0x0, 0xe65b0, 0x5db7e0, 0x1), at

0x237d8

[53] slot_tp_call(0x4a0210, 0x5db8f0, 0x0, 0x115000, 0x587620, 0x0), at

0x5e740

[54] PyObject?_Call(0x4a0210, 0x5db8f0, 0x0, 0x6ebba0, 0x48ea8c, 0x1), at

0x237d8

[55] do_call(0x4a0210, 0xffbfd398, 0x1, 0x0, 0x0, 0x5db8f0), at 0x81b30 [56] call_function(0xffbfd398, 0x1, 0x1, 0x2b1314, 0x0, 0x4a0210), at 0x8138c [57] PyEval?_EvalFrame(0x208, 0x0, 0x2b11b8, 0xe7b18, 0x0, 0x1), at 0x7e0e0 [58] PyEval?_EvalCodeEx(0x255360, 0x1fd030, 0x2, 0x6b19ec, 0x0, 0x2b11b8), at

0x7f998

[59] function_call(0x202e70, 0x6b19e0, 0x0, 0x750730, 0x0, 0x6b19ec), at

0xc4710

[60] PyObject?_Call(0x202e70, 0x6b19e0, 0x5dae40, 0x1043f4, 0x0, 0x1), at

0x237d8

[61] ext_do_call(0x0, 0xffbfd5f4, 0x1, 0x1, 0x6b19e0, 0x5db710), at 0x81d88 [62] PyEval?_EvalFrame(0x5a6cf0, 0x0, 0x27cf58, 0xe7b18, 0x0, 0x1), at 0x7e1e8 [63] PyEval?_EvalCodeEx(0x2553a0, 0x1, 0x1, 0xe, 0x0, 0x27cf58), at 0x7f998 [64] function_call(0x202eb0, 0x6af030, 0x0, 0x0, 0x4084c, 0x0), at 0xc475c [65] PyObject?_Call(0x202eb0, 0x6af030, 0x0, 0x1043f4, 0x2, 0x6), at 0x237d8 [66] instancemethod_call(0x6af030, 0x6af030, 0x0, 0x5746e8, 0xfadc8, 0x1), at

0x29b34

[67] PyObject?_Call(0x5746e8, 0x5db630, 0x0, 0xe65b0, 0x5db540, 0x1), at

0x237d8

[68] slot_tp_call(0x5a6cf0, 0x5db630, 0x0, 0x115000, 0x5746e8, 0x0), at

0x5e740

[69] PyObject?_Call(0x5a6cf0, 0x5db630, 0x0, 0x28c088, 0x48ea8c, 0x1), at

0x237d8

[70] do_call(0x5a6cf0, 0xffbfdc38, 0x1, 0x0, 0x0, 0x5db630), at 0x81b30 [71] call_function(0xffbfdc38, 0x1, 0x1, 0x27db9c, 0x0, 0x5a6cf0), at 0x8138c [72] PyEval?_EvalFrame(0x208, 0x0, 0x27da40, 0xe7b18, 0x0, 0x1), at 0x7e0e0 [73] PyEval?_EvalCodeEx(0x255360, 0x1fd030, 0x2, 0x6b44ec, 0x0, 0x27da40), at

0x7f998

[74] function_call(0x202e70, 0x6b44e0, 0x0, 0x2ad428, 0x0, 0x6b44ec), at

0xc4710

[75] PyObject?_Call(0x202e70, 0x6b44e0, 0x5dadb0, 0x1043f4, 0x0, 0x1), at

0x237d8

[76] ext_do_call(0x0, 0xffbfde94, 0x1, 0x1, 0x6b44e0, 0x5db230), at 0x81d88 [77] PyEval?_EvalFrame(0x2102d0, 0x0, 0x290080, 0xe7b18, 0x0, 0x1), at 0x7e1e8 [78] PyEval?_EvalCodeEx(0x2553a0, 0x1, 0x1, 0x9, 0x0, 0x290080), at 0x7f998 [79] function_call(0x202eb0, 0x69ac88, 0x0, 0x0, 0x4084c, 0x0), at 0xc475c [80] PyObject?_Call(0x202eb0, 0x69ac88, 0x0, 0x1043f4, 0x2, 0x6), at 0x237d8 [81] instancemethod_call(0x69ac88, 0x69ac88, 0x0, 0x49b620, 0xfadc8, 0x1), at

0x29b34

[82] PyObject?_Call(0x49b620, 0x5db810, 0x0, 0xe65b0, 0x5db800, 0x5d0ed0), at

0x237d8

[83] slot_tp_call(0x2102d0, 0x5db810, 0x0, 0x115000, 0x49b620, 0x0), at

0x5e740

[84] PyObject?_Call(0x2102d0, 0x5db810, 0x0, 0x28c088, 0x48ea8c, 0x1), at

0x237d8

[85] do_call(0x2102d0, 0xffbfe4d8, 0x1, 0x0, 0x0, 0x5db810), at 0x81b30 [86] call_function(0xffbfe4d8, 0x1, 0x1, 0x2903dc, 0x0, 0x2102d0), at 0x8138c [87] PyEval?_EvalFrame(0x208, 0x0, 0x290280, 0xe7b18, 0x0, 0x1), at 0x7e0e0 [88] PyEval?_EvalCodeEx(0x255360, 0x1fd030, 0x2, 0x696b7c, 0x0, 0x290280), at

0x7f998

[89] function_call(0x202e70, 0x696b70, 0x0, 0x2ad448, 0x0, 0x696b7c), at

0xc4710

[90] PyObject?_Call(0x202e70, 0x696b70, 0x5da8a0, 0x1043f4, 0x0, 0x1), at

0x237d8

[91] ext_do_call(0x0, 0xffbfe734, 0x1, 0x1, 0x696b70, 0x5c75b0), at 0x81d88 [92] PyEval?_EvalFrame(0x204e50, 0x0, 0x16a328, 0xe7b18, 0x0, 0x1), at 0x7e1e8 [93] PyEval?_EvalCodeEx(0x2553a0, 0x1, 0x1, 0x4, 0x0, 0x16a328), at 0x7f998 [94] function_call(0x202eb0, 0x6ad030, 0x0, 0x0, 0x4084c, 0x0), at 0xc475c [95] PyObject?_Call(0x202eb0, 0x6ad030, 0x0, 0x1043f4, 0x2, 0x9), at 0x237d8 [96] instancemethod_call(0x6ad030, 0x6ad030, 0x0, 0x5875f8, 0xfadc8, 0x1), at

0x29b34

[97] PyObject?_Call(0x5875f8, 0x5ad2d0, 0x0, 0xe65b0, 0x5, 0xe8fc8), at

0x237d8

[98] slot_tp_call(0x204e50, 0x5ad2d0, 0x0, 0x115000, 0x5875f8, 0x0), at

0x5e740

[99] PyObject?_Call(0x204e50, 0x5ad2d0, 0x0, 0x28c088, 0x284d7c, 0x1), at

0x237d8

[100] do_call(0x204e50, 0xffbfed78, 0x1, 0x0, 0x0, 0x5ad2d0), at 0x81b30

(dbx)

Attachments

xapian_solaris_sun_c_build_20060830.txt (4.5 kB) - added by aug04acc 2 years ago.
Description of the fresh build of Python and Xapian with Sun C compiler.
xapian_core_dbx_20060830 (0.8 kB) - added by aug04acc 2 years ago.
dbx core file analysis
xapian_core_pstack_20060830 (2.4 kB) - added by aug04acc 2 years ago.
pstack core file analysis
default-depend.inc (217 bytes) - added by afloe08 5 months ago.
configuration file for "pkgbuild"
Solaris.inc.zip (2.2 kB) - added by afloe08 5 months ago.
configuration file for "pkgbuild"
xapian-core.spec.zip (1.8 kB) - added by afloe08 5 months ago.
.spec file for pkgbuild for xapian-core
xapian-bindings.spec.zip (1.0 kB) - added by afloe08 5 months ago.
.spec file for pkgbuild for xapian-bindings

Change History

Changed 2 years ago by aug04acc

I forgot to mention, build everything with gcc works fine. But it creates issues distributing the binaries to other machines. The behavior is identical on Solaris 9 Sparc and Solaris 10 HW 01/6 x86.

Changed 2 years ago by olly

  • status changed from new to assigned

Could you try to cut this down to something which doesn't involve sqllite or roundup? i.e. just a simple python script using the xapian python bindings.

Changed 2 years ago by trac

  • platform set to Solaris

Changed 2 years ago by aug04acc

Description of the fresh build of Python and Xapian with Sun C compiler.

Changed 2 years ago by aug04acc

dbx core file analysis

Changed 2 years ago by aug04acc

pstack core file analysis

Changed 2 years ago by aug04acc

Calling the example

chmod +x /usr/share/doc/xapian-bindings/python/examples/simpleindex.py

/usr/share/doc/xapian-bindings/python/examples/simpleindex.py dada

creates a core dump. See the details "xapian_solaris_sun_c_build_20060830.txt" how I build it. The analysis of the core file is in the attachments "xapian_core_dbx_20060830" and "xapian_core_pstack_20060830".

Changed 2 years ago by olly

Two initial comments:

./configure --prefix=/usr --without-gcc

There is no "--without-gcc" option (but configure ignores any --with-X, --without-X, --enable-X, or --disable-X which it doesn't recognise so this doesn't give an error).

##- Fix the trailing commas in version.h cp -p include/xapian/version.h include/xapian/version.h.orig sed 's/ ,$//' include/xapian/version.h.orig > include/xapian/version.h

This shouldn't be necessary (and I've just committed a fix) - please report build problems rather than just working around them!

I'm looking at the other files now.

Changed 2 years ago by olly

It's failing trying to assign from a static std::string to a std::string.

I suspect the issue is that the constructors on static objects aren't getting called so the static std::string is never initialised. This should happen when python loads the xapian shared library, but I guess it doesn't when compiled with the Sun C++ compiler. I'm afraid I don't know much about how the Sun C++ compiler handles such things. In this case, we could rework to avoid the static string, but I suspect there other instances we can't easily get rid of.

You could try linking python using the C++ compiler. Or if that doesn't help, perhaps try statically linking Xapian and the SWIG glue into python.

Changed 2 years ago by aug04acc

Thanks for your help. I am currently applying the latest Sun patches for Solaris 10 x86. There are some patches related to the compiler

119964-07 SunOS 5.10_x86: Shared library patch for C++_x86 120759-08 Sun Studio 11_x86: Sun Compiler Common patch for x86 backend 121018-04 Sun Studio 11_x86: Patch for Sun C++ 5.8 compiler 121016-03 Sun Studio 11_x86: Patch for Sun C_x86 5.8 Compiler 121616-02 Sun Studio 11_x86: Patch for Sun dbx 7.5_x86 Debugger 120762-02 Sun Studio 11_x86: Patch for Performance Analyzer Tools

I let you know if this changes things.

You say, the Sun c++ compiler does not correctly initialise constructors for static objects. If I would open a call to Sun service, do you have a small example code that would explain this behavior?

Changed 2 years ago by aug04acc

Updating the system with the mentioned patches did not change the behavior. I re-compiled everthing from scratch and still it core dumps the same way.

Changed 2 years ago by aug04acc

One comment on the work-arounds I used for the build on Solaris 9 or 10. It would be great if the reference to the standard library '-lm' could be included by the configure script. I used

LDFLAGS="-lm"; export LDFLAGS

instead.

Changed 7 months ago by olly

  • description modified (diff)

Does this problem still occur with 1.0.6?

The "-lm" issue should be fixed when we move to libtool 2.2.x (probably with Xapian 1.1.0) as that has better support for Sun C++, including fixing this particular issue.

Changed 5 months ago by olly

  • status changed from assigned to closed
  • resolution set to incomplete
  • description modified (diff)

No feedback from the original reporter for 2 months, so resolving as "incomplete".

Changed 5 months ago by afloe08

configuration file for "pkgbuild"

Changed 5 months ago by afloe08

configuration file for "pkgbuild"

Changed 5 months ago by afloe08

.spec file for pkgbuild for xapian-core

Changed 5 months ago by afloe08

.spec file for pkgbuild for xapian-bindings

Changed 5 months ago by afloe08

This was the feedback given in April 2008 to the status of the reported problem.

The problem is fixed indeed with version 1.0.6. Still '-lm' has to be added, as you mention. This is easily added, but to a rushing user it is an extra burdon.

I compiled the sources on Solaris 9 with Sun Studio 12. This might has helped too, since Sun claims that Sun Studio 12 is more gcc compliant. Since I do not have the knowledge I really can't tell. Basically the compilation is now

PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/sbin:/usr/bin; export PATH CC=cc; export CC CXX=CC; export CXX LDFLAGS="%_ldflags -lm"; export LDFLAGS

./configure --prefix=%{_prefix} \

--bindir=%{_bindir} \ --libdir=%{_libdir} \ --sysconfdir=%{_sysconfdir} \ --includedir=%{_includedir} \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ --disable-static \ --docdir=%{_docdir}/%{name}/ \ --without-gcc \ --enable-shared

make

Details you can find in the attach two .spec files which I have used on Solaris to build the Solaris packages for xapian-core and xapian-bindings. I used pkgbuild, which is a tool developed and used for the JDK on OpenSolaris?. Pkgbuild takes an RPM spec file and produces a Solaris Sys V package, which is quite handy.

Changed 5 months ago by olly

  • status changed from closed to reopened
  • description modified (diff)
  • component changed from Xapian-bindings to Build system
  • priority changed from high to normal
  • milestone set to 1.1.0
  • resolution deleted
  • severity changed from normal to minor

I'd not seen this feedback before - thanks for resending it.

We're going to use libtool 2.2 for Xapian 1.1 which should fix the -lm issue, but I'm reluctant to upgrade the 1.0.x branch to a new major libtool release at this point in the release cycle.

It would probably be useful to other users if we could make these build files available, but they say they are (C) Sun with no licence so we can't really assume we are able to distribute them. I think the references to Gnome need replacing too, but I'm not sure what section the package should have as I don't know what the available values are.

"--without-gcc" doesn't mean anything to our configure scripts incidentally, but it will just be ignored, so it's not harmful.

Changed 6 weeks ago by afloe08

Sorry for the late reply. But I was on vacation and then quite busy.

I did contact Sun about the copyrights in the spec or inc files. Their reply was, since those files are on the openSolaris repository they are free software under the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) and an OSI-approved open source license. Any removal of Copyright or the reference to GNOME, JDK, etc. they didn't want to accept.

Since the '.inc' are created in the context of the JDK desktop (GNOME-based) those files have the reference to this environment as you have seen.

To give you a chance to publish those files without those copyrights and reference, I have created '.spec'-files which are without any reference to the JDK environment. Those are limited adapted for x86 Solaris. The compile and linker options for SPARC would be different. In the file "installing_build_xapian_solaris10.txt" I explain how I did set up a Solaris 10 05/8 x86 machine with Studio 12. Furthermore it includes the building and installation of pkgbuild (the building tool for .spec files) and the building and installation of xapian.

I have also added a howto for your wiki. Since I didn't know exactly where and how to add a new wiki page (it does not fit as a FAQ), I just add it here in case you want to use it.

The mentioned information I have sent to nobody@…. I don't see how I can add attachment in this interface.

Note: See TracTickets for help on using tickets.