Every day I grab the latest 1.7.5 snapshot but this still is occurring and 
it is getting frustrating.  I've modified the way I am creating and 
destroying database connections to try to resolve the issue, but that did 
not stop it.  I disabled the WAL this time, so I am hoping that this stops 
this from happening.  The recurring theme always seems to be accessing the 
logSegments ArrayList in the WAL with index = -1.

This seems way to simple, but adding the line:
if (logSegments.size() == 0) return;

Above the 2 trouble lines below resolve this?

LogSegment last = logSegments.get(logSegments.size() - 1);   
[OWriteAheadLog.java:733]
and
LogSegment last = logSegments.get(logSegments.size() - 1);   
[OWriteAheadLog.java:764]

I'm not touching the code because I don't know this well enough, but it seems 
like that is an issue waiting to happen unless you can be absolutely sure 
"logSegments" will never be empty.


On Tuesday, July 1, 2014 1:44:42 PM UTC-4, Brian O'Keefe wrote:
>
> It happened again today with 1.7.5-SNAPSHOT and this time it did corrupt.  
>
> Server at time of exception:
> -1
> -> java.util.ArrayList.elementData(ArrayList.java:400)
> -> java.util.ArrayList.get(ArrayList.java:413)
> -> 
> com.orientechnologies.orient.core.storage.impl.local.paginated.wal.OWriteAheadLog.flush(OWriteAheadLog.java:733)
> -> 
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.flushPage(OWOWCache.java:1082)
> -> 
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.access$1000(OWOWCache.java:67)
> -> 
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.iterateBySubRing(OWOWCache.
> java:291)
> -> 
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.flushRing(OWOWCache.java:24
> 6)
> -> 
> com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.run(OWOWCache.java:222)
> -> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> -> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
> -> 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
>
> -> 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> -> 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> -> 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> -> java.lang.Thread.run(Thread.java:744)Exception during data flush.
>
> Loading application after database restart:
> com.orientechnologies.orient.core.exception.ODatabaseException: Error on 
> retrieving record #19:11575 (cluster: *redacted*)
>     at 
> com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:252)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.executeReadRecord(ODatabaseRecordAbstract.java:1017)
>     at 
> com.orientechnologies.orient.core.tx.OTransactionNoTx.loadRecord(OTransactionNoTx.java:65)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.load(ODatabaseRecordTx.java:251)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.load(ODatabaseRecordTx.java:40)
>     at 
> com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.load(ODatabaseRecordWrapperAbstract.java:227)
>     at 
> com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.load(ODatabaseRecordWrapperAbstract.java:52)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.field(ODocument.java:591)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.merge(ODocument.java:972)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.merge(ODocument.java:918)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.updateRecord(OBinaryNetworkProtocolAbstract.java:307)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.updateRecord(ONetworkProtocolBinary.java:1343)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.executeRequest(ONetworkProtocolBinary.java:309)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.execute(OBinaryNetworkProtocolAbstract.java:169)
>     at 
> com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:45)
> Caused by: com.orientechnologies.orient.core.exception.ODatabaseException: 
> Error during data decompression.
>     at 
> com.orientechnologies.orient.core.compression.impl.OSnappyCompression.uncompress(OSnappyCompression.java:54)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:631)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.readRecord(OLocalPaginatedStorage.java:1480)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.readRecord(OLocalPaginatedStorage.java:745)
>     at 
> com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:246)
>     ... 14 more
> Caused by: java.io.IOException: FAILED_TO_UNCOMPRESS(5)
>     at org.xerial.snappy.SnappyNative.throw_error(SnappyNative.java:84)
>     at org.xerial.snappy.SnappyNative.rawUncompress(Native Method)
>     at org.xerial.snappy.Snappy.rawUncompress(Snappy.java:444)
>     at org.xerial.snappy.Snappy.uncompress(Snappy.java:480)
>     at 
> com.orientechnologies.orient.core.compression.impl.OSnappyCompression.uncompress(OSnappyCompression.java:50)
>     ... 18 more
> 2014-07-01 13:39:07,811 [main           ] ERROR 
> TamrResultCsvExportParser      - Unknown Exception
> com.orientechnologies.orient.core.exception.ODatabaseException: Error on 
> retrieving record #19:31049 (cluster: *redacted*)
>     at 
> com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:252)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.executeReadRecord(ODatabaseRecordAbstract.java:1017)
>     at 
> com.orientechnologies.orient.core.tx.OTransactionNoTx.loadRecord(OTransactionNoTx.java:65)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.load(ODatabaseRecordTx.java:251)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.load(ODatabaseRecordTx.java:40)
>     at 
> com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.load(ODatabaseRecordWrapperAbstract.java:227)
>     at 
> com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.load(ODatabaseRecordWrapperAbstract.java:52)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.field(ODocument.java:591)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.merge(ODocument.java:972)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.merge(ODocument.java:918)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.updateRecord(OBinaryNetworkProtocolAbstract.java:307)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.updateRecord(ONetworkProtocolBinary.java:1343)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.executeRequest(ONetworkProtocolBinary.java:309)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.execute(OBinaryNetworkProtocolAbstract.java:169)
>     at 
> com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:45)
> Caused by: com.orientechnologies.orient.core.exception.ODatabaseException: 
> Error during data decompression.
>     at 
> com.orientechnologies.orient.core.compression.impl.OSnappyCompression.uncompress(OSnappyCompression.java:54)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:631)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.readRecord(OLocalPaginatedStorage.java:1480)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.readRecord(OLocalPaginatedStorage.java:745)
>     at 
> com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:246)
>     ... 14 more
> Caused by: java.io.IOException: FAILED_TO_UNCOMPRESS(5)
>     at org.xerial.snappy.SnappyNative.throw_error(SnappyNative.java:84)
>     at org.xerial.snappy.SnappyNative.rawUncompress(Native Method)
>     at org.xerial.snappy.Snappy.rawUncompress(Snappy.java:444)
>     at org.xerial.snappy.Snappy.uncompress(Snappy.java:480)
>     at 
> com.orientechnologies.orient.core.compression.impl.OSnappyCompression.uncompress(OSnappyCompression.java:50)
>     ... 18 more
> 2014-07-01 13:39:08,584 [main           ] ERROR 
> TamrResultCsvExportParser      - Unknown Exception
> com.orientechnologies.orient.core.exception.ODatabaseException: Error on 
> retrieving record #19:47480 (cluster: *redacted*)
>     at 
> com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:252)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.executeReadRecord(ODatabaseRecordAbstract.java:1017)
>     at 
> com.orientechnologies.orient.core.tx.OTransactionNoTx.loadRecord(OTransactionNoTx.java:65)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.load(ODatabaseRecordTx.java:251)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.load(ODatabaseRecordTx.java:40)
>     at 
> com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.load(ODatabaseRecordWrapperAbstract.java:227)
>     at 
> com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.load(ODatabaseRecordWrapperAbstract.java:52)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.field(ODocument.java:591)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.merge(ODocument.java:972)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.merge(ODocument.java:918)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.updateRecord(OBinaryNetworkProtocolAbstract.java:307)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.updateRecord(ONetworkProtocolBinary.java:1343)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.executeRequest(ONetworkProtocolBinary.java:309)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.execute(OBinaryNetworkProtocolAbstract.java:169)
>     at 
> com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:45)
> Caused by: com.orientechnologies.orient.core.exception.ODatabaseException: 
> Error during data decompression.
>     at 
> com.orientechnologies.orient.core.compression.impl.OSnappyCompression.uncompress(OSnappyCompression.java:54)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:631)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.readRecord(OLocalPaginatedStorage.java:1480)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.readRecord(OLocalPaginatedStorage.java:745)
>     at 
> com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:246)
>     ... 14 more
> Caused by: java.io.IOException: FAILED_TO_UNCOMPRESS(5)
>     at org.xerial.snappy.SnappyNative.throw_error(SnappyNative.java:84)
>     at org.xerial.snappy.SnappyNative.rawUncompress(Native Method)
>     at org.xerial.snappy.Snappy.rawUncompress(Snappy.java:444)
>     at org.xerial.snappy.Snappy.uncompress(Snappy.java:480)
>     at 
> com.orientechnologies.orient.core.compression.impl.OSnappyCompression.uncompress(OSnappyCompression.java:50)
>     ... 18 more
> 2014-07-01 13:39:19,058 [main           ] ERROR 
> TamrResultCsvExportParser      - Unknown Exception
> com.orientechnologies.orient.core.exception.ODatabaseException: Error on 
> retrieving record #19:24451 (cluster: *redacted*)
>     at 
> com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:252)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.executeReadRecord(ODatabaseRecordAbstract.java:1017)
>     at 
> com.orientechnologies.orient.core.tx.OTransactionNoTx.loadRecord(OTransactionNoTx.java:65)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.load(ODatabaseRecordTx.java:251)
>     at 
> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.load(ODatabaseRecordTx.java:40)
>     at 
> com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.load(ODatabaseRecordWrapperAbstract.java:227)
>     at 
> com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.load(ODatabaseRecordWrapperAbstract.java:52)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.field(ODocument.java:591)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.merge(ODocument.java:972)
>     at 
> com.orientechnologies.orient.core.record.impl.ODocument.merge(ODocument.java:918)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.updateRecord(OBinaryNetworkProtocolAbstract.java:307)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.updateRecord(ONetworkProtocolBinary.java:1343)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.executeRequest(ONetworkProtocolBinary.java:309)
>     at 
> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.execute(OBinaryNetworkProtocolAbstract.java:169)
>     at 
> com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:45)
> Caused by: com.orientechnologies.orient.core.exception.OStorageException: 
> Content of record #19:24451 was broken.
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readFullEntry(OPaginatedCluster.java:656)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:607)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.readRecord(OLocalPaginatedStorage.java:1480)
>     at 
> com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.readRecord(OLocalPaginatedStorage.java:745)
>     at 
> com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:246)
>     ... 14 more
>
> Server after restart:
> 2014-07-01 13:38:06:756 INFO OrientDB Server v1.7.5-SNAPSHOT is active. 
> [OServer]
> 2014-07-01 13:38:35:261 WARN segment file 'database.ocf' was not closed 
> correctly last time [OSingleFileSegment]
> 2014-07-01 13:38:35:330 SEVE Can not restore 0 WAL master record for 
> storage linked crc check is failed [OWriteAheadLog]
>
> 2014-07-01 13:38:36:675 WARN Storage linked was not closed properly. Will 
> try to restore from write ahead log. [OLocalPa
> ginatedStorage]
> 2014-07-01 13:38:36:675 SEVE Restore is not possible because write ahead 
> log is empty. [OLocalPaginatedStorage]
> 2014-07-01 13:38:36:691 INFO Storage data restore was completed 
> [OLocalPaginatedStorage]
> 2014-07-01 13:38:55:688 WARN Page in file lpaperson.pcl with index 16191 
> was placed in wrong free list, this error will
> be fixed automatically. [OPaginatedCluster]
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to