In the light of :oid- or even dense-headed BATs (and eventually COLs), what is the reason to only check/assert head properties (trivial once dense), but not tail properties? Stefan ----- Original Message -----
Changeset: f96a7db93e54 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f96a7db93e54 Modified Files: monetdb5/mal/mal_dataflow.c monetdb5/mal/mal_interpreter.c Branch: default Log Message:
Include debugging We have to trace for illegal property settings. It is an expensive test, that may isolate a few deeply hidden errors.
Moreover, initialize the cpu affinity
diffs (61 lines):
diff --git a/monetdb5/mal/mal_dataflow.c b/monetdb5/mal/mal_dataflow.c --- a/monetdb5/mal/mal_dataflow.c +++ b/monetdb5/mal/mal_dataflow.c @@ -614,6 +614,16 @@ DFLOWstep(FlowTask *t, FlowStatus fs) if (isaBatType(getArgType(mb, pci, i))) { bat bid = stk->stk[a].val.bval;
+#ifndef NDEBUG +#if 0 /* when needed, enable */ + if (i < pci->retc && bid){ + BAT *b = BATdescriptor(bid); + BATassertHeadProps(b); + BBPunfix(b->batCacheid); + } +#endif +#endif + /* Check output properties */ /* update the bigfoot information only if we need to gc */ if (cntxt->flags & bigfootFlag) updateBigFoot(cntxt, bid, TRUE); @@ -811,8 +821,12 @@ runDFLOWworker(void *t) Thread thr; int i, local = 0, last = 0; long usec=0; + //int cpu;
thr = THRnew(MT_getpid(), "DFLOWworker"); + + //cpu = MT_set_affinity(task->id); + GDKsetbuf(GDKmalloc(GDKMAXERRLEN)); /* where to leave errors */ GDKerrbuf[0] = 0; while (task) { @@ -915,6 +929,7 @@ runDFLOWworker(void *t) } GDKfree(GDKerrbuf); GDKsetbuf(0); + //MT_unset_affinity(cpu); THRdel(thr); }
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c --- a/monetdb5/mal/mal_interpreter.c +++ b/monetdb5/mal/mal_interpreter.c @@ -856,6 +856,16 @@ str runMALsequence(Client cntxt, MalBlkP if (isaBatType(getArgType(mb, pci, i))) { bat bid = stk->stk[a].val.bval;
+#ifndef NDEBUG +#if 0 /* when needed, enable */ + if (i < pci->retc && bid){ + BAT *b = BATdescriptor(bid); + BATassertHeadProps(b); + BBPunfix(b->batCacheid); + } +#endif +#endif + /* update the bigfoot information only if we need to gc */ if (cntxt->flags & bigfootFlag) updateBigFoot(cntxt, bid, TRUE); _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list