[Monetdb-developers] MonetDB4 server (Mserver) crash on solaris 10

Stefan Manegold Stefan.Manegold at cwi.nl
Tue Sep 18 00:56:30 CEST 2007


Hi "xxiao",

thank you very much for being interested in MonetDB ;-)

Does the Mserver crash immediately at start-up?

Then, it most probably is not caused by a full disk but by some problem in
the code in combination with the system (solaris 10 SPARC), hardware and/or
compiler you're using.

Unfortunately, our access to a Solaris 10 SPARC machine is very limited
(it's just an old and "slow" 400Mhz CPU), hence, we cannot run regular
testing on that platform and thus do not "officially" support it right now.

However I happend to have a debug-able build (i.e., configures with
--disable-optimize and --enable-debug) of the development version (MonetDB
4.19) lying around, and indeed I get the same segfault at Mserver start-up:
========
$ gdb Mserver
--------
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.10"...
(gdb) r
Starting program: /ufs/manegold/Monet/Current/prefix.--enable-strict_--disable-optimize_--enable-debug_MAKE~gmake/bin/Mserver 
warning: Temporarily disabling breakpoints for unloaded shared library "/usr/lib/ld.so.1"
warning: Lowest section in /lib/libpthread.so.1 is .dynamic at 00000074
warning: Lowest section in /lib/libdl.so.1 is .dynamic at 00000094
[New LWP 1]
[New LWP 2]
# MonetDB Server v4.19.0
# based on GDK   v1.19.0
# Copyright (c) 1993-2007, CWI. All rights reserved.
# Compiled for sparc-sun-solaris2.10/32bit with 32bit OIDs; dynamically linked.
# Visit http://monetdb.cwi.nl/ for further information.

Program received signal SIGSEGV, Segmentation fault.
0xfefc0a24 in yyparse () at monet_parse.y:776
776                     t2->yyval = t1->yyval;
(gdb) li
771                     $$ = $2;
772             }
773         |   command_or_operator argument_list
774             {
775                     YYSTREE t1 = $1, t2 = $2;
776                     t2->yyval = t1->yyval;
777                     t2->token = t1->token == TOK_ASSIGNOP ? TOK_ASSIGNOP : TOK_FUNCTION;
778                     t1->yyval.vtype = TYPE_void;
779                     $$ = t2;
780             }
(gdb) print t1->yyval
$1 = {val = {ival = 154896, oval = 154896, shval = 2, btval = 0 '\0', wval = 154896, cval = "\000\002]\020", fval = 2.17055527e-40, pval = 0x25d10, Bval = 0x25d10, bval = 154896, br = {id = 154896, stamp = 0}, sval = 0x25d10 "module_push", 
    dval = 3.2868866003735682e-309, lval = 665273254281216}, len = 12, vtype = 13}
(gdb) print t2->yyval
$2 = {val = {ival = 0, oval = 0, shval = 0, btval = 0 '\0', wval = 0, cval = "\000\000\000", fval = 0, pval = 0x0, Bval = 0x0, bval = 0, br = {id = 0, stamp = 0}, sval = 0x0, dval = 0, lval = 0}, len = 0, vtype = 9}
(gdb) 
========

Unfortunately, even with the above initial debugging session I cannot
(yet??) see, why the segfault occurs. The data/memory accessed in the line
reported by the debugger appears perfectly sound to me...

We'll try to investigate this further; however, given the limited access to
a respective machine (and it's poor performance), I cannot promise you,
whether/when we will be able to locate and fix the bug --- I actually do not
even know, whether it is a bug in our code, or possibly a bug in (e.g.) the
compiler?
Btw, which compiler (and version) are you using?
I'm using GNU gcc 4.2.0 (in fact the Gentoo version ...).

In the meantime --- and unless you're (only) interested in MonetDB/XQuery,
which currectly requires MonetDB version 4 you might wnat to try MonetDB
version 5. At least for me, mserver5 does start withou problems also on
Solaris 10 SPARC (didn't do any further testing than starting the server
though ...).
If you try mserver5, please keep us posted whether it works for you, or
whether you encounter any problems.

Kind regards,
Stefan


On Mon, Sep 17, 2007 at 01:51:35PM -0700, xxiao wrote:
> 
> hi, 
> 
> I built MonetDB4 server on a solaris 10 SPARC machine. 
> When I try to execute it, the server applciation crashed and posted the
> following error message:
> 
> >Mserver 
> # Monet Database Server V4.18.2
> # Copyright (c) 1993-2007, CWI. All rights reserved.
> # Compiled for sparc-sun-solaris2.10/32bit with 32bit OIDs; dynamically
> linked.
> # Visit http://monetdb.cwi.nl/ for further information.
> !ERROR: BATSIGcrash: Mserver internal error (Bus error), please restart.
> !ERROR: (One potential cause could be that your disk might be full...)
> 
> the machine configuration is:
> 
> >uname -a
> SunOS vlsi 5.10 Generic_118833-33 sun4u sparc SUNW,Sun-Fire-480R Solaris
> 
> Is the crash really due to that the disk is full? And can someone give me a
> hint how I can trace my problems? 
> 
> Thanks a lot.

-- 
| Dr. Stefan Manegold | mailto:Stefan.Manegold at cwi.nl |
| CWI,  P.O.Box 94079 | http://www.cwi.nl/~manegold/  |
| 1090 GB Amsterdam   | Tel.: +31 (20) 592-4212       |
| The Netherlands     | Fax : +31 (20) 592-4312       |




More information about the developers-list mailing list