Dear Jürgen, The safest/easiest option for now may be to consider a database corrupt if the output does not contain the string “No inconsistencies found”. For more details, feel free to check out the source code [1].
Hope this helps, Christian [1] https://github.com/BaseXdb/basex/blob/main/basex-core/src/main/java/org/basex/core/cmd/Inspect.java On Mon, Jan 15, 2024 at 2:44 PM Jürgen Schwenk Büro < juergen.schw...@gruendler.de> wrote: > Dear Christian, > > thanks a lot for your work. I tried it out and got the answer "Access to > storage failed (java.lang.RuntimeException: java.io.EOFException)." That is > fine. > > One more, perhaps last :-), question: To avoid a crash when opening > database in our application I send the "inspect" command via C-Adapter > basexdbc.c and check the resulting string. This is because the query > command itself is OK, so I have to check the content. Up to now I check the > resulting string if it contains either "Warning: Database is inconsistent." > or "RuntimeException". I hope, these are the only possible failure > responses. Or are there any other? > > Regards, > > Jürgen > Am 15.01.2024 um 11:04 schrieb Christian Grün: > > Dear Jürgen, > > It turned out that the invocation of the INSPECT command raised an > exception that was not caught by the command itself, but was only sent to > stderr. We’ve revised this with the latest snapshot [1]. > > Best (and good luck for your power connection in 2024) > Christian > > [1] https://files.basex.org/releases/latest/ > > > > On Thu, Jan 11, 2024 at 6:07 PM Jürgen Schwenk Büro < > juergen.schw...@gruendler.de> wrote: > >> Hello, >> >> in our application we "produced" a corrupt data base caused by a power >> fail. On restart we check data base using the "inspect" command to detect >> failures, creating new empty data base if found one. The attached data base >> seems OK using "inspect", but accessing the data base we get an exception. >> Perhaps this may help to make "inspect" more reliable. >> >> Thanks a lot, >> >> Jürgen Schwenk >> >> >> Client output: >> >> > list >> Name Resources Size Input Path >> >> ----------------------------------------------------------------------------------- >> VentilutionOnlineDataBaseCorrupt 1 1170 >> VentilutionOnlineDataBase.xml >> >> 1 database(s). >> >> > open VentilutionOnlineDataBaseCorrupt >> Database 'VentilutionOnlineDataBaseCorrupt' was opened in 0.03 ms. >> >> > inspect >> Checking main table (152 nodes): >> - 0 invalid node kinds >> - 0 invalid parent references >> - 0 wrong parent/descendant relationships >> No inconsistencies found. >> 'VentilutionOnlineDataBaseCorrupt' inspected in 0.06 ms. >> >> > xquery //* >> Improper use? Potential bug? Your feedback is welcome: >> Contact: basex-talk@mailman.uni-konstanz.de >> Version: BaseX 10.1 >> Java: Eclipse Adoptium, 17.0.4 >> OS: Windows 10, amd64 >> Stack Trace: >> java.lang.RuntimeException: Data Access out of bounds: >> - pre value: 152 >> - table size: 152 >> - first/next pre value: 0/152 >> - #total/used pages: 1/1 >> - accessed page: 0 (1 > 0] >> at org.basex.util.Util.notExpected(Util.java:64) >> at >> org.basex.io.random.TableDiskAccess.cursor(TableDiskAccess.java:477) >> at >> org.basex.io.random.TableDiskAccess.read1(TableDiskAccess.java:158) >> at org.basex.data.Data.kind(Data.java:312) >> at org.basex.query.value.node.DBNode$6.next(DBNode.java:402) >> at org.basex.query.value.node.DBNode$6.next(DBNode.java:1) >> at org.basex.query.expr.path.IterStep$1.next(IterStep.java:38) >> at org.basex.query.expr.path.IterStep$1.next(IterStep.java:1) >> at org.basex.query.QueryContext.next(QueryContext.java:375) >> at org.basex.query.expr.path.IterPath$1.next(IterPath.java:48) >> at org.basex.query.scope.MainModule$1.next(MainModule.java:55) >> at org.basex.core.cmd.AQuery.run(AQuery.java:88) >> at org.basex.core.Command.run(Command.java:233) >> at org.basex.core.Command.execute(Command.java:93) >> at org.basex.server.ClientListener.run(ClientListener.java:141) >> >> Query "softwareProjectVentilution" executed in 0.31 ms. >> >> >> -- >> >> >> -- >> >> Jürgen Schwenk >> - R&D Engineer - >> >> >> >> >> Gründler GmbH Tel: +49 (0)7441 40761-14 >> Jaspisstrasse 23 Fax: +49 (0)7441 40761-99 >> 72250 Freudenstadt E-Mail: juergen.schw...@gruendler.de >> -- >> >> >> -- >> >> Jürgen Schwenk >> - R&D Engineer - >> >> >> >> >> Gründler GmbH Tel: +49 (0)7441 40761-14 >> Jaspisstrasse 23 Fax: +49 (0)7441 40761-99 >> 72250 Freudenstadt E-Mail: juergen.schw...@gruendler.de >> > -- > > > -- > > Jürgen Schwenk > - R&D Engineer - > > > > > Gründler GmbH Tel: +49 (0)7441 40761-14 > Jaspisstrasse 23 Fax: +49 (0)7441 40761-99 > 72250 Freudenstadt E-Mail: juergen.schw...@gruendler.de >