[Neo] repairing an index

Jan Berkel jan.berkel at gmail.com
Tue Jul 7 13:43:54 CEST 2009


hi johan,

On 7 Jul 2009, at 11:29, Johan Svensson wrote:

> My guess is that recovery somehow did not execute properly. I think
> the version of Neo4j you are running (1.0-b7?) doesn't have logical
> log rotation (judging from line numbers in the stacktrace) so the logs
> may get quite large (when modifying/inserting data) over time. Could
> you check if there are any "nioneo_logical.log*" in the db store
> directory and how big they are?
>

$ ls -lh *log*
-rw-r--r-- 1 jan jan   11 2009-07-02 11:16 active_tx_log
-rw-r--r-- 1 jan jan 2.1M 2009-05-06 03:57  
nioneo_logical.log.recovered-1241575728024
-rw-r--r-- 1 jan jan 2.1M 2009-05-06 04:08  
nioneo_logical.log.recovered-1241576194484
-rw-r--r-- 1 jan jan 2.1M 2009-07-02 15:48  
nioneo_logical.log.recovered-1246542507604
-rw-r--r-- 1 jan jan  29K 2009-07-02 11:16 tm_tx_log.1
-rw-r--r-- 1 jan jan  318 2009-07-07 13:34 tm_tx_log.2


> Starting up after a crash/power cut will result in the recovery
> process running (examining the logical log) setting the system in a
> consistent state (last committed transaction). There are non-intuitive
> ways to break this. For example deleting the logical log file,
> starting up with store files and logical logs that don't belong to
> each other or (my favorite) open the store files in notepad then click
> "save" (sounds implausible? We've had all three happen in the past!).

no, haven't touched the log files after the power cut.

> But right now I would need the nested stacktrace together with a list
> of the files in the db store directory (names and how big they are) to
> be able to say more about the problem you are experiencing.
>

here's the log of the failed recovery (post-powercut)

Jul 2, 2009 3:48:26 PM  
org.neo4j.impl.transaction.xaframework.XaLogicalLog doInternalRecovery
INFO: Logical log is dirty, this means Neo hasn't been shutdown  
properly. Recovering...
Jul 2, 2009 3:48:27 PM  
org.neo4j.impl.transaction.xaframework.XaResourceManager checkXids
INFO: (Re-)committing [/home/jan/playground/twitter_dreams/neodb/ 
nioneo_logical.log] tx 30112
Jul 2, 2009 3:48:27 PM org.neo4j.impl.nioneo.xa.NeoStoreXaDataSource 
$TransactionFactory recoveryComplete
INFO: Recovery complete, all transactions have been resolved
Jul 2, 2009 3:48:27 PM org.neo4j.impl.nioneo.xa.NeoStoreXaDataSource 
$TransactionFactory recoveryComplete
INFO: Rebuilding id generators as needed. This can take a while for  
large stores...
Jul 2, 2009 3:49:18 PM org.neo4j.impl.nioneo.xa.NeoStoreXaDataSource 
$TransactionFactory recoveryComplete
INFO: Rebuild of id generators complete.
Jul 2, 2009 3:49:18 PM org.neo4j.impl.transaction.TxManager init
WARNING: Non completed transactions found in transaction log.  
Transaction recovery started
Found uncompleted global transactions
WARNING: TxLog contained unresolved xids that needed rollback. They  
couldn't be matched to any of the XAResources recover list. Assuming 1  
transactions already rolled back.
W, [2009-07-02T15:49:21.381000 #3002]  WARN -- : Neo transaction  
rolled back because of an exception,  
org.neo4j.impl.nioneo.store.StoreFailureException: Record[1089678] not  
in use
W, [2009-07-02T15:49:21.418000 #3002]  WARN -- : org/neo4j/impl/nioneo/ 
store/RelationshipStore.java:191:in `getRecord'
org/neo4j/impl/nioneo/store/RelationshipStore.java:92:in `getRecord'
org/neo4j/impl/nioneo/xa/NeoTransaction.java:1121:in  
`connectRelationship'
org/neo4j/impl/nioneo/xa/NeoTransaction.java:1091:in  
`relationshipCreate'
org/neo4j/impl/nioneo/xa/NeoStoreXaConnection.java:260:in  
`createRelationship'
org/neo4j/impl/nioneo/xa/NioNeoDbPersistenceSource.java:157:in  
`relationshipCreate'
org/neo4j/impl/persistence/PersistenceManager.java:129:in  
`relationshipCreate'
org/neo4j/impl/core/NodeManager.java:335:in `createRelationship'


thanks for your help,

  j


More information about the User mailing list