Optimize Exception

Tuesday, 22 July 2014 · 6 messages
ML
Marco Lettere22 Jul 2014 10:20 #
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.
CG
Christian Grün22 Jul 2014 12:57 #
Hi Marco,
Quoted text · Marco Lettere · 2 lines
> 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
ML
Marco Lettere22 Jul 2014 13:01 #
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.
Quoted text · Christian Grün · 14 lines
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 >
CG
Christian Grün22 Jul 2014 13:11 #
Quoted text · Marco Lettere · 5 lines
> 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.
ML
Marco Lettere22 Jul 2014 14:53 #
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 at 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)
Quoted text · Christian Grün · 8 lines
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. >
CG
Christian Grün22 Jul 2014 17:59 #
Quoted text · Marco Lettere · 2 lines
> 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.
Quoted text · Marco Lettere · 2 lines
> 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

⚡Generated with XQuery