No subject


Wed Apr 29 21:31:29 CEST 2009


right in your guess that the change in the HEADER_SIZE for IdGenerator is
causing the incompatibilities. But don't trust me too much on that, I am
tired, and not fully up to speed with that part of the codebase at the
moment. Johan, our lead developer for the Neo kernel, will be able to give
you a better assessment when he wakes up.

Regarding mailman: I think it looks at some mail thread id header to find
out where to sort it. Not all e-mail clients are very good at keeping those
headers. I think there might even be some servers out there that remove
them. I wouldn't worry too much about that. The important thing is the
discussion, not how it is archived.

Cheers,
Tobias

On Sat, May 16, 2009 at 12:32 AM, Justin Montgomery <
jmontgomery at uchicago.edu> wrote:

> I switched to the "b-8" release using r2816 of trunk and the problem did
> not reoccur.  I then switched to r2843 (one before head) and similarly had
> no problems.  All my unit tests on the neo4j store passed and ran about 2x
> faster  than the previous build (r2754) I used :).  Not sure if the problem
> is simply going unnoticed or if there is a true bug introduced in r2846
> since I am not familiar with the internals of the neo store code.  I see
> that in r2846 a merge from b8-unsigned branch was made that changed the
> HEADER_SIZE in IdGenerator from 5 to 9.  Could this be causing an
> incompatibility with previous store?
>
> Btw, every time I reply to my message, it creates a new thread, which I
> don't want to do.  What do I have to do to keep it in the same thread?  I am
> mailman list noob :).
>
> > -----Original Message-----
> > From: Justin Montgomery
> > Sent: Friday, May 15, 2009 4:42 PM
> > To: Justin Montgomery; 'user at lists.neo4j.org'
> > Subject: RE: [neo4j] incompatibility with past stores?
> >
> > I dug a little deeper and noticed that this stack trace I posted was
> > from a shutdown since I had wrapped my loading in a try-finally block
> > and the original stack trace from the loading error was lost:
> >
> > org.neo4j.impl.nioneo.store.StoreFailureException: Id capacity exceeded
> >       at
> > org.neo4j.impl.nioneo.store.IdGenerator.nextId(IdGenerator.java:160)
> >       at
> > org.neo4j.impl.nioneo.store.CommonAbstractStore.nextId(CommonAbstractSt
> > ore.java:244)
> >       at
> > org.neo4j.impl.nioneo.xa.NioNeoDbPersistenceSource$NioNeoDbResourceConn
> > ection.nodeAddProperty(NioNeoDbPersistenceSource.java:133)
> >       at
> > org.neo4j.impl.persistence.PersistenceManager.nodeAddProperty(Persisten
> > ceManager.java:109)
> >       at
> > org.neo4j.impl.core.NodeManager.nodeAddProperty(NodeManager.java:814)
> >       at org.neo4j.impl.core.NodeImpl.addProperty(NodeImpl.java:66)
> >       at
> > org.neo4j.impl.core.NeoPrimitive.setProperty(NeoPrimitive.java:412)
> >       at org.neo4j.impl.core.NodeProxy.setProperty(NodeProxy.java:103)
> >       at
> > org.neo4j.neometa.structure.PropertyRange.store(PropertyRange.java:42)
> >       at
> > org.neo4j.neometa.structure.PropertyRange.setOrRemoveRange(PropertyRang
> > e.java:105)
> >       at
> > org.neo4j.neometa.structure.MetaStructureProperty.setRange(MetaStructur
> > eProperty.java:67)
> >       at
> > org.neo4j.neometa.input.rdfs.RdfsImporter.trySetPropertyRange(RdfsImpor
> > ter.java:494)
> >       at
> > org.neo4j.neometa.input.rdfs.RdfsImporter.access$300(RdfsImporter.java:
> > 40)
> >       at
> > org.neo4j.neometa.input.rdfs.RdfsImporter$PropertyReader.readThing(Rdfs
> > Importer.java:194)
> >       at
> > org.neo4j.neometa.input.rdfs.RdfsImporter$PropertyReader.readThing(Rdfs
> > Importer.java:179)
> >       at
> > org.neo4j.neometa.input.rdfs.RdfsImporter.readThings(RdfsImporter.java:
> > 226)
> >       at
> > org.neo4j.neometa.input.rdfs.RdfsImporter.readProperties(RdfsImporter.j
> > ava:282)
> >       at
> > org.neo4j.neometa.input.rdfs.RdfsImporter.readFrom(RdfsImporter.java:91
> > )
> >       at
> > org.neo4j.neometa.input.rdfs.RdfsImporter.doImport(RdfsImporter.java:73
> > )
> >       at
> > edu.uchicago.nsit.iteco.server.neo.NeoHelper.<init>(NeoHelper.java:109)
> >       at
> > edu.uchicago.nsit.iteco.server.neo.NeoDatabase.loadData(NeoDatabase.jav
> > a:96)
> >       at
> > edu.uchicago.nsit.iteco.server.DefaultItecoData.loadDatabase(DefaultIte
> > coData.java:1030)
> >       at
> > edu.uchicago.nsit.iteco.server.DefaultItecoData.<init>(DefaultItecoData
> > .java:295)
> >       at
> > edu.uchicago.nsit.iteco.server.DefaultItecoData.init(DefaultItecoData.j
> > ava:187)
> >       at
> > edu.uchicago.nsit.iteco.client.serverless.LocalRequestCommunicator.init
> > Data(LocalRequestCommunicator.java:232)
> >       at
> > edu.uchicago.nsit.iteco.client.serverless.LocalRequestCommunicator.<ini
> > t>(LocalRequestCommunicator.java:189)
> >       at
> > edu.uchicago.nsit.iteco.client.serverless.LocalRequestCommunicator.<ini
> > t>(LocalRequestCommunicator.java:173)
> >       at
> > edu.uchicago.nsit.iteco.client.serverless.LocalRequestCommunicator$1.ca
> > ll(LocalRequestCommunicator.java:108)
> >       at
> > edu.uchicago.nsit.iteco.client.serverless.LocalRequestCommunicator$1.ca
> > ll(LocalRequestCommunicator.java:1)
> >       at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
> >       at java.util.concurrent.FutureTask.run(Unknown Source)
> >       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> > Source)
> >       at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> > Source)
> >       at java.lang.Thread.run(Unknown Source)
> >
> > Stepping through it I see that the generators next id was larger than
> > an unsigned int.  Could this be a manifestation of a bug previously
> > noted and fixed concerning integer overflow (r2754)?  I see also that
> > the block sizes for arrays and strings was increased from 4 to 8.
> > Could this have caused that?
> >
> > Thanks,
> >
> > Justin
> >
> > > -----Original Message-----
> > > From: Justin Montgomery
> > > Sent: Friday, May 15, 2009 3:50 PM
> > > To: 'user at lists.neo4j.org'
> > > Subject: [neo4j] incompatibility with past stores?
> > >
> > > I checked out and compiled the latest trunk (r2854) of the neo
> > > components :  neo,neo-utils,neo-component-commons,neo-index-utils,
> > >          shell,neo-meta,and neo-meta-import and compiled them and ran
> > > into an exception when a store serialized with a previous version
> > > (r2754) was
> > > loaded:
> > >
> > > Caused by: org.neo4j.impl.nioneo.store.StoreFailureException: Unable
> > to
> > > close store data\neo\neostore.propertystore.db.strings
> > >     at
> > >
> > org.neo4j.impl.nioneo.store.CommonAbstractStore.close(CommonAbstractSto
> > > re.java:529)
> > >     at
> > >
> > org.neo4j.impl.nioneo.store.PropertyStore.closeStorage(PropertyStore.ja
> > > va:106)
> > >     at
> > >
> > org.neo4j.impl.nioneo.store.CommonAbstractStore.close(CommonAbstractSto
> > > re.java:485)
> > >     at
> > > org.neo4j.impl.nioneo.store.NeoStore.closeStorage(NeoStore.java:81)
> > >     at
> > >
> > org.neo4j.impl.nioneo.store.CommonAbstractStore.close(CommonAbstractSto
> > > re.java:485)
> > >     at
> > >
> > org.neo4j.impl.nioneo.xa.NeoStoreXaDataSource.close(NeoStoreXaDataSourc
> > > e.java:238)
> > >     at
> > >
> > org.neo4j.impl.nioneo.xa.NioNeoDbPersistenceSource.stop(NioNeoDbPersist
> > > enceSource.java:71)
> > >     at
> > > org.neo4j.api.core.NeoJvmInstance.shutdown(NeoJvmInstance.java:228)
> > >     at org.neo4j.api.core.EmbeddedNeo.shutdown(EmbeddedNeo.java:195)
> > >     at
> > >
> > edu.uchicago.nsit.iteco.server.neo.NeoHelper.<init>(NeoHelper.java:132)
> > >     at
> > >
> > edu.uchicago.nsit.iteco.server.neo.NeoDatabase.loadData(NeoDatabase.jav
> > > a:96)
> > >     ... 13 more
> > > Caused by: java.io.IOException: The parameter is incorrect
> > >     at sun.nio.ch.FileDispatcher.write0(Native Method)
> > >     at sun.nio.ch.FileDispatcher.write(Unknown Source)
> > >     at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
> > >     at sun.nio.ch.IOUtil.write(Unknown Source)
> > >     at sun.nio.ch.FileChannelImpl.write(Unknown Source)
> > >     at
> > >
> > org.neo4j.impl.nioneo.store.CommonAbstractStore.close(CommonAbstractSto
> > > re.java:512)
> > >     ... 23 more
> > >
> > > The exception happened on startup and not shutdown, so I wonder why
> > it
> > > was trying to close the store.  Maybe a failed partial conversion to
> > > new format?
> > >
> > > Miraculously when I reloaded the application the store appeared to
> > load
> > > successfully (there were no exceptions and everything appeared to be
> > > there) although I haven't reran all my unit tests on this.
> > >
> > > Has the store format changed recently in an incompatible way and does
> > > this happen often?
> > >
> > > I haven't tried the latest official release "b-8" yet but I will do
> > > that next.  Probably if the store had been serialized with "b-7" this
> > > wouldn't have happened but I like to have the latest bug fixes in
> > trunk
> > > and the trunk has proven stable for me in the past.
> _______________________________________________
> Neo mailing list
> User at lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Tobias Ivarsson <tobias.ivarsson at neotechnology.com>
Hacker, Neo Technology
www.neotechnology.com
Cellphone: +46 706 534857


More information about the User mailing list