What does this error mean?

269 views
Skip to first unread message

Darren Govoni

unread,
Apr 4, 2012, 9:26:01 AM4/4/12
to Neo4j
org.neo4j.kernel.impl.nioneo.store.InvalidRecordException:
DynamicRecord Not in use, blockId[854]

Thanks.

Peter Neubauer

unread,
Apr 4, 2012, 9:58:48 AM4/4/12
to ne...@googlegroups.com

Do you have the version and messages.log for this?

Darren Govoni

unread,
Apr 4, 2012, 11:53:09 AM4/4/12
to Neo4j
Yeah, I'm going to follow up with more details, but thought I could
fix it, if I knew what the error generally means.

On Apr 4, 9:58 am, Peter Neubauer <neubauer.pe...@gmail.com> wrote:
> Do you have the version and messages.log for this?

Chris Albertson

unread,
Apr 4, 2012, 12:38:37 PM4/4/12
to ne...@googlegroups.com
On Wed, Apr 4, 2012 at 8:53 AM, Darren Govoni <darre...@gmail.com> wrote:
> Yeah, I'm going to follow up with more details, but thought I could
> fix it, if I knew what the error generally means.

It means a variable is not defined. For example before you can use
"X" in an statement like "X = 1.23;" you must first define X using a
statement like "float X;". You patch must have removed the "float
X;" urging this

But this is the simple case. the "float X;" type stamens could be in
some other file from where it is used. Not to be insulting but if
you are asking what this error means you will NOT be able to fix this.
So just make sure you have the correct kernel version for the patch

Chris Albertson
Redondo Beach, California

Peter Neubauer

unread,
Apr 4, 2012, 1:17:45 PM4/4/12
to ne...@googlegroups.com
Chris,
I am not following you here. Where does the assumption come from that
this has anything to do with Darrens programming model or definition
of variables? I think this is in MUCH lower layers of the Neo4j
storage and should not be depending on if variables in the client code
are defined or not.

Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

Neo4j                                - Graphs rule.
Program or be programmed - Computer Literacy for kids.
http://foocafe.org/#CoderDojo

Chris Albertson

unread,
Apr 4, 2012, 1:35:33 PM4/4/12
to ne...@googlegroups.com
Sorry. I seem to have crossed up two email threads. This was
supposed to answer a question with an almost identical subject line on
another email list. My reply is quite out of place here.

I guess "What does this error mean?" is a common question.

--

Peter Neubauer

unread,
Apr 4, 2012, 1:37:01 PM4/4/12
to ne...@googlegroups.com
haha,
Michael and I suspected that - it looked far to good to be a bot :)

Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

Neo4j                                - Graphs rule.
Program or be programmed - Computer Literacy for kids.
http://foocafe.org/#CoderDojo

On Wed, Apr 4, 2012 at 7:35 PM, Chris Albertson

Darren Govoni

unread,
Apr 4, 2012, 2:04:12 PM4/4/12
to Neo4j
Peter et. al.,

Here's the error I get. It comes from issuing a gremlin query to look
up a vertex by its ID. There are many threads hitting
neo4j in this fashion (less than 20 though).

