Hi all, unfortunately during a nightly backup + optimize procedure the VM on which we run an "older" 7.7.2 basex server went out of disk space. This morning I've been able to recover partially. I've been able to take a backup and to recreate the indexes with the "create index *" command. Now the system is operating again and clients are inserting data. The automated procedure is based however on the use of the optimize command which is the only thing that has not restarted to work yielding ArrayIndexOutOfBound Exception. Will it be necessary (sufficient?) to reinstall a fresh version and reimport the backup or is there another way out? Thanks a lot for any hints. M.
Hi Marco,
The automated procedure is based however on the use of the optimize command which is the only thing that has not restarted to work yielding
If I got it right, everything works except for the call of OPTIMIZE? In this case, I would recommend to export the database. If this succeeds, your data should be correct. You can also try to call OPTIMIZE ALL, which basically does the same as exporting the data and recreating a new database (ideally, back up your data before optimizing it).
Christian
Hi Chris,
optimize all is the operation that fails. I've noticed that it produces a folder named like the database plus a random number. Maybe I should check whether the failure occurs after the export phase (by executing an export alone) in which case I could proceed with the recreation of DB through import. Am I right? M.
On 07/22/2014 12:57 PM, Christian Grün wrote:
Hi Marco,
The automated procedure is based however on the use of the optimize command which is the only thing that has not restarted to work yielding
If I got it right, everything works except for the call of OPTIMIZE? In this case, I would recommend to export the database. If this succeeds, your data should be correct. You can also try to call OPTIMIZE ALL, which basically does the same as exporting the data and recreating a new database (ideally, back up your data before optimizing it).
Christian
optimize all is the operation that fails. I've noticed that it produces a folder named like the database plus a random number. Maybe I should check whether the failure occurs after the export phase (by executing an export alone) in which case I could proceed with the recreation of DB through import.
Exactly; just try to export your data first.
The bad news is that I get the exception also while executing a plain export. I've noticed anyway that the output folder is created but how I cannot be sure that everything is exported. Is there any way to recover from the backup of the DB which is created without exceptions?
Thanks, Marco.
This is the exception:
Improper use? Potential bug? Your feedback is welcome: Contact:basex-talk@mailman.uni-konstanz.de Version: BaseX 7.7.2 Java: Oracle Corporation, 1.7.0_45 OS: Linux, i386 Stack Trace: java.lang.ArrayIndexOutOfBoundsException: 48 at org.basex.util.hash.TokenSet.key(TokenSet.java:128) at org.basex.data.Data.name(Data.java:376) at org.basex.io.serial.Serializer.serialize(Serializer.java:415) at org.basex.io.serial.Serializer.serialize(Serializer.java:295) at org.basex.io.serial.Serializer.serialize(Serializer.java:94) at org.basex.core.cmd.Export.export(Export.java:109) at org.basex.core.cmd.Export.run(Export.java:44) at org.basex.core.Command.run(Command.java:345) at org.basex.core.Command.exec(Command.java:321) at org.basex.core.Command.execute(Command.java:78) at org.basex.server.LocalSession.execute(LocalSession.java:122) at org.basex.server.Session.execute(Session.java:37) at org.basex.core.Main.execute(Main.java:146) at org.basex.core.Main.execute(Main.java:130) at org.basex.core.Main.console(Main.java:90) at org.basex.BaseX.<init>(BaseX.java:168) at org.basex.BaseX.main(BaseX.java:38)
On 07/22/2014 01:11 PM, Christian Grün wrote:
optimize all is the operation that fails. I've noticed that it produces a folder named like the database plus a random number. Maybe I should check whether the failure occurs after the export phase (by executing an export alone) in which case I could proceed with the recreation of DB through import.
Exactly; just try to export your data first.
The bad news is that I get the exception also while executing a plain export.
Hm, this makes it difficult. While there are ways to restore possibly corrupt data, it's lot of manual work.
I've noticed anyway that the output folder is created but how I cannot be sure that everything is exported.
You could call the LIST command and check out which files may be affected.
Christian
basex-talk@mailman.uni-konstanz.de