Hello,
I have a strange exception :
Improper use? Potential bug? Your feedback is welcome: Contact: basex-talk@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 :
OPEN FichiersBase
Database 'FichiersBase' was opened in 744.68 ms.
OPTIMIZE ALL
Improper use? Potential bug? Your feedback is welcome: Contact: basex-talk@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
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.
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
Hi Christophe,
Note: I’ll be leaving for vacation pretty soon, so please don’t wonder if my next reply takes some more time…
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
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
basex-talk@mailman.uni-konstanz.de