File "/home/ubuntu/bzr/software/code/ontrenet/function/rexster.py",
line 180, in create_action\n
response=g.client.gremlin(\'g.V.filter{it.name=="\'+s[\'name\']+
\'"}\')\n', '
File "/usr/local/lib/python2.6/dist-packages/bulbs-0.3_20120330-
py2.6.egg/bulbs/neo4jserver/client.py", line 385, in gremlin\n
return self.request.post(path, params)\n', '
File "/usr/local/lib/python2.6/dist-packages/bulbs-0.3_20120330-
py2.6.egg/bulbs/rest.py", line 119, in post\n
return self.request(POST, path, params)\n', '
File "/usr/local/lib/python2.6/dist-packages/bulbs-0.3_20120330-
py2.6.egg/bulbs/rest.py", line 174, in request\n
return self.response_class(http_resp, self.config)\n', '
File "/usr/local/lib/python2.6/dist-packages/bulbs-0.3_20120330-
py2.6.egg/bulbs/neo4jserver/client.py", line 219, in __init__\n
self.handle_response(response)\n', '
File "/usr/local/lib/python2.6/dist-packages/bulbs-0.3_20120330-
py2.6.egg/bulbs/neo4jserver/client.py", line 250, in handle_response
\n
response_handler(response)\n', '
File "/usr/local/lib/python2.6/dist-packages/bulbs-0.3_20120330-
py2.6.egg/bulbs/rest.py", line 45, in server_error\n
raise SystemError(http_resp)\n', 'SystemError: ({\'status\':
\'500\', \'content-length\': \'5288\', \'content-encoding\':
\'UTF-8\', \'server\': \'Jetty(6.1.25)\', \'access-control-allow-origin
\': \'*\', \'content-type\': \'application/json\'}, \'{\\n
"message" : "DynamicRecord Not in use, blockId[854]",\\n

"exception" :
"org.neo4j.kernel.impl.nioneo.store.InvalidRecordException:
DynamicRecord Not in use, blockId[854]",\\n
"stacktrace" : [
"org.neo4j.kernel.impl.nioneo.store.AbstractDynamicStore.getRecord(AbstractDynamicStore.java:
333)", "
org.neo4j.kernel.impl.nioneo.store.AbstractDynamicStore.getLightRecords(AbstractDynamicStore.java:
278)",
"org.neo4j.kernel.impl.nioneo.store.PropertyStore.getRecord(PropertyStore.java:
360)",
"org.neo4j.kernel.impl.nioneo.xa.ReadTransaction.loadPropertyValue(ReadTransaction.java:
257)",
"org.neo4j.kernel.impl.persistence.PersistenceManager.loadPropertyValue(PersistenceManager.java:
87)",
"org.neo4j.kernel.impl.core.NodeManager.loadPropertyValue(NodeManager.java:
623)",
"org.neo4j.kernel.impl.core.Primitive.getPropertyValue(Primitive.java:
558)",
"org.neo4j.kernel.impl.core.Primitive.getProperty(Primitive.java:
270)",
"org.neo4j.kernel.impl.core.NodeImpl.getProperty(NodeImpl.java:49)",
"org.neo4j.kernel.impl.core.NodeProxy.getProperty(NodeProxy.java:
140)",
"org.neo4j.server.helpers.PropertyTypeDispatcher.consumeProperties(PropertyTypeDispatcher.java:
53)",
"org.neo4j.server.rest.repr.PropertiesRepresentation.serialize(PropertiesRepresentation.java:
50)",
"org.neo4j.server.rest.repr.NodeRepresentation.extraData(NodeRepresentation.java:
135)",
"org.neo4j.server.rest.repr.ObjectRepresentation.serialize(ObjectRepresentation.java:
146)",
"org.neo4j.server.rest.repr.Serializer.serialize(Serializer.java:
40)",
"org.neo4j.server.rest.repr.ListSerializer.addMapping(ListSerializer.java:
56)",
"org.neo4j.server.rest.repr.MappingRepresentation.addTo(MappingRepresentation.java:
52)",
"org.neo4j.server.rest.repr.ListRepresentation.serialize(ListRepresentation.java:
60)",
"org.neo4j.server.rest.repr.ListRepresentation.serialize(ListRepresentation.java:
51)",
"org.neo4j.server.rest.repr.OutputFormat.format(OutputFormat.java:
123)",
"org.neo4j.server.rest.repr.OutputFormat.response(OutputFormat.java:
100)",
"org.neo4j.server.rest.repr.OutputFormat.ok(OutputFormat.java:48)",
"org.neo4j.server.rest.web.ExtensionService.invokeGraphDatabaseExtension(ExtensionService.java:
122)",
"sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)",
"sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)",
"java.lang.reflect.Method.invoke(Method.java:597)",
"com.sun.jersey.spi.container.JavaMethodInvokerFactory
$1.invoke(JavaMethodInvokerFactory.java:60)",
"com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider
$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:
205)",
"com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:
75)",
"com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:
288)",
"com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:
147)",
"com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:
108)",
"com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:
147)",
"com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:
84)",
"com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:
1469)",
"com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:
1400)",
"com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:
1349)",
"com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:
1339)",
"com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:
416)",
"com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:
537)",
"com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:
699)",
"javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
"org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
511)",
"org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1166)",
"org.neo4j.server.statistic.StatisticFilter.doFilter(StatisticFilter.java:
62)",
"org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)",
"org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
388)",
"org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
182)",
"org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
765)",
"org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:
114)",
"org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)",
"org.mortbay.jetty.Server.handle(Server.java:326)",
"org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
542)",
"org.mortbay.jetty.HttpConnection
$RequestHandler.content(HttpConnection.java:943)",
"org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
"org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)",
"org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
"org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
410)",
"org.mortbay.thread.QueuedThreadPool
$PoolThread.run(QueuedThreadPool.java:582)"
]\\n}\')\n']

