Opened 10 years ago

Closed 8 years ago

Last modified 8 years ago

#613 closed defect (fixed)

smoketest.php fails on Solaris

Reported by: Dagobert Michelsen Owned by:
Priority: normal Milestone: 1.2.19
Component: Xapian-bindings (PHP) Version: 1.2.13
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Operating System: Solaris

Description

The test smoketest.php from xapian-bindings dumps core when compiling against PHP 5.3.15:

dam@unstable10s [unstable10s]:/home/dam/mgar/pkg/xapian-bindings/trunk/work/solaris10-sparc/build-isa-sparcv8plus/xapian-bindings-1.2.13/php > pstack core 
core 'core' of 9781:    /opt/csw/php5/bin/php -n -d safe_mode=off -d enable_dl=on -d extension
 fe823850 mutex_lock_impl (fef42a00, 0, 7ebf4, 0, 8, ff) + 68
 ff268aec __1cDstdJbasic_ios4Ccn0ALchar_traits4Cc___Einit6Mpn0APbasic_streambuf4Ccn0B____v_ (ff36a1e8, 0, 0, 8, ff36461c, ff36461c) + 60
 fd075a3c __1cDstdIios_baseN_S_initialize6F_v_ (ff36a1d8, 1, 0, ff36a1e0, fd0c61c4, fd0c0688) + 9c
 fd2fa274 __SLIP.INIT_B (fd1b7a74, fd3d56b8, ffe8f5f0, dac00, 17471, 17400) + 24
 fd31d404 _init    (0, 1, fef42a00, ff3fa984, 1, ff3fd4a0) + 128
 ff3c4cd8 call_init (ff1c1518, 1, 1081, fd31d2dc, 0, fecc0840) + 128
 ff3caefc dlmopen_intn (ff1c0fa0, 10000, f01, 10000, 0, 0) + 214
 ff3cb040 dlopen   (ac5150, f01, ff3fa164, 894288, 2f, 1) + 2c
 0029c5e0 php_load_extension (878ef0, 2, 0, 1, 0, 1) + 1b4
 0029c958 php_dl   (878ef0, 2, ac4d90, 0, 80808080, 1010101) + c
 0029c3ec zif_dl   (1, ac4d90, 0, 0, 47ad0, 799e58) + 158
 0049f7b0 ???????? (9666c0, 0, 108, a292f8, 95f6d8, 0)
 0049f004 execute  (878f98, 9666c0, ffffffff, 0, 7c8ae4, 82aa38) + 284
 00445304 zend_execute_scripts (8, 0, 2, ffbfe8c0, 829760, 7c8ae4) + 100
 0037da20 php_execute_script (62618, 82a810, 62618, 7c8ae4, 1, ffbff418) + 360
 004ea308 main     (0, fffefb1c, 0, 10400, 1, 1) + 14e8
 0003ca68 _start   (0, 0, 0, 0, 0, 0) + 108

dam@unstable10s [unstable10s]:/home/dam/mgar/pkg/xapian-bindings/trunk/work/solaris10-sparc/build-isa-sparcv8plus/xapian-bindings-1.2.13/php > pldd core
core 'core' of 9781:    /opt/csw/php5/bin/php -n -d safe_mode=off -d enable_dl=on -d extension
/usr/lib/libCstd.so.1
/opt/csw/lib/libz.so.1.2.7
/usr/lib/libcrypt_d.so.1
/opt/csw/lib/libexpat.so.1.6.0
/lib/libresolv.so.2
/lib/librt.so.1
/lib/libm.so.2
/lib/libnsl.so.1
/lib/libsocket.so.1
/opt/csw/lib/libxml2.so.2.7.8
/opt/csw/lib/libiconv.so.2.5.1
/usr/lib/libCrun.so.1
/lib/libdl.so.1
/opt/csw/lib/libicui18n.so.49.1.2
/opt/csw/lib/libicuuc.so.49.1.2
/opt/csw/lib/libicudata.so.49.1.2
/opt/csw/lib/libicuio.so.49.1.2
/lib/libc.so.1
/lib/libgen.so.1
/lib/libaio.so.1
/lib/libmd.so.1
/lib/libpthread.so.1
/opt/csw/lib/sparcv8plus+vis/libz.so.1.2.7
/lib/libm.so.1
/usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
/platform/sun4v/lib/libc_psr.so.1
/home/dam/mgar/pkg/xapian-bindings/trunk/work/solaris10-sparc/build-isa-sparcv8plus/xapian-bindings-1.2.13/php/.libs/xapian.so
/opt/csw/lib/libxapian.so.22.6.0
/opt/csw/lib/libstlport.so.1
dam@unstable10s [unstable10s]:/home/dam/mgar/pkg/xapian-bindings/trunk/work/solaris10-sparc/build-isa-sparcv8plus/xapian-bindings-1.2.13/php > 

Change History (10)

comment:1 by Olly Betts, 10 years ago

That looks like it's crashing in C++ standard library initialisation.

Is this only for the smoketest, or does any PHP script using xapian fail?

Did this work with previous versions with this compiler?

comment:2 by Dagobert Michelsen, 10 years ago

In fact I don't know. I enabled the PHP binding just recently and don't use it myself but provide it as a courtesy to users of my produced package. Is there anything I could test easily manually?

comment:3 by Olly Betts, 10 years ago

Aside: If you're building binary packages to distribute, you probably don't want to build the PHP bindings, as built binaries probably aren't currently legally distributable due to GPL/PHP licence incompatibility. Source packages or build scripts (like BSD ports or Gentoo ebuilds) are probably OK.

It looks to me like this toolchain isn't coping with a C program (i.e. PHP's php5 command line interpreter) dynamically loading a C++ plugin (i.e. the Xapian PHP bindings xapian.so), though if the other bindings work, it clearly isn't quite as simple as that.

I would suggest you try installing the bindings (make install), and then run the smoketest using the installed bindings - this will probably work:

php5 -d safe_mode=off -d enable_dl=on smoketest.php

If that doesn't work/help, you could try telling PHP to load the module at startup by adding this line to the [PHP] section of the appropriate php.ini:

extension=xapian.so

And then just use:

php5 smoketest.php

comment:4 by Olly Betts, 9 years ago

Did you get a chance to try what I suggested in comment:3?

comment:5 by Dagobert Michelsen, 9 years ago

Sorry, I got distracted, I'll try the update to 1.3.1 and then follow up on this issue.

comment:6 by Olly Betts, 9 years ago

Milestone: 1.3.x

comment:7 by Olly Betts, 8 years ago

It's possible this is fixed by r18247.

comment:8 by Olly Betts, 8 years ago

Summary: Failed test smoketest.phpsmoketest.php fails on Solaris

There have been some other fixes since my last comment, so trying 1.3.2 would be useful.

comment:9 by Olly Betts, 8 years ago

Milestone: 1.3.x1.2.19
Resolution: fixed
Status: newclosed

I tested 1.2.20 on the opencsw unstable10s machine and the test passes - I assume this is the same bug as #652, and so was actually fixed in 1.2.19.

1.2.20 needed a couple of tweaks to build with Sun's compiler, will commit those to master and backport for 1.2.21.

comment:10 by Dagobert Michelsen, 8 years ago

Hi Olly,

thanks for having an eye on fixing this issue. I'll give it a try next time I update our packages.

Thanks and best regards -- Dago

Note: See TracTickets for help on using tickets.