[Monetdb-developers] Mserver is aborting
Forgot the attachments! --------------------------------------------------------------------------- Hi all, I checked out today the MonetDB/XQuery code and Mserver is crashing whenever I try to execute MIL statements using the mclient command. More details follow. I first compile an XQuery to MIL statements using the command "pf -A" Then I execute the MIL statements with "mclient -t -l" Whenever I do so, I get the correct results but Mserver aborts after giving the following error message: Mserver: monet_tbl.mx:1743: TBL_M_decref: Assertion `p' failed. Aborted I have attached the XQuery file and the generated MIL file. Thank you and best regards, Riham -- Address: Database Group, Dept of EEMCS, University of Twente, POBox 217, 7500 AE Enschede, The Netherlands Phone: +31 (0)53 489 4628 Fax: +31 (0)53 489 2927 Email: r.abdelkader@ewi.utwente.nl for $p in doc("doc_100000_10ab_1000pr.xml")//a/p, $r in doc("doc_100000_10ab_1000pr.xml")//b/r where $p/text() = $r/text() return $r module ("pathfinder"); module ("mkey"); var time_load; var time_query; var time_print; var a0000; var a0001; var a0002; var a0003; var a0004; var a0005; var a0006; var a0007; var a0008; var a0009; var a0010; var a0011; var a0012; var a0013; var a0014; var unused; var ws; unused := nil; # trace structure var trace_outer; var trace_inner; var trace_iter; var trace_msg; var trace_item; var trace_type; var trace_rel; # Begin rule: "Query: serialize(FragList, Rel)" a0001 := CATCH ({ ws := ws_create (); # Begin rule: "Rel: lit_tbl" # a0000: iter(nat) a0000 := new (void, oid).seqbase (0@0); a0000.append (1@0); a0000.access (BAT_READ); # a0001: item(str) a0001 := new (void, str).seqbase (0@0); a0001.append ("doc_100000_10ab_1000pr.xml"); a0001.access (BAT_READ); # End rule: "Rel: lit_tbl" # Begin rule: "FragRel: doc_tbl(Rel)" # a0000: iter(nat) # a0005: item(pre) # a0004: item(pfrag) a0003 := doc_tbl (ws, a0001); a0005 := a0003.fetch (1); a0004 := a0003.fetch (2); ws := a0003.fetch (0); a0003 := unused; a0002 := unused; a0001 := unused; # End rule: "FragRel: doc_tbl(Rel)" # Begin rule: "Rel: roots(FragRel)" # a0000: iter(nat) # a0005: item(pre) # a0004: item(pfrag) # End rule: "Rel: roots(FragRel)" # Begin rule: "Frag: fragment(FragRel)" # End rule: "Frag: fragment(FragRel)" # Begin rule: "FragList: empty_frag" # End rule: "FragList: empty_frag" # Begin rule: "FragList: frag_union(FragList, Frag)" # End rule: "FragList: frag_union(FragList, Frag)" # Begin rule: "Rel: llscj_desc(FragList, Rel)" a0001 := loop_lifted_descendant_step_with_nsloc_test (a0000, a0005, a0004, ws, 2, "", "b"); a0002 := a0001.fetch (1); a0003 := a0001.fetch (2).materialize (a0002); # a0002: item(pre) # a0003: item(pfrag) a0006 := a0001.fetch (0).materialize (a0001.fetch (1)); # a0006: iter(nat) a0001 := unused; # End rule: "Rel: llscj_desc(FragList, Rel)" # Begin rule: "Rel: llscj_child(FragList, Rel)" a0001 := loop_lifted_child_step_with_nsloc_test (a0006, a0002, a0003, ws, 3, "", "r"); a0007 := a0001.fetch (1); a0008 := a0001.fetch (2).materialize (a0007); # a0007: item(pre) # a0008: item(pfrag) # a0009: iter(nat) a0001 := unused; a0002 := unused; a0003 := unused; a0006 := unused; # End rule: "Rel: llscj_child(FragList, Rel)" # Begin rule: "Rel: project(Rel)" # a0008: item(pfrag) # a0007: item(pre) a0009 := unused; # End rule: "Rel: project(Rel)" # Begin rule: "Rel: number(Rel)" # a0008: item(pfrag) # a0007: item(pre) a0001 := a0007.mark (1@0); # a0001: iter1(nat) # End rule: "Rel: number(Rel)" # Begin rule: "Rel: project(Rel)" # a0008: item(pfrag) # a0007: item(pre) # a0001: iter(nat) # End rule: "Rel: project(Rel)" # Begin rule: "Rel: llscj_child(FragList, Rel)" a0002 := loop_lifted_child_step_with_kind_test (a0001, a0007, a0008, ws, 3, TEXT); a0003 := a0002.fetch (1); a0006 := a0002.fetch (2); # a0003: item(pre) # a0006: item(pfrag) a0009 := a0002.fetch (0).materialize (a0002.fetch (1)); # a0009: iter(nat) a0002 := unused; # End rule: "Rel: llscj_child(FragList, Rel)" # Begin rule: "Rel: doc_access(FragList, Rel)" # a0003: item(pre) # a0006: item(pfrag) # a0009: iter(nat) a0002 := mposjoin (mposjoin (a0003, a0006, ws.fetch (PRE_PROP)), mposjoin (a0003, a0006, ws.fetch (PRE_CONT)), ws.fetch (PROP_TEXT)); # a0002: item1(str) # End rule: "Rel: doc_access(FragList, Rel)" # Begin rule: "Rel: project(Rel)" # a0009: iter(nat) # a0002: item1(str) a0003 := unused; a0006 := unused; # End rule: "Rel: project(Rel)" # Begin rule: "Rel: project(Rel)" # a0000: iter(nat) # a0004: item1(pfrag) # a0005: item1(pre) # End rule: "Rel: project(Rel)" # Begin rule: "Rel: llscj_desc(FragList, Rel)" a0003 := loop_lifted_descendant_step_with_nsloc_test (a0000, a0005, a0004, ws, 2, "", "a"); a0006 := a0003.fetch (1); a0010 := a0003.fetch (2).materialize (a0006); # a0006: item1(pre) # a0010: item1(pfrag) a0011 := a0003.fetch (0).materialize (a0003.fetch (1)); # a0011: iter(nat) a0003 := unused; a0000 := unused; a0004 := unused; a0005 := unused; # End rule: "Rel: llscj_desc(FragList, Rel)" # Begin rule: "Rel: llscj_child(FragList, Rel)" a0000 := loop_lifted_child_step_with_nsloc_test (a0011, a0006, a0010, ws, 3, "", "p"); a0003 := a0000.fetch (1); a0004 := a0000.fetch (2).materialize (a0003); # a0003: item1(pre) # a0004: item1(pfrag) # a0005: iter(nat) a0000 := unused; a0006 := unused; a0010 := unused; a0011 := unused; # End rule: "Rel: llscj_child(FragList, Rel)" # Begin rule: "Rel: project(Rel)" # a0004: item1(pfrag) # a0003: item1(pre) a0005 := unused; # End rule: "Rel: project(Rel)" # Begin rule: "Rel: number(Rel)" # a0004: item1(pfrag) # a0003: item1(pre) a0000 := a0003.mark (1@0); # a0000: iter2(nat) # End rule: "Rel: number(Rel)" # Begin rule: "Rel: llscj_child(FragList, Rel)" a0005 := loop_lifted_child_step_with_kind_test (a0000, a0003, a0004, ws, 3, TEXT); a0006 := a0005.fetch (1); a0010 := a0005.fetch (2); # a0006: item1(pre) # a0010: item1(pfrag) a0011 := a0005.fetch (0).materialize (a0005.fetch (1)); # a0011: iter2(nat) a0005 := unused; # End rule: "Rel: llscj_child(FragList, Rel)" # Begin rule: "Rel: doc_access(FragList, Rel)" # a0006: item1(pre) # a0010: item1(pfrag) # a0011: iter2(nat) a0005 := mposjoin (mposjoin (a0006, a0010, ws.fetch (PRE_PROP)), mposjoin (a0006, a0010, ws.fetch (PRE_CONT)), ws.fetch (PROP_TEXT)); # a0005: item(str) # End rule: "Rel: doc_access(FragList, Rel)" # Begin rule: "Rel: project(Rel)" # a0011: iter2(nat) # a0005: item(str) a0006 := unused; a0010 := unused; # End rule: "Rel: project(Rel)" # Begin rule: "Rel: unq2_thetajoin(Rel, Rel)" # a0010: iter2(nat) # a0012: iter(nat) a0006 := htordered_unique_thetajoin (EQ, a0011.reverse ().leftjoin (a0005), a0009.reverse ().leftjoin (a0002), nil, nil); a0010 := a0006.mark (0@0).reverse (); a0010 := a0010.assert_order (); a0012 := a0006.reverse ().mark (0@0).reverse (); a0006 := unused; a0011 := unused; a0005 := unused; a0009 := unused; a0002 := unused; # End rule: "Rel: unq2_thetajoin(Rel, Rel)" # Begin rule: "Rel: project(Rel)" # a0010: iter2(nat) # a0012: iter(nat) # End rule: "Rel: project(Rel)" # Begin rule: "Rel: leftjoin(Rel, Rel)" a0002 := a0012.leftjoin (a0001.reverse ()); a0005 := a0002.mark (0@0).reverse (); a0006 := a0002.reverse ().mark (0@0).reverse (); a0002 := unused; a0002 := a0005.leftjoin (a0010); a0002 := a0002.reverse ().mark (0@0).reverse (); # a0002: iter2(nat) # a0009: iter(nat) a0011 := a0006.leftjoin (a0008); a0011 := a0011.reverse ().mark (0@0).reverse (); # a0011: item(pfrag) a0013 := a0006.leftjoin (a0007); a0013 := a0013.reverse ().mark (0@0).reverse (); # a0013: item(pre) # a0014: iter1(nat) a0005 := unused; a0006 := unused; a0010 := unused; a0012 := unused; a0008 := unused; a0007 := unused; a0001 := unused; # End rule: "Rel: leftjoin(Rel, Rel)" # Begin rule: "Rel: project(Rel)" # a0011: item(pfrag) # a0013: item(pre) # a0002: iter2(nat) a0009 := unused; a0014 := unused; # End rule: "Rel: project(Rel)" # Begin rule: "Rel: project(Rel)" # a0004: item1(pfrag) # a0003: item1(pre) # a0000: iter(nat) # End rule: "Rel: project(Rel)" # Begin rule: "Rel: leftjoin(Rel, Rel)" a0001 := a0000.leftjoin (a0002.reverse ()); a0005 := a0001.mark (0@0).reverse (); a0006 := a0001.reverse ().mark (0@0).reverse (); a0001 := unused; a0001 := a0005.leftjoin (a0004); a0001 := a0001.reverse ().mark (0@0).reverse (); # a0001: item1(pfrag) a0007 := a0005.leftjoin (a0003); a0007 := a0007.reverse ().mark (0@0).reverse (); # a0007: item1(pre) # a0008: iter(nat) a0009 := a0006.leftjoin (a0011); a0009 := a0009.reverse ().mark (0@0).reverse (); # a0009: item(pfrag) a0010 := a0006.leftjoin (a0013); a0010 := a0010.reverse ().mark (0@0).reverse (); # a0010: item(pre) # a0012: iter2(nat) a0005 := unused; a0006 := unused; a0004 := unused; a0003 := unused; a0000 := unused; a0011 := unused; a0013 := unused; a0002 := unused; # End rule: "Rel: leftjoin(Rel, Rel)" # Begin rule: "Rel: project(Rel)" # a0009: item(pfrag) # a0010: item(pre) # a0001: item1(pfrag) # a0007: item1(pre) a0008 := unused; a0012 := unused; # End rule: "Rel: project(Rel)" # Begin rule: "Rel: refine_sort(Rel)" a0000 := a0001; a0000 := a0000.CTrefine (a0007); a0000 := a0000.CTrefine (a0009); a0000 := a0000.CTrefine (a0010); a0000 := a0000.mark (0@0).reverse (); a0002 := a0000.leftjoin (a0009); a0002 := a0002.reverse ().mark (0@0).reverse (); # a0002: item(pfrag) a0003 := a0000.leftjoin (a0010); a0003 := a0003.reverse ().mark (0@0).reverse (); # a0003: item(pre) # a0001: item1(pfrag) # a0007: item1(pre) a0000 := unused; a0009 := unused; a0010 := unused; # End rule: "Rel: refine_sort(Rel)" # Begin rule: "Rel: number(Rel)" # a0002: item(pfrag) # a0003: item(pre) # a0001: item1(pfrag) # a0007: item1(pre) # a0000: pos(nat) # End rule: "Rel: number(Rel)" # Begin rule: "Rel: project(Rel)" # a0002: item(pfrag) # a0003: item(pre) # a0000: pos(nat) a0001 := unused; a0007 := unused; # End rule: "Rel: project(Rel)" a0004 := new (lng, void).key (true).reverse ().seqbase (0@0); a0005 := new (dbl, void).key (true).reverse ().seqbase (0@0); a0006 := new (str, void).key (true).reverse ().seqbase (0@0); a0007 := a0003; a0008 := a0002.set_kind (ELEM); a0007 := a0007.reverse ().mark (0@0).reverse (); a0008 := a0008.reverse ().mark (0@0).reverse (); print_result ("xml", ws, a0007, a0008, a0004, a0005, a0005, a0006); a0004 := unused; a0005 := unused; a0006 := unused; a0007 := unused; a0008 := unused; a0001 := unused; }); if (not(isnil(ws))) { ws_destroy (ws); } else { } if (not(isnil(a0001))) { ERROR (a0001); } else { } a0001 := unused; a0002 := unused; a0003 := unused; a0000 := unused; # End rule: "Query: serialize(FragList, Rel)"
Riham, thanks for the report. Would you mind filing it as a bug report via http://sourceforge.net/tracker/?atid=482468&group_id=56967&func=browse ? Please add the XQuery query (MIL is not required, can be (re-)produced using pf ;-)) and (if possible) the document you're using as attachment (possibly in compressed form). Moreover, did you also try to run your query with the "milprint_summer" version, i.e., directly with `mclient -lxquery` or with `pf -M | mclient -lmil` ? If so, did it work or fail? If not, could you please do so, and report whether it works or fails? Thanks! Stefan On Tue, Oct 02, 2007 at 05:00:21PM +0200, Riham Abdel Kader wrote:
Hi all,
I checked out today the MonetDB/XQuery code and Mserver is crashing whenever I try to execute MIL statements using the mclient command. More details follow.
I first compile an XQuery to MIL statements using the command "pf -A" Then I execute the MIL statements with "mclient -t -l" Whenever I do so, I get the correct results but Mserver aborts after giving the following error message: Mserver: monet_tbl.mx:1743: TBL_M_decref: Assertion `p' failed. Aborted
I have attached the XQuery file and the generated MIL file.
Thank you and best regards, Riham
-- Address: Database Group, Dept of EEMCS, University of Twente, POBox 217, 7500 AE Enschede, The Netherlands Phone: +31 (0)53 489 4628 Fax: +31 (0)53 489 2927 Email: r.abdelkader@ewi.utwente.nl
-- | Dr. Stefan Manegold | mailto:Stefan.Manegold@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 |
Hi Stefan, I was unable to attach the XML document in the bug report as you requested. Therefore I'm attaching it here. Best regards, Riham Stefan Manegold wrote:
Riham,
thanks for the report.
Would you mind filing it as a bug report via http://sourceforge.net/tracker/?atid=482468&group_id=56967&func=browse ?
Please add the XQuery query (MIL is not required, can be (re-)produced using pf ;-)) and (if possible) the document you're using as attachment (possibly in compressed form).
Moreover, did you also try to run your query with the "milprint_summer" version, i.e., directly with `mclient -lxquery` or with `pf -M | mclient -lmil` ? If so, did it work or fail? If not, could you please do so, and report whether it works or fails?
Thanks!
Stefan
On Tue, Oct 02, 2007 at 05:00:21PM +0200, Riham Abdel Kader wrote:
Hi all,
I checked out today the MonetDB/XQuery code and Mserver is crashing whenever I try to execute MIL statements using the mclient command. More details follow.
I first compile an XQuery to MIL statements using the command "pf -A" Then I execute the MIL statements with "mclient -t -l" Whenever I do so, I get the correct results but Mserver aborts after giving the following error message: Mserver: monet_tbl.mx:1743: TBL_M_decref: Assertion `p' failed. Aborted
I have attached the XQuery file and the generated MIL file.
Thank you and best regards, Riham
-- Address: Database Group, Dept of EEMCS, University of Twente, POBox 217, 7500 AE Enschede, The Netherlands Phone: +31 (0)53 489 4628 Fax: +31 (0)53 489 2927 Email: r.abdelkader@ewi.utwente.nl
-- Address: Database Group, Dept of EEMCS, University of Twente, POBox 217, 7500 AE Enschede, The Netherlands Phone: +31 (0)53 489 4628 Fax: +31 (0)53 489 2927 Email: r.abdelkader@ewi.utwente.nl
participants (2)
-
Riham Abdel Kader
-
Stefan Manegold