On Apr 4, 1:37 pm, Peter Neubauer <peter.neuba...@neotechnology.com>
wrote:
> haha,
> Michael and I suspected that - it looked far to good to be a bot :)
>
> Cheers,
>
> /peter neubauer
>
> G:  neubauer.peter
> S:  peter.neubauer
> P:  +46 704 106975
> L:   http://www.linkedin.com/in/neubauer
> T:   @peterneubauer
>
> Neo4j                                - Graphs rule.
> Program or be programmed - Computer Literacy for kids.http://foocafe.org/#CoderDojo
> >> <albertson.ch...@gmail.com> wrote:

Darren Govoni

unread,
Apr 4, 2012, 2:05:33 PM4/4/12
to Neo4j
I'm using 1.7 SNAPSHOT btw.

Peter Neubauer

unread,
Apr 4, 2012, 2:09:09 PM4/4/12
to ne...@googlegroups.com

What neo4j version is this?

James Thornton

unread,
Apr 4, 2012, 2:42:16 PM4/4/12
to ne...@googlegroups.com
Your code is from rexster.py, but the error message is for Neo4j Server -- is that right?

Please post the code from your funciton in rexster.py so we can see the context.

Are you sure you want to do a g.V.filter{it.name == 'name'} instead of an index lookup?

g.V is going to be much slower because it iterates over every vertex.

This will be faster:

g.vertices.index.lookup(name='name')

- James

Darren Govoni

unread,
Apr 4, 2012, 3:47:04 PM4/4/12
to Neo4j
Thanks James. I will try that.

The stack trace apparently came back in the JSON response deep down in
the bulbs REST calls.
I had to beautify it some before posting so it was readable.

I can post more context, but I'm still wondering what the exception in
the server means.
If I can understand what _would_ case that error, I can do much of the
bug fixing myself I think.

On Apr 4, 2:42 pm, James Thornton <james.thorn...@gmail.com> wrote:
> Your code is from rexster.py, but the error message is for Neo4j Server --
> is that right?
>
> Please post the code from your funciton in rexster.py so we can see the
> context.
>
> Are you sure you want to do a g.V.filter{it.name == 'name'} instead of an
> index lookup?
>
> g.V is going to be much slower because it iterates over every vertex.
>
> This will be faster:
>
> g.vertices.index.lookup(name='name')
>
> - James
>
>
>
>
>
>
>
> On Wednesday, April 4, 2012 1:09:09 PM UTC-5, Peter Neubauer wrote:
>
> > What neo4j version is this?

James Thornton

unread,
Apr 4, 2012, 3:57:30 PM4/4/12
to ne...@googlegroups.com
I don't recall seeing an InvalidRecordException before -- presumably it means you are trying to access are record that doesn't exist --  it would probably be more apparent if we could see the context of the code.

Note that the index lookup will only work if you have indexed the vertices. Remember that you disabled Bulbs autoindexing so that you would bypass the Gremlin create and instead use the Neo4j Server create vertex resource directly, which does the list conversion for you.

To index a vertex, you can either manually do it by sending two HTTP requests -- one to create the vertex and one to index it -- or you can override the Bulbs create_indexed_vertex Gremlin script and include the list property conversion code I showed you from the Neo4j REST endpoint.

- James

Peter Neubauer

unread,
Apr 4, 2012, 5:37:42 PM4/4/12
to ne...@googlegroups.com
Darren,,
any chance you have the DB somewhere accessible so we can see the
messages.log etc?

Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

Neo4j                                - Graphs rule.
Program or be programmed - Computer Literacy for kids.
http://foocafe.org/#CoderDojo

Darren Govoni

unread,
Apr 4, 2012, 5:40:56 PM4/4/12
to Neo4j
Hi James,

Thanks for the helpful suggestions!

I see what you mean. I had to disable the auto indexing to bypass the
issue I was having
before, but now have to manually create the index. Actually, just
checked the Neo4j web admin
tool (which is really nice btw) and it indicates there is a "vertex"
and "edge" index. Not sure
if bulbs uses these specifically or not. I presume it would be?

As for the original exception, I will have to reproduce it more to see
why it is happening.
Still not sure what it means though. I do lookups for vertices and
then add edges to them.
If they don't exist, I create them. So pretty basic logic there.
Worked for 10,000 tries except
that one exception. Wierd.

