I have tracked this down to a point where I don't know what to do.

The problem is that the debug iterator calls consumeNext on it's
theChildren[1], which is an eval iterator.
(debug_iterator_impl.cpp:169). If this eval iterator raises a runtime
exception (for example, an invalid expression like the one shown in the
comment above) in eval.cpp:198, while calling:
state->thePlanWrapper->next(result), the execution jump out of
EvalIterator::nextImpl without calling state->thePlanWrapper = NULL; in

Therefore a second call to the same eval iterator will fail in
eval.cpp:187 at "=" (something that has to do with an RCObject that
calls ~PlanWrapper.

What I don't know is how to simulate
state->thePlanWrapper = NULL;
from a catch outside the caller of the eval iterator's nextImpl

Assigning to Markos.

** Changed in: zorba
     Assignee: Gabriel Petrovay (gabipetrovay) => Markos Zaharioudakis 

You received this bug notification because you are a member of Zorba
Coders, which is the registrant for Zorba.

  XQDB: Assertion `str.size() == length' failed.

Status in Zorba - The XQuery Processor:

Bug description:
  I am able to produce an assertion in xqdb on ubuntu 10.04 64bit.

  for $x in (1,2,3)
  let $y := $x+1
  return $y

  ./bin/xqdb -f -q debugger.xq
  Communication port: 28028
  Zorba executable:   ./bin/zorba
  Zorba arguments:    -d -f -q debugger.xq 
  Zorba XQuery Debugger Server
  Copyright 2006-2009 The FLWOR Foundation.
  License: Apache License 2.0: <http://www.apache.org/licenses/LICENSE-2.0>

  Established connection with XQuery client zorba
  (xqdb) break -f debugger.xq -l 2

  set breakpoint with id 1 and state enabled
  (xqdb) run
  <?xml version="1.0" encoding="UTF-8"?>

  break in query body at /home/dagraf/zorba/build/debugger.xq:2

  2 o| let $y := $x+1
  (xqdb) print -c x

  Error: Error while evaluating expression.
  (xqdb) print -c $x
  Segmentation fault
  xqdb: /home/dagraf/zorba/sandbox/src/debugger/debugger_clientimpl.cpp:60: 
virtual void zorba::DebuggerListener::run(): Assertion `str.size() == length' 

To manage notifications about this bug go to:

Mailing list: https://launchpad.net/~zorba-coders
Post to     : zorba-coders@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zorba-coders
More help   : https://help.launchpad.net/ListHelp

Reply via email to