FTBFS for virtuoso-opensource on SPARC

Obey Arthur Liu arthur at milliways.fr
Sun Mar 14 23:43:46 UTC 2010


Hi all,

I am the maintainer of virtuoso-opensource[1], a newly packaged
semantic database on which new versions of KDE will depend.
It is therefore important to get it to build on all architectures[2].
I have so far squashed issues on kfreebsd-* and armel but hurd-i386
and sparc are still problematic.
While the hurd-i386 problems are probably too deep right now for a
fix, I believe sparc can be fixed.

I suspect it is a memory alignment issue, similarly to the armel
fix[3], although my attempts at fixing them
similarly[ftbfs-sparc.patch attached] have not been successful yet.

Here's the crash without any patching (full backtrace further below):
Program received signal SIGBUS, Bus error.
sequence_next_inc_1 (name=0x1391148 "RDF_PREF_SEQ", in_map=0,
inc_by=1, err_ret=0x0) at regist.c:714
714             res = (*place);
Location[4].

Here's how to reproduce the crash:
dchroot sid # as needed
dget http://www.milliways.fr/debian/packages/virtuoso/virtuoso-opensource_6.1.0+dfsg2-2.dsc
dpkg-source -x virtuoso-opensource_6.1.0+dfsg2-2.dsc
cd virtuoso-opensource-6.1.0+dfsg2
# We want to enable debug symbols by adding --with-debug to the ./configure
sed -i 's/\(zlib$\)/\1 --with-debug/' debian/rules
dpkg-buildpackage -us -uc -d

After a while, you should see:
Waiting Virtuoso Server start on port 1111...
Waiting Virtuoso Server start on port 1111...
Waiting Virtuoso Server start on port 1111...
Just Ctrl-C the build. It has already crashed by this point.

Now, to reproduce the crash:
cd binsrc/rdf_mappers
rm vad.db
# This should crash:
../virtuoso/virtuoso-t +wait +foreground +debug +configfile virtuoso.ini
# Now to make it crash again, wipe the database and run it again under gdb:
rm vad.db
gdb --args ../virtuoso/virtuoso-t +wait +foreground +debug +configfile
virtuoso.ini


Full backtrace:
(gdb) bt
#0  sequence_next_inc_1 (name=0x1391148 "RDF_PREF_SEQ", in_map=0,
inc_by=1, err_ret=0x0) at regist.c:714
#1  0x001e737c in tb_new_id_and_name (lt=0xa48290, itc=0xffe81d98, tb=0x133a528,
    name=0x1391318 "http://www.w3.org/2002/07/owl#",
value_seq_name=0x4d0870 "RDF_PREF_SEQ") at rdf_core.c:1629
#2  0x001e7690 in tb_name_to_id (lt=0xa48290, tb_name=0x4d0848
"DB.DBA.RDF_PREFIX",
    name=0x1391318 "http://www.w3.org/2002/07/owl#",
value_seq_name=0x4d0870 "RDF_PREF_SEQ") at rdf_core.c:1747
#3  0x001e87e4 in key_name_to_iri_id_1 (lt=0xa48290, name=0xe36268
"http://www.w3.org/2002/07/owl#sameAs", make_new=1)
    at rdf_core.c:1882
#4  0x001ea6e0 in iri_to_id (qst=0x1391208, name=0xe36268
"http://www.w3.org/2002/07/owl#sameAs", mode=1, err_ret=0xffe82b3c)
    at rdf_core.c:2248
#5  0x001eab74 in bif_iri_to_id (qst=0x1391208, err_ret=0xffe82ba4,
args=0x13b2898) at rdf_core.c:2281
#6  0x0016e094 in ins_call_bif (ins=0x1391190, qst=0x1391208,
code_vec=0x1391190) at sqlintrp.c:285
#7  0x00172db4 in code_vec_run_1 (code_vec=0x1391190, qst=0x1391208,
offset=0) at sqlintrp.c:2004
#8  0x00198144 in qn_input (xx=0x1266980, inst=0x1391208,
state=0x1391208) at sqlrun.c:682
#9  0x0019ca14 in qr_exec (cli=0xa46a98, qr=0x1390d50, caller=0x1,
cr_name=0x0, stmt=0x0, lc_ret=0xffe82f5c, parms=0x130dd70,
    opts=0x0, named_params=1) at sqlrun.c:3172
#10 0x0019d304 in qr_quick_exec (qr=0x1390d50, cli=0xa46a98,
id=0x5a1e58 "", lc_ret=0xffe82f5c, n_pars=<value optimized out>)
    at sqlrun.c:3727
#11 0x001ee6c0 in sas_init () at rdfinf.c:999
#12 0x001e80ac in rdf_core_init () at rdf_core.c:3293
#13 0x001a6524 in srv_global_init (mode=0x5a1e58 "") at sqlsrv.c:3844
#14 0x000480d4 in main (argc=6, argv=0x9bcd30) at viunix.c:657

Note that the build system is quite horrible, but the following
incantation should approximate an incremental compilation for any
edited files under libsrc/Wi/:
$ cd libsrc/Wi/ && make clean && cd ../..


If you have an easy fix for this, I'd be very grateful.
If there's none, I'll escalate to upstream in a few days.

I'm not subscribed to debian-sparc@ but I'm on
pkg-virtuoso-maintainers@ (cc'ed).

Cheers

Arthur


[1] <http://packages.qa.debian.org/v/virtuoso-opensource.html>
[2] <https://buildd.debian.org/pkg.cgi?pkg=virtuoso-opensource>
[3] <https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=pkg-virtuoso/pkg-virtuoso.git;a=blob;f=debian/patches/ftbfs-armel.patch;h=537d80cbadcee6ff1989423996ee56081bfecf16;hb=e6e9276c42ee01dcc3436fe72f73000cb0e28f69>
[4] <https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=pkg-virtuoso/pkg-virtuoso.git;a=blob;f=libsrc/Wi/regist.c;h=3a806cf5b4da627f0828f8702f1aa540af957223;hb=HEAD#l714>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ftbfs-sparc.patch
Type: text/x-patch
Size: 1793 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-virtuoso-maintainers/attachments/20100315/aa9bac18/attachment.bin>


More information about the Pkg-virtuoso-maintainers mailing list