Peter Neubauer

unread,
Apr 4, 2012, 5:49:53 PM4/4/12
to ne...@googlegroups.com
Darren,
I still would like to see the DB when you get that exception. would
that be possible? Maybe just messages.log is enough.

Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

Neo4j                                - Graphs rule.
Program or be programmed - Computer Literacy for kids.
http://foocafe.org/#CoderDojo

Darren Govoni

unread,
Apr 4, 2012, 5:54:05 PM4/4/12
to Neo4j
Tried this:

>>> v1=g.vertices.index.lookup(name='author')
>>> for _v in v1:
... print _v
...
>>>
>>> v1=g.vertices.get(132)
>>> v1.name
u'author'

Got my vertex with name 'author' using .get (and the id), but lookup
with name returned nothing.

Darren Govoni

unread,
Apr 4, 2012, 6:42:14 PM4/4/12
to Neo4j
Peter,
Let me see if I can do that. Should be possible.

Thanks.

On Apr 4, 5:49 pm, Peter Neubauer <peter.neuba...@neotechnology.com>
wrote:
> Darren,
> I still would like to see the DB when you get that exception. would
> that be possible? Maybe just messages.log is enough.
>
> Cheers,
>
> /peter neubauer
>
> G:  neubauer.peter
> S:  peter.neubauer
> P:  +46 704 106975
> L:   http://www.linkedin.com/in/neubauer
> T:   @peterneubauer
>
> Neo4j                                - Graphs rule.
> Program or be programmed - Computer Literacy for kids.http://foocafe.org/#CoderDojo

James Thornton

unread,
Apr 4, 2012, 10:22:23 PM4/4/12
to ne...@googlegroups.com


On Wednesday, April 4, 2012 4:54:05 PM UTC-5, project2501 wrote:
Tried this:

>>> v1=g.vertices.index.lookup(name='author')
>>> for _v in v1:
...    print _v
...
>>>
>>> v1=g.vertices.get(132)
>>> v1.name
u'author'

Got my vertex with name 'author' using .get (and the id), but lookup
with name returned nothing. 


Yeah, you have config.autoindex set to False so unless you are manually doing...

>>> g.vertices.index.put(v1.eid, "name", "author")

...then the vertex won't be in  the index for the key/value pair.

Or you can re-enable autoindexing and override the create_indexed_vertex Gremlin script to include this list property conversion code:


- James


 

Darren Govoni

unread,
Apr 4, 2012, 11:11:14 PM4/4/12
to Neo4j
Where can I find the "create_indexed_vertex Gremlin script"? Did you
mean a method on your neo4j Graph class?

Why is that modification needed?
Is it related to passing property values as lists ['a','b','c','d']?
> https://github.com/neo4j/community/blob/master/server/src/main/java/o...
>
> - James

James Thornton

unread,
Apr 4, 2012, 11:59:36 PM4/4/12
to ne...@googlegroups.com


On Wednesday, April 4, 2012 10:11:14 PM UTC-5, project2501 wrote:
Where can I find the "create_indexed_vertex Gremlin script"? Did you
mean a method on your neo4j Graph class?

Why is that modification needed?
Is it related to passing property values as lists ['a','b','c','d']? 


It's in Neo4j Server's gremlin.groovy file:


To override it, create a gremlin.groovy file in your application, and include in it the create_indexed_vertex function you want to use.

Then add your gremlin.groovy file to the script library like this:

>>> g =Graph()
>>> g.scripts.update('/path/to/your/gremlin.groovy')

This will cause your create_indexed_vertex function to override the default one. Now if config.autoindex is set to True, it will automatically each vertex when you create it using the standard create method:

>>> james = g.vertices.create(name="James")
>>> vertices = g.vertices.index.lookup(name="James")

- James

James Thornton

unread,
Apr 5, 2012, 12:38:39 AM4/5/12
to ne...@googlegroups.com


On Wednesday, April 4, 2012 10:59:36 PM UTC-5, James Thornton wrote:


On Wednesday, April 4, 2012 10:11:14 PM UTC-5, project2501 wrote:

Why is that modification needed?
Is it related to passing property values as lists ['a','b','c','d']? 

Yes. Override the create_indexed_vertex Groovy function to include the list property conversion code I cited above.

- James

 

Darren Govoni

unread,
Apr 5, 2012, 6:54:54 AM4/5/12
to Neo4j
Gotcha. Will do that.
Reply all
Reply to author
Forward
0 new messages