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

Reply via email to