Strange Exception
Thursday, 18 August 2016 · 4 messages · last reply 19 Aug 2016
CM
Christophe Marchand18 Aug 2016 14:13 #
Hello,
I have a strange exception :
Improper use? Potential bug? Your feedback is welcome:
Contact: basex-talk at mailman.uni-konstanz.de
Version: BaseX 8.2.3
Java: Oracle Corporation, 1.8.0_91
OS: Linux, amd64
Stack Trace:
java.lang.RuntimeException: Data Access out of bounds:
- pre value: 120241192
- #used blocks: 469694
- #total locks: 469770
- access: 469693 (469694 > 469693]
at org.basex.util.Util.notExpected(Util.java:60)
at
org.basex.io.random.TableDiskAccess.cursor(TableDiskAccess.java:458)
at
org.basex.io.random.TableDiskAccess.read1(TableDiskAccess.java:148)
at org.basex.data.Data.kind(Data.java:306)
at org.basex.query.value.node.DBNode.<init>(DBNode.java:51)
at org.basex.query.value.seq.DBNodeSeq.itemAt(DBNodeSeq.java:68)
at org.basex.query.value.seq.DBNodeSeq.itemAt(DBNodeSeq.java:22)
at org.basex.query.value.seq.Seq$1.next(Seq.java:77)
at org.basex.query.expr.path.IterPath$1.next(IterPath.java:58)
at org.basex.query.expr.path.IterPath$1.next(IterPath.java:36)
at org.basex.query.expr.gflwor.For$1.next(For.java:79)
at org.basex.query.expr.gflwor.GroupBy$1.init(GroupBy.java:131)
at org.basex.query.expr.gflwor.GroupBy$1.next(GroupBy.java:98)
at org.basex.query.expr.gflwor.Let$LetEval.next(Let.java:174)
at org.basex.query.expr.gflwor.For$1.next(For.java:99)
at org.basex.query.expr.gflwor.GFLWOR$1.next(GFLWOR.java:95)
at org.basex.query.expr.List$1.next(List.java:135)
at org.basex.query.MainModule.cache(MainModule.java:91)
at org.basex.query.QueryContext.iter(QueryContext.java:352)
at org.basex.query.QueryProcessor.iter(QueryProcessor.java:80)
at org.basex.core.cmd.AQuery.query(AQuery.java:89)
at org.basex.core.cmd.XQuery.run(XQuery.java:22)
at org.basex.core.Command.run(Command.java:398)
at org.basex.core.Command.execute(Command.java:100)
at org.basex.server.ClientListener.run(ClientListener.java:136)The XQuery is :
for $fs in collection('FichiersBase')/forms
group by $s := $fs/@supp
return
let $mv := max($fs/@omversion)
for $f in $fs
return
if (empty($mv) or $f/@omversion >= $mv)
then
()
else
db:delete('FichiersBase', db:path($f))
),
db:optimize('FichiersBase')After this, trying a OPTIMIZE ALL on DATABASE FichiersBase, I have this exception :
Quoted text · 1 line
> OPEN FichiersBase
Database 'FichiersBase' was opened in 744.68 ms.
Quoted text · 1 line
> OPTIMIZE ALL
Improper use? Potential bug? Your feedback is welcome:
Contact: basex-talk at mailman.uni-konstanz.de
Version: BaseX 8.2.3
Java: Oracle Corporation, 1.8.0_91
OS: Linux, amd64
Stack Trace:
java.lang.ArrayIndexOutOfBoundsException: 1
at org.basex.data.Namespaces.values(Namespaces.java:201)
at org.basex.data.Data.namespaces(Data.java:450)
at org.basex.io.serial.Serializer.node(Serializer.java:449)
at org.basex.io.serial.Serializer.node(Serializer.java:176)
at org.basex.io.serial.Serializer.serialize(Serializer.java:126)
at org.basex.core.cmd.OptimizeAll$DBParser.parse(OptimizeAll.java:202)
at org.basex.build.Builder.parse(Builder.java:73)
at org.basex.build.DiskBuilder.build(DiskBuilder.java:85)
at org.basex.core.cmd.OptimizeAll.optimizeAll(OptimizeAll.java:131)
at org.basex.core.cmd.OptimizeAll.run(OptimizeAll.java:47)
at org.basex.core.Command.run(Command.java:398)
at org.basex.core.Command.execute(Command.java:100)
at org.basex.server.ClientListener.run(ClientListener.java:136)Any idea ?
Does this mean my database is corrupted ?
Best,
Christophe
CG
Christian Grün18 Aug 2016 14:20 #
Hi Christophe,
Quoted text · Christophe Marchand · 1 line
> Does this mean my database is corrupted ?
Well, it could be. How does the output of the INSPECT command look like? Did you access the same database from different JVMs at the same time?
Christian
CM
Christophe Marchand19 Aug 2016 16:10 #
Hi Christian, I've tried to reload my database, and the result is the same.
Typing LIST, I get :
BaseX 8.2.3 [Client]
Try help to get more information.
Quoted text · Christian Grün · 1 line
> LIST
Name Resources Size Input Path
------------------------------------------------------------------------ baseCo 1 53580229
contenusInduits 4 41014150
FichiersBase 3043 4068228263 /e8/webbuint/uaur/om-sauv FichiersBase_879933479 0 0 Error
4 database(s).
I had an exit code of 111, but I'm not sure it is the exit code from BaseX client.
Best regards,
Christophe
Quoted text · Christian Grün · 10 lines
Le 18/08/2016 à 14:20, Christian Grün a écrit : > Hi Christophe, > >> Does this mean my database is corrupted ? > Well, it could be. How does the output of the INSPECT command look > like? Did you access the same database from different JVMs at the same > time? > > Christian >
CG
Christian Grün19 Aug 2016 17:58 #
Hi Christophe,
Note: I’ll be leaving for vacation pretty soon, so please don’t wonder if my next reply takes some more time…
Quoted text · Christophe Marchand · 1 line
> Hi Christian, I've tried to reload my database, and the result is the same.
So "FichiersBase_879933479" is the new database? Did you reload it, or did you create a new instance? Did you get any error message at create time?
Christian
Quoted text · Christophe Marchand · 38 lines
> > Typing LIST, I get : > > BaseX 8.2.3 [Client] > Try help to get more information. > >> LIST > Name Resources Size Input Path > ------------------------------------------------------------------------ > baseCo 1 53580229 > contenusInduits 4 41014150 > FichiersBase 3043 4068228263 /e8/webbuint/uaur/om-sauv > FichiersBase_879933479 0 0 Error > > 4 database(s). > > I had an exit code of 111, but I'm not sure it is the exit code from BaseX > client. > > > Best regards, > > Christophe > > > Le 18/08/2016 à 14:20, Christian Grün a écrit : >> >> Hi Christophe, >> >>> Does this mean my database is corrupted ? >> >> Well, it could be. How does the output of the INSPECT command look >> like? Did you access the same database from different JVMs at the same >> time? >> >> Christian >> >
Written for BaseX 8.5. BaseX may have changed since: please check the current documentation.
⚡Generated with XQuery