Bugs item #2567316, was opened at 2009-02-05 09:05
Message generated for change (Comment added) made by stmane
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=482468&aid=2567316&group_id=56967
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Core
Group: MonetDB5 "stable"
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Floris Ouwendijk (floris233)
Assigned to: Nobody/Anonymous (nobody)
Summary: Segfault after long period of use
Initial Comment:
After a few days of testing the server terminates with a segfault. This
happened more than once. This time I was able to capture a stack trace of the
moment the problem occurs.
The system is a 64bit Fedora Core 6 machine. Monet is adaily build from
2008-12-11
The following is the stack, plus per stack element a listing:
...
[New Thread 47195725654336 (LWP 406)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47195725654336 (LWP 406)]
0x00002aaab876c549 in CMDmposjoin (res=0x2aec9c757510, pre=0x2ac1f33e65d0,
cont=0x2ac202654b88, ws_item=0x2ad0a15f34d8) at pf_support.c:9886
9886 fake_item = is_fake_project(batlist[ii]);
(gdb) bt
#0 0x00002aaab876c549 in CMDmposjoin (res=0x2aec9c757510, pre=0x2ac1f33e65d0,
cont=0x2ac202654b88, ws_item=0x2ad0a15f34d8) at pf_support.c:9886
#1 0x00002aaab873d097 in CMDmposjoin_unpack2001592764 (argc=4,
argv=0x2aec9c757510) at pf_support.glue.c:318
#2 0x00002aaaabbfed97 in interpret (stk=2458, lt=0x2ac66766a6f8,
res=0x2aec9c757a20) at monet_interpreter.c:1070
#3 0x00002aaaabbfb8a7 in interpret_params (stk=2458, lt=0x2ac66766a698,
params=0x2aec9c757c50, fcn_nme=0x8f61b8 "mposjoin") at monet_interpreter.c:282
#4 0x00002aaaabbfddd3 in interpret (stk=2458, lt=0x2ac66766a678,
res=0x2aec9c764e10) at monet_interpreter.c:884
#5 0x00002aaaabc095cf in interpret_assignment (stk=2458, lt=0x2ac66766a628,
res=0x2aec9c764e10) at monet_interpreter.c:2152
#6 0x00002aaaabbfc900 in interpret (stk=2458, lt=0x2ac66766a628,
res=0x2aec9c764e10) at monet_interpreter.c:638
#7 0x00002aaaabc098ce in interpret_seqblock (stk=2458, lt=0x2ac66766a5d8,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
#8 0x00002aaaabbfc991 in interpret (stk=832, lt=0x2ac66766a5d8,
res=0x2aec9c764e10) at monet_interpreter.c:654
#9 0x00002aaaabbfcb15 in interpret (stk=832, lt=0x2ac66766a4b8,
res=0x2aec9c764e10) at monet_interpreter.c:683
#10 0x00002aaaabbfcbb0 in interpret (stk=832, lt=0x2ac2013d8748,
res=0x2aec9c764e10) at monet_interpreter.c:696
#11 0x00002aaaabbfcbb0 in interpret (stk=832, lt=0x2ac66767cd08,
res=0x2aec9c764e10) at monet_interpreter.c:696
#12 0x00002aaaabc098ce in interpret_seqblock (stk=832, lt=0x2ac66785f8c8,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
#13 0x00002aaaabbfc991 in interpret (stk=3658, lt=0x2ac66785f8c8,
res=0x2aec9c764e10) at monet_interpreter.c:654
#14 0x00002aaaabbfcb15 in interpret (stk=3658, lt=0x2ac66785f7a0,
res=0x2aec9c764e10) at monet_interpreter.c:683
#15 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2abad4ba18f8,
res=0x2aec9c764e10) at monet_interpreter.c:696
#16 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac6672d4248,
res=0x2aec9c764e10) at monet_interpreter.c:696
#17 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac34d4b9328,
res=0x2aec9c764e10) at monet_interpreter.c:696
#18 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad085319508,
res=0x2aec9c764e10) at monet_interpreter.c:696
#19 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac2017071f8,
res=0x2aec9c764e10) at monet_interpreter.c:696
#20 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac2022fd538,
res=0x2aec9c764e10) at monet_interpreter.c:696
#21 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad0a0d84e28,
res=0x2aec9c764e10) at monet_interpreter.c:696
#22 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad500d348e8,
res=0x2aec9c764e10) at monet_interpreter.c:696
#23 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac2024e21c8,
res=0x2aec9c764e10) at monet_interpreter.c:696
#24 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad7b66f07c8,
res=0x2aec9c764e10) at monet_interpreter.c:696
#25 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad0a0d80e38,
res=0x2aec9c764e10) at monet_interpreter.c:696
#26 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac65e984a68,
res=0x2aec9c764e10) at monet_interpreter.c:696
#27 0x00002aaaabc098ce in interpret_seqblock (stk=3658, lt=0x341b7788,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
#28 0x00002aaaabbfc991 in interpret (stk=3613, lt=0x341b7788,
res=0x2aec9c764e10) at monet_interpreter.c:654
#29 0x00002aaaabc098ce in interpret_seqblock (stk=3613, lt=0x2ad08507f598,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
#30 0x00002aaaabbfc991 in interpret (stk=1573, lt=0x2ad08507f598,
res=0x2aec9c764e10) at monet_interpreter.c:654
#31 0x00002aaaabbfe72c in interpret (stk=1573, lt=0x2ad0a0d283d8,
res=0x2aec9c764e10) at monet_interpreter.c:1044
#32 0x00002aaaabc095cf in interpret_assignment (stk=1573, lt=0x2ac201b44308,
res=0x2aec9c764e10) at monet_interpreter.c:2152
#33 0x00002aaaabbfc900 in interpret (stk=1573, lt=0x2ac201b44308,
res=0x2aec9c764e10) at monet_interpreter.c:638
#34 0x00002aaaabc098ce in interpret_seqblock (stk=1573, lt=0x2ac201b44288,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
#35 0x00002aaaabbfc991 in interpret (stk=19, lt=0x2abad4c284d0,
res=0x2aec9c764e10) at monet_interpreter.c:654
#36 0x00002aaaab1a276b in CMDcatch (stk=19, lt=0x2abad4c284a8,
res=0x2aec9c764e10) at builtin.c:1065
#37 0x00002aaaabbfd551 in interpret (stk=19, lt=0x2abad4c284a8,
res=0x2aec9c764e10) at monet_interpreter.c:808
#38 0x00002aaaabc095cf in interpret_assignment (stk=19, lt=0x2ac667509dc8,
res=0x2aec9c764e10) at monet_interpreter.c:2152
#39 0x00002aaaabbfc900 in interpret (stk=19, lt=0x2ac667509dc8,
res=0x2aec9c764e10) at monet_interpreter.c:638
#40 0x00002aaaabc098ce in interpret_seqblock (stk=19, lt=0x2ad05e51af58,
res=0x2aec9c764e10, scope=0) at monet_interpreter.c:2200
#41 0x00002aaaabbfc991 in interpret (stk=19, lt=0x2ad083b04b48,
res=0x2aec9c764e10) at monet_interpreter.c:654
#42 0x00002aaab9babd35 in xquery_tree_exec (ctx=0x2ab6378f5ea8,
t=0x2ad083b04b48, repeat=0) at pathfinder.c:239
#43 0x00002aaab9bac296 in xquery_mil_exec (ctx=0x2ab6378f5ea8,
buf=0x2ac31d5f4e40 "var tijah_scoreDB;\nvar tijah_ftiTape;\nvar
xrpc_qid;\nvar xrpc_caller;\nvar xrpc_hdl;\nvar xrpc_seqnr;\nvar
xrpc_timeout;\nvar xrpc_mode;\nvar xrpc_module;\nvar xrpc_method;\nxrpc_qid :=
\"\";\nxrpc_caller := \"\";"...) at pathfinder.c:297
#44 0x00002aaab9bacbe7 in xquery_compile_exec (ctx=0x2ab6378f5ea8, options=2,
xquery=0x2ab6345f7719 "element job {attribute tool
{\"carving/headerfinder-tool\"},attribute project { \"fileset2\"}, for
$xirafNode in subsequence( for $xirafIter in
(\n\t\t\tdoc(\"fileset2.xml\")//volume[not(.//filesystem)]\n\t\t\tunio"...,
is_url=0, prologue=0x2aec9c765330, query=0x2aec9c765328,
epilogue=0x2aec9c765320, module=0x0) at pathfinder.c:445
#45 0x00002aaab9bb2cf0 in xquery_prepare (ctx=0x2ab6378f5ea8, usec=659415161738,
query=0x2ab6345f7719 "element job {attribute tool
{\"carving/headerfinder-tool\"},attribute project { \"fileset2\"}, for
$xirafNode in subsequence( for $xirafIter in
(\n\t\t\tdoc(\"fileset2.xml\")//volume[not(.//filesystem)]\n\t\t\tunio"...) at
pathfinder.c:2258
#46 0x00002aaab9bb3326 in xquery_client_engine (mc=0x2aaaba3177f8) at
pathfinder.c:2405
#47 0x00002aaaba112f6a in mapi_client_engine (FC=0x2aaaba3177f8) at mapi.c:316
#48 0x00000036644062f7 in start_thread () from /lib64/libpthread.so.0
#49 0x00000036638ce86d in clone () from /lib64/libc.so.6
#50 0x0000000000000000 in ?? ()
(gdb) list
9881
9882 {
9883 bit fake_item = FALSE;
9884 bat bid = *(bat*)Tloc(ws_item, pw);
9885 batlist[ii] = BATdescriptor(bid);
9886 fake_item = is_fake_project(batlist[ii]);
9887 fake_ws_item |= fake_item;
9888 if (!(fake_item || BAThdense(batlist[ii]))) {
9889 GDKerror("mposjoin: all BATs in the tail of the
third input BAT (ws_item) must have a dense head.\n");
9890 ii++;
(gdb) up
#1 0x00002aaab873d097 in CMDmposjoin_unpack2001592764 (argc=4,
argv=0x2aec9c757510) at pf_support.glue.c:318
318 if (!CMDmposjoin(
(gdb) list
313 }
314 argv[0].vtype = TYPE_bat;
315 argv[0].len = 0;
316 argv[0].val.bval = 0;
317
318 if (!CMDmposjoin(
319 &argv[0].val.Bval,
320 BBPdescriptor(argv[1].val.bval),
321 BBPdescriptor(argv[2].val.bval),
322 BBPdescriptor(argv[3].val.bval))
(gdb) up
#2 0x00002aaaabbfed97 in interpret (stk=2458, lt=0x2ac66766a6f8,
res=0x2aec9c757a20) at monet_interpreter.c:1070
1070 i = (*sig->pack_fcn) (argc, argv);
(gdb) list
1065 }
1066 if (!interpret_params_pin(argc, argv, fcn_nme)) {
1067 return -1;
1068 }
1069 if (sig->token == TOK_COMMAND) {
1070 i = (*sig->pack_fcn) (argc, argv);
1071 *res = argv[0];
1072 CATCHVAL(stk, opcache, res);
1073 CATCHERR(stk, opcache, res, i, ((YYSTREE)
sig->pack_fcn));
1074
(gdb) up
#3 0x00002aaaabbfb8a7 in interpret_params (stk=2458, lt=0x2ac66766a698,
params=0x2aec9c757c50, fcn_nme=0x8f61b8 "mposjoin") at monet_interpreter.c:282
282 if (interpret(stk, tt, &res) < 0) {
(gdb) list
277 }
278 if (tt->token == TOK_RANGETEMP) {
279 tt = tt->yysons[0];
280 param_range = 1;
281 }
282 if (interpret(stk, tt, &res) < 0) {
283 GDKerror("interpret_params: %s(param
%d): evaluation error.\n", fcn_nme, j + 1);
284 return -argc;
285 }
286 if (param_range) {
(gdb) up
#4 0x00002aaaabbfddd3 in interpret (stk=2458, lt=0x2ac66766a678,
res=0x2aec9c764e10) at monet_interpreter.c:884
884 argc = interpret_params(stk, lt->yysons[0], argv,
fcn_nme);
(gdb) list
879
880 /* PROCs attach the argv storage to the tree so they
can keep pointing to it across iterations */
881 if (opcache->yyval.vtype == TYPE_str) {
882 argv = opcache->yyval.val.pval;
883 }
884 argc = interpret_params(stk, lt->yysons[0], argv,
fcn_nme);
885 res->vtype = TYPE_void;
886 res->val.oval = void_nil;
887 if (argc < 0)
888 return -1;
(gdb) up
#5 0x00002aaaabc095cf in interpret_assignment (stk=2458, lt=0x2ac66766a628,
res=0x2aec9c764e10) at monet_interpreter.c:2152
2152 i = interpret(stk, arg(lt, 1), res);
(gdb) list
2147 }
2148
2149
2150
2151
2152 i = interpret(stk, arg(lt, 1), res);
2153
2154
2155 if (act && act->frozen && value->vtype != res->vtype) {
2156 GDKerror("interpret_assignment: cannot change type of
frozen variable '%s'\n", act->name);
(gdb) up
#6 0x00002aaaabbfc900 in interpret (stk=2458, lt=0x2ac66766a628,
res=0x2aec9c764e10) at monet_interpreter.c:638
638 r = interpret_assignment(stk, lt, res);
(gdb) list
633
634
635
636 return 0;
637 case TOK_ASSIGNMENT:
638 r = interpret_assignment(stk, lt, res);
639
640 #ifdef HAVE_TIMES
641 if (profilemode) {
642 lng nc = GDKusec();
(gdb) up
#7 0x00002aaaabc098ce in interpret_seqblock (stk=2458, lt=0x2ac66766a5d8,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
2200 r = interpret(stk, lt->yysons[i], res);
(gdb) list
2195 CNTXTuse(stk);
2196 }
2197 for (; lt; lt = YYOVERFLOW(lt)) {
2198 for (i = 0; i < lt->cnt; i++)
2199 if (lt->yysons[i]) {
2200 r = interpret(stk, lt->yysons[i], res);
2201 CLEANUP(lt->yysons[i]);
2202 if (r < 0)
2203 goto xit;
2204 }
(gdb) up
#8 0x00002aaaabbfc991 in interpret (stk=832, lt=0x2ac66766a5d8,
res=0x2aec9c764e10) at monet_interpreter.c:654
654 return interpret_seqblock(stk, lt, res, i);
(gdb) list
649 return r;
650 case TOK_SEQBLOCK:
651 i = 1;
652 /* fall through */
653 case TOK_SEQ:
654 return interpret_seqblock(stk, lt, res, i);
655 case TOK_PARBLOCK:
656 return interpret_parblock(stk, lt, 1);
657 case TOK_PAREND:
658 return 0;
(gdb) up
#9 0x00002aaaabbfcb15 in interpret (stk=832, lt=0x2ac66766a4b8,
res=0x2aec9c764e10) at monet_interpreter.c:683
683 r = interpret(stk, arg(lt, 1), res);
(gdb) list
678 } else if (res->val.cval[0] == bit_nil) {
679 GDKerror("interpret: if bit(nil): don't
know what to do!\n");
680 return -1;
681 }
682 if (res->val.cval[0]) {
683 r = interpret(stk, arg(lt, 1), res);
684
685 #ifdef HAVE_TIMES
686 if (profilemode) {
687 lng nc = GDKusec();
(gdb) up
#10 0x00002aaaabbfcbb0 in interpret (stk=832, lt=0x2ac2013d8748,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#11 0x00002aaaabbfcbb0 in interpret (stk=832, lt=0x2ac66767cd08,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#12 0x00002aaaabc098ce in interpret_seqblock (stk=832, lt=0x2ac66785f8c8,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
2200 r = interpret(stk, lt->yysons[i], res);
(gdb) list
2195 CNTXTuse(stk);
2196 }
2197 for (; lt; lt = YYOVERFLOW(lt)) {
2198 for (i = 0; i < lt->cnt; i++)
2199 if (lt->yysons[i]) {
2200 r = interpret(stk, lt->yysons[i], res);
2201 CLEANUP(lt->yysons[i]);
2202 if (r < 0)
2203 goto xit;
2204 }
(gdb) up
#13 0x00002aaaabbfc991 in interpret (stk=3658, lt=0x2ac66785f8c8,
res=0x2aec9c764e10) at monet_interpreter.c:654
654 return interpret_seqblock(stk, lt, res, i);
(gdb) list
649 return r;
650 case TOK_SEQBLOCK:
651 i = 1;
652 /* fall through */
653 case TOK_SEQ:
654 return interpret_seqblock(stk, lt, res, i);
655 case TOK_PARBLOCK:
656 return interpret_parblock(stk, lt, 1);
657 case TOK_PAREND:
658 return 0;
(gdb) up
#14 0x00002aaaabbfcb15 in interpret (stk=3658, lt=0x2ac66785f7a0,
res=0x2aec9c764e10) at monet_interpreter.c:683
683 r = interpret(stk, arg(lt, 1), res);
(gdb) list
678 } else if (res->val.cval[0] == bit_nil) {
679 GDKerror("interpret: if bit(nil): don't
know what to do!\n");
680 return -1;
681 }
682 if (res->val.cval[0]) {
683 r = interpret(stk, arg(lt, 1), res);
684
685 #ifdef HAVE_TIMES
686 if (profilemode) {
687 lng nc = GDKusec();
(gdb) up
#15 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2abad4ba18f8,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#16 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac6672d4248,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#17 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac34d4b9328,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#18 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad085319508,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
#19 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac2017071f8,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#20 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac2022fd538,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#21 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad0a0d84e28,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#22 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad500d348e8,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#23 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac2024e21c8,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#24 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad7b66f07c8,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#25 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ad0a0d80e38,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb) up
#26 0x00002aaaabbfcbb0 in interpret (stk=3658, lt=0x2ac65e984a68,
res=0x2aec9c764e10) at monet_interpreter.c:696
696 r = interpret(stk, arg(lt, 2), res);
(gdb) list
691
692
693
694 return r;
695 } else if (lt->cnt == 3) {
696 r = interpret(stk, arg(lt, 2), res);
697
698 #ifdef HAVE_TIMES
699 if (profilemode) {
700 lng nc = GDKusec();
(gdb)
(gdb) up
#27 0x00002aaaabc098ce in interpret_seqblock (stk=3658, lt=0x341b7788,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
2200 r = interpret(stk, lt->yysons[i], res);
(gdb) list
2195 CNTXTuse(stk);
2196 }
2197 for (; lt; lt = YYOVERFLOW(lt)) {
2198 for (i = 0; i < lt->cnt; i++)
2199 if (lt->yysons[i]) {
2200 r = interpret(stk, lt->yysons[i], res);
2201 CLEANUP(lt->yysons[i]);
2202 if (r < 0)
2203 goto xit;
2204 }
(gdb) up
#28 0x00002aaaabbfc991 in interpret (stk=3613, lt=0x341b7788,
res=0x2aec9c764e10) at monet_interpreter.c:654
654 return interpret_seqblock(stk, lt, res, i);
(gdb) list
649 return r;
650 case TOK_SEQBLOCK:
651 i = 1;
652 /* fall through */
653 case TOK_SEQ:
654 return interpret_seqblock(stk, lt, res, i);
655 case TOK_PARBLOCK:
656 return interpret_parblock(stk, lt, 1);
657 case TOK_PAREND:
658 return 0;
(gdb) up
#29 0x00002aaaabc098ce in interpret_seqblock (stk=3613, lt=0x2ad08507f598,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
2200 r = interpret(stk, lt->yysons[i], res);
(gdb) list
2195 CNTXTuse(stk);
2196 }
2197 for (; lt; lt = YYOVERFLOW(lt)) {
2198 for (i = 0; i < lt->cnt; i++)
2199 if (lt->yysons[i]) {
2200 r = interpret(stk, lt->yysons[i], res);
2201 CLEANUP(lt->yysons[i]);
2202 if (r < 0)
2203 goto xit;
2204 }
(gdb) up
#30 0x00002aaaabbfc991 in interpret (stk=1573, lt=0x2ad08507f598,
res=0x2aec9c764e10) at monet_interpreter.c:654
654 return interpret_seqblock(stk, lt, res, i);
(gdb) list
649 return r;
650 case TOK_SEQBLOCK:
651 i = 1;
652 /* fall through */
653 case TOK_SEQ:
654 return interpret_seqblock(stk, lt, res, i);
655 case TOK_PARBLOCK:
656 return interpret_parblock(stk, lt, 1);
657 case TOK_PAREND:
658 return 0;
(gdb) up
#31 0x00002aaaabbfe72c in interpret (stk=1573, lt=0x2ad0a0d283d8,
res=0x2aec9c764e10) at monet_interpreter.c:1044
1044 i = interpret(stk, op, res);
(gdb) list
1039
1040 exec:stamp = BBPcurstamp();
1041 if (sig->token == TOK_PROC) {
1042 YYSTREE proc = (YYSTREE) sig->pack_fcn;
1043
1044 i = interpret(stk, op, res);
1045 CATCHRET(stk, opcache, res, i);
1046 CATCHERR(stk, opcache, res, i, proc);
1047 if (i >= 0 && !TBL_procreturn(argc, argv, res,
proc)) {
1048 if (proc->noyyval)
(gdb) up
#32 0x00002aaaabc095cf in interpret_assignment (stk=1573, lt=0x2ac201b44308,
res=0x2aec9c764e10) at monet_interpreter.c:2152
2152 i = interpret(stk, arg(lt, 1), res);
(gdb) list
2147 }
2148
2149
2150
2151
2152 i = interpret(stk, arg(lt, 1), res);
2153
2154
2155 if (act && act->frozen && value->vtype != res->vtype) {
2156 GDKerror("interpret_assignment: cannot change type of
frozen variable '%s'\n", act->name);
(gdb) up
#33 0x00002aaaabbfc900 in interpret (stk=1573, lt=0x2ac201b44308,
res=0x2aec9c764e10) at monet_interpreter.c:638
638 r = interpret_assignment(stk, lt, res);
(gdb) list
633
634
635
636 return 0;
637 case TOK_ASSIGNMENT:
638 r = interpret_assignment(stk, lt, res);
639
640 #ifdef HAVE_TIMES
641 if (profilemode) {
642 lng nc = GDKusec();
(gdb) up
#34 0x00002aaaabc098ce in interpret_seqblock (stk=1573, lt=0x2ac201b44288,
res=0x2aec9c764e10, scope=1) at monet_interpreter.c:2200
2200 r = interpret(stk, lt->yysons[i], res);
(gdb) list
2195 CNTXTuse(stk);
2196 }
2197 for (; lt; lt = YYOVERFLOW(lt)) {
2198 for (i = 0; i < lt->cnt; i++)
2199 if (lt->yysons[i]) {
2200 r = interpret(stk, lt->yysons[i], res);
2201 CLEANUP(lt->yysons[i]);
2202 if (r < 0)
2203 goto xit;
2204 }
(gdb) up
#35 0x00002aaaabbfc991 in interpret (stk=19, lt=0x2abad4c284d0,
res=0x2aec9c764e10) at monet_interpreter.c:654
654 return interpret_seqblock(stk, lt, res, i);
(gdb) list
649 return r;
650 case TOK_SEQBLOCK:
651 i = 1;
652 /* fall through */
653 case TOK_SEQ:
654 return interpret_seqblock(stk, lt, res, i);
655 case TOK_PARBLOCK:
656 return interpret_parblock(stk, lt, 1);
657 case TOK_PAREND:
658 return 0;
(gdb) up
#36 0x00002aaaab1a276b in CMDcatch (stk=19, lt=0x2abad4c284a8,
res=0x2aec9c764e10) at builtin.c:1065
1065 int i = interpret(stk, lt->yysons[0], res);
(gdb) list
1060
1061 /* execute the MIL expression while catching all errors and
warnings */
1062 *errbuf = 0;
1063 GDKsetbuf(errbuf);
1064 if (lt->cnt >= 1) {
1065 int i = interpret(stk, lt->yysons[0], res);
1066
1067 CATCHRET(stk, lt, res, i);
1068 }
1069 GDKsetbuf(bak);
(gdb) up
#37 0x00002aaaabbfd551 in interpret (stk=19, lt=0x2abad4c284a8,
res=0x2aec9c764e10) at monet_interpreter.c:808
808 i = (*imp) (stk, lt, res);
(gdb) list
803 int (*imp) (Cntxt, YYSTREE, ValPtr) = (int
(*)(Cntxt, YYSTREE, ValPtr)) lt->yyval.val.pval;
804
805 res->vtype = TYPE_void;
806 res->val.oval = void_nil;
807 stamp = BBPcurstamp();
808 i = (*imp) (stk, lt, res);
809 if (i >= 0) {
810 CATCHREF(stk, lt, res);
811 }
812 CATCHERR(stk, lt, res, i, ((YYSTREE) imp));
(gdb) up
#38 0x00002aaaabc095cf in interpret_assignment (stk=19, lt=0x2ac667509dc8,
res=0x2aec9c764e10) at monet_interpreter.c:2152
2152 i = interpret(stk, arg(lt, 1), res);
(gdb) list
2147 }
2148
2149
2150
2151
2152 i = interpret(stk, arg(lt, 1), res);
2153
2154
2155 if (act && act->frozen && value->vtype != res->vtype) {
2156 GDKerror("interpret_assignment: cannot change type of
frozen variable '%s'\n", act->name);
(gdb) up
#39 0x00002aaaabbfc900 in interpret (stk=19, lt=0x2ac667509dc8,
res=0x2aec9c764e10) at monet_interpreter.c:638
638 r = interpret_assignment(stk, lt, res);
(gdb) list
633
634
635
636 return 0;
637 case TOK_ASSIGNMENT:
638 r = interpret_assignment(stk, lt, res);
639
640 #ifdef HAVE_TIMES
641 if (profilemode) {
642 lng nc = GDKusec();
(gdb) up
#40 0x00002aaaabc098ce in interpret_seqblock (stk=19, lt=0x2ad05e51af58,
res=0x2aec9c764e10, scope=0) at monet_interpreter.c:2200
2200 r = interpret(stk, lt->yysons[i], res);
(gdb) list
2195 CNTXTuse(stk);
2196 }
2197 for (; lt; lt = YYOVERFLOW(lt)) {
2198 for (i = 0; i < lt->cnt; i++)
2199 if (lt->yysons[i]) {
2200 r = interpret(stk, lt->yysons[i], res);
2201 CLEANUP(lt->yysons[i]);
2202 if (r < 0)
2203 goto xit;
2204 }
(gdb) up
#41 0x00002aaaabbfc991 in interpret (stk=19, lt=0x2ad083b04b48,
res=0x2aec9c764e10) at monet_interpreter.c:654
654 return interpret_seqblock(stk, lt, res, i);
(gdb) list
649 return r;
650 case TOK_SEQBLOCK:
651 i = 1;
652 /* fall through */
653 case TOK_SEQ:
654 return interpret_seqblock(stk, lt, res, i);
655 case TOK_PARBLOCK:
656 return interpret_parblock(stk, lt, 1);
657 case TOK_PAREND:
658 return 0;
(gdb) up
#42 0x00002aaab9babd35 in xquery_tree_exec (ctx=0x2ab6378f5ea8,
t=0x2ad083b04b48, repeat=0) at pathfinder.c:239
239 int ret = interpret(repeat?ctx->repeat_stk:ctx->stk, t, &res);
(gdb) list
234 xquery_tree_exec(xquery_client *ctx,
235 YYSTREE t,
236 int repeat)
237 {
238 ValRecord res;
239 int ret = interpret(repeat?ctx->repeat_stk:ctx->stk, t, &res);
240 if (repeat) {
241 /* record the maxstk. recall we do not ever free stacks for the
repeated execs */
242 ctx->repeat_max = monet_clients[ctx->stk].maxstk;
243 } else if (ctx->repeat_max) {
(gdb) up
#43 0x00002aaab9bac296 in xquery_mil_exec (ctx=0x2ab6378f5ea8,
buf=0x2ac31d5f4e40 "var tijah_scoreDB;\nvar tijah_ftiTape;\nvar
xrpc_qid;\nvar xrpc_caller;\nvar xrpc_hdl;\nvar xrpc_seqnr;\nvar
xrpc_timeout;\nvar xrpc_mode;\nvar xrpc_module;\nvar xrpc_method;\nxrpc_qid :=
\"\";\nxrpc_caller := \"\";"...) at pathfinder.c:297
297 ret = xquery_tree_exec(ctx, t, 0);
(gdb) list
292 if (ctx->mode&XQ_DEBUG)
293 stream_write(ctx->fderr, buf, strlen(buf), 1);
294
295 t = xquery_mil2tree(ctx, buf);
296 if (t) {
297 ret = xquery_tree_exec(ctx, t, 0);
298 Myyfree(t);
299 }
300 return ret;
301 }
(gdb) up
#44 0x00002aaab9bacbe7 in xquery_compile_exec (ctx=0x2ab6378f5ea8, options=2,
xquery=0x2ab6345f7719 "element job {attribute tool
{\"carving/headerfinder-tool\"},attribute project { \"fileset2\"}, for
$xirafNode in subsequence( for $xirafIter in
(\n\t\t\tdoc(\"fileset2.xml\")//volume[not(.//filesystem)]\n\t\t\tunio"...,
is_url=0, prologue=0x2aec9c765330, query=0x2aec9c765328,
epilogue=0x2aec9c765320, module=0x0) at pathfinder.c:445
445 ret = xquery_mil_exec(ctx, *query);
(gdb) list
440 if (ret && *prologue && **prologue)
441 ret = xquery_mil_exec(ctx, *prologue);
442
443 if (ret && query) {
444 if (*query && **query)
445 ret = xquery_mil_exec(ctx, *query);
446
447 if (ret && *epilogue && **epilogue)
448 ret = xquery_mil_exec(ctx, *epilogue);
449 }
(gdb) up
#45 0x00002aaab9bb2cf0 in xquery_prepare (ctx=0x2ab6378f5ea8, usec=659415161738,
query=0x2ab6345f7719 "element job {attribute tool
{\"carving/headerfinder-tool\"},attribute project { \"fileset2\"}, for
$xirafNode in subsequence( for $xirafIter in
(\n\t\t\tdoc(\"fileset2.xml\")//volume[not(.//filesystem)]\n\t\t\tunio"...) at
pathfinder.c:2258
2258 if (xquery_compile_exec(ctx, options, query, 0, &sec1, &sec2,
&sec3, NULL))
(gdb) list
2253 if (((ctx->mode & XQ_MILPRINT_SUMMER) == 0) && \
2254 (((ctx->mode & XQ_ALGEBRA) != 0) || \
2255 (GDKgetenv("xquery_backend") == NULL) ||
(strcmp(GDKgetenv("xquery_backend"),"milprint_summer") != 0)))
2256 options = COMPILE_OPTION_ALGEBRA;
2257 #endif
2258 if (xquery_compile_exec(ctx, options, query, 0, &sec1, &sec2,
&sec3, NULL))
2259 err = NULL;
2260 if (sec1) free(sec1);
2261 if (sec2) free(sec2);
2262 if (sec3) free(sec3);
(gdb) up
#46 0x00002aaab9bb3326 in xquery_client_engine (mc=0x2aaaba3177f8) at
pathfinder.c:2405
2405 err = xquery_prepare(ctx, usec, xquery);
(gdb) list
2400 if (p[1] == '4' && p[2] == '2' && p[3] == '\n' && p[4] == 0 && genType
== buf && output[2] == 0) { /* use '42' as latency query test */
2401 stream_printf(GDKout, "42\n\nTrans 0.000 msec\nShred
0.000 msec\nQuery 0.000 msec\nPrint 0.000 msec\n");
2402 } else {
2403 err = xquery_change_genType(ctx, genType);
2404 if (err == NULL)
2405 err = xquery_prepare(ctx, usec, xquery);
2406 if (err && err != xquery_nondescriptive_error) {
2407 /* report errors back to client */
2408 stream_write(ctx->fderr, err, strlen(err), 1);
2409 }
(gdb) up
#47 0x00002aaaba112f6a in mapi_client_engine (FC=0x2aaaba3177f8) at mapi.c:316
316 fc->engine(fc);
(gdb) list
311 if (fc->inuse == 2)
312 break;
313
314 fc->thread->data[0] = fc->c->fdout;
315 fc->thread->data[1] = fc->c->fdin;
316 fc->engine(fc);
317 fc->c->mode = STARTING;
318
319 mapi_client_end(fc);
320 fc->thread->data[0] = NULL;
(gdb) up
#48 0x00000036644062f7 in start_thread () from /lib64/libpthread.so.0
(gdb) list
321 fc->thread->data[1] = NULL;
322 /* possible race condition, but net result is limited */
323 if (f->clients > f->cache_limit) {
324 break;
325 }
326 fc->inuse = 0;
327 }
328 fc->inuse = 2;
329 f->f_free(fc);
330 mapi_client_free(fc);
(gdb) up
#49 0x00000036638ce86d in clone () from /lib64/libc.so.6
(gdb) list
331 }
332
333 mapi_client *MAPIclient(stream *fdin, stream *fdout, char *lang )
334 {
335 mapi_client *fc = NULL;
336 mapi_frontend *f = NULL;
337 Client c;
338
339 f = find_frontend(lang);
340
(gdb) up
#50 0x0000000000000000 in ?? ()
(gdb) list
341 if (!f)
342 return NULL;
343
344 fc = mapi_client_find(f);
345 if (!fc) {
346 if (!(fc = mapi_client_alloc(f, monet_clients, 0,
fdout)))
347 return NULL;
348 }
349 if (strcmp(lang, "xquery") == 0 &&
350 fc->t == ~(MT_Id) 0 &&
----------------------------------------------------------------------
>Comment By: Stefan Manegold (stmane)
Date: 2009-02-05 09:15
Message:
Hoi Floris,
thanks for the detailed report.
You did not by any chance also print the content of variables in the
vincinity of the code where the segfault occured?
E.g., "bid", "ii", "batlist[ii]"
Or do you still have your debugger with Mserver running (or have a core
dump) and could hence still print these values?
Thanks!
Stefan
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=482468&aid=2567316&group_id=56967
------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Monetdb-bugs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-bugs