I'm using the C# driver. but still, it doesn't look like a high level
problem. neither a query problem. thats why I didn't post some code
snippets. To make sure, I just tried to execute the INSPECT command in the
CLI. same exception. Also the db:optimize fails with the same exception,
although with a different stacktrace, which I will post below.

Altough the race condition point of two processes interfering is a good
point, I'm currently having trouble to do anything useful with a session
from which a race condition would matter. If, then it must have happened
while the import was running along with the other, non-importing process.

As I mentioned in the first post, while the import process was still
ongoing, the other process already started to have the exception at a very
late progress of the import. After the import was done, I was still able to
operate on the db as normal, but only with the session in the process which
did the long-run import.

To restore the second process its session state to normal, I restarted the
webapplication, which closes both sessions. After that, I'm no longer to
operate on the db. Not even directly from the CLI.

Seems it is a sort of a persisted data state which the low level basex code
can't handle when trying to reread it into to the memory.

I 've already googled around for the same exception in BaseX, seems it was
an issue in some older versions too.


here the stacktrace when running db:optimize:

Improper use? Potential bug? Your feedback is welcome:
Contact: basex-talk@mailman.uni-konstanz.de
Version: BaseX 9.0.2 beta
Java: Oracle Corporation, 1.8.0_151
OS: Linux, amd64
Stack Trace:
java.lang.ArrayIndexOutOfBoundsException: 52
at org.basex.util.hash.TokenSet.key(TokenSet.java:128)
at org.basex.data.Data.name(Data.java:388)
at org.basex.io.serial.Serializer.node(Serializer.java:414)
at org.basex.io.serial.Serializer.node(Serializer.java:158)
at org.basex.io.serial.Serializer.node(Serializer.java:345)
at org.basex.io.serial.Serializer.node(Serializer.java:158)
at org.basex.io.serial.Serializer.serialize(Serializer.java:109)
at org.basex.core.cmd.OptimizeAll$DBParser.parse(OptimizeAll.java:200)
at org.basex.build.Builder.parse(Builder.java:77)
at org.basex.build.DiskBuilder.build(DiskBuilder.java:77)
at org.basex.core.cmd.OptimizeAll.optimizeAll(OptimizeAll.java:122)
at org.basex.query.up.primitives.db.DBOptimize.apply(DBOptimize.java:124)
at org.basex.query.up.DataUpdates.apply(DataUpdates.java:175)
at org.basex.query.up.ContextModifier.apply(ContextModifier.java:120)
at org.basex.query.up.Updates.apply(Updates.java:157)
at org.basex.query.QueryContext.iter(QueryContext.java:341)
at org.basex.query.QueryProcessor.iter(QueryProcessor.java:90)
at org.basex.core.cmd.AQuery.query(AQuery.java:92)
at org.basex.core.cmd.XQuery.run(XQuery.java:22)
at org.basex.core.Command.run(Command.java:257)
at org.basex.core.Command.execute(Command.java:93)
at org.basex.server.ClientListener.run(ClientListener.java:140)


On Wed, May 9, 2018 at 11:45 AM, Alexander Holupirek <a...@holupirek.de>
wrote:

> Hi,
>
> (please also respond to the list.  Others might have suggestions as well
> ;-)
>
> it still would be great if you could provide even more details.  For
> instance, what programming language do you use?Ideally include a Short,
> Self Contained, Correct (Compilable), Example (SSCCE) [1] in order to let
> people reproduce the behaviour.
>
> From a high level perspective, are you sure the sessions do not
> interfere?  Do you additionally work with BaseXGUI on the database, while
> your program is importing?
>
> Cheers,
>         Alex
>
>
> [1] http://sscce.org/
>
> > On 9. May 2018, at 09:26, halit tiryaki <halit.tiry...@gmail.com> wrote:
> >
> > hello, thanks for the fast response.
> >
> > It happened in the process of a large Import. There were two processes
> with each a respective Session to BaseX. One process with the Open session
> which did the Import was doing fine. The Second process however Starter
> having the mentioned exception. After stopping Both processes and
> restarting the app, no basex Session is now able to operate normal.
> >
> > The ArrayIndexOutOfBoundsException already comes in executing the
> command INSPECT.
> >
> > The db-Info returns following:
> >
> >
> > info db:
> > Database Properties
> > NAME: XXX
> > SIZE: 5877 kB
> > NODES: 124051
> > DOCUMENTS: 5497
> > BINARIES: 0
> > TIMESTAMP: 2018-05-09T05:20:44.000Z
> > UPTODATE: false
> >
> > Resource Properties
> > INPUTPATH:
> > INPUTSIZE: 0 b
> > INPUTDATE: 2018-05-09T04:32:10.539Z
> >
> > Indexes
> > TEXTINDEX: true
> > ATTRINDEX: true
> > TOKENINDEX: false
> > FTINDEX: false
> > TEXTINCLUDE: /item_User/node()/User:Email
> > ATTRINCLUDE: /item_UserImage/node()/UserImage:Id
> > TOKENINCLUDE:
> > FTINCLUDE: /item_XXX/node()/XXX:[german]
> > LANGUAGE: English
> > STEMMING: false
> > CASESENS: false
> > DIACRITICS: false
> > STOPWORDS:
> > UPDINDEX: true
> > AUTOOPTIMIZE: false
> > MAXCATS: 100
> > MAXLEN: 96
> > SPLITSIZE: 0
> > Alexander Holupirek <a...@holupirek.de> schrieb am Mi., 9. Mai 2018
> 08:44:
> > Hi,
> >
> > could you please provide some more details?
> > The best would be a reproducible example.
> >
> > Thanks,
> >   Alex
> >
> >
> > > On 9. May 2018, at 06:50, halit tiryaki <halit.tiry...@gmail.com>
> wrote:
> > >
> > > Hello,
> > >
> > > got a serious problem here. any ideas? thanks
> > >
> > > Improper use? Potential bug? Your feedback is welcome:
> > > Contact: basex-talk@mailman.uni-konstanz.de
> > > Version: BaseX 9.0.2 beta
> > > Java: Oracle Corporation, 1.8.0_151
> > > OS: Linux, amd64
> > > Stack Trace:
> > > java.lang.ArrayIndexOutOfBoundsException: 4288
> > > at org.basex.io.random.TableDiskAccess.read1(TableDiskAccess.java:151)
> > > at org.basex.data.Data.kind(Data.java:294)
> > > at org.basex.query.value.node.DBNode$4.next(DBNode.java:332)
> > > at org.basex.query.value.node.DBNode$4.next(DBNode.java:323)
> > > at org.basex.query.expr.path.IterStep$1.next(IterStep.java:38)
> > > at org.basex.query.expr.path.IterStep$1.next(IterStep.java:32)
> > > at org.basex.query.QueryContext.next(QueryContext.java:392)
> > > at org.basex.query.expr.path.IterPath$1.next(IterPath.java:50)
> > > at org.basex.query.expr.path.IterPath$1.next(IterPath.java:34)
> > > at org.basex.query.expr.ParseExpr.item(ParseExpr.java:58)
> > > at org.basex.query.expr.ParseExpr.atomItem(ParseExpr.java:84)
> > > at org.basex.query.func.fn.FnConcat.item(FnConcat.java:20)
> > > at org.basex.query.expr.ParseExpr.value(ParseExpr.java:71)
> > > at org.basex.query.expr.gflwor.Let$LetEval.next(Let.java:177)
> > > at org.basex.query.expr.gflwor.GFLWOR.value(GFLWOR.java:72)
> > > at org.basex.query.expr.path.CachedPath.nodeIter(CachedPath.java:36)
> > > at org.basex.query.expr.path.AxisPath.iter(AxisPath.java:69)
> > > at org.basex.query.expr.gflwor.For$1.next(For.java:107)
> > > at org.basex.query.expr.gflwor.OrderBy$1.sort(OrderBy.java:73)
> > > at org.basex.query.expr.gflwor.OrderBy$1.next(OrderBy.java:54)
> > > at org.basex.query.expr.gflwor.GFLWOR.value(GFLWOR.java:72)
> > > at org.basex.query.expr.gflwor.Let$LetEval.next(Let.java:177)
> > > at org.basex.query.expr.gflwor.GFLWOR$1.next(GFLWOR.java:87)
> > > at org.basex.query.QueryContext.next(QueryContext.java:392)
> > > at org.basex.query.scope.MainModule$1.next(MainModule.java:122)
> > > at org.basex.core.cmd.AQuery.query(AQuery.java:94)
> > > at org.basex.core.cmd.XQuery.run(XQuery.java:22)
> > > at org.basex.core.Command.run(Command.java:257)
> > > at org.basex.core.Command.execute(Command.java:93)
> > > at org.basex.server.ClientListener.run(ClientListener.java:140)
> >
>
>

Reply via email to