null pointer exception after deletion of graph vertices

121 views
Skip to first unread message

Jonathan Rosen

unread,
Feb 5, 2014, 4:42:50 PM2/5/14
to orient-...@googlegroups.com

Here is the error message:

Error: com.orientechnologies.orient.enterprise.channel.binary.OResponseProcessingException: Exception during response processing.

Error: com.orientechnologies.orient.core.exception.OCommandExecutionException: Error on execution of command: sql.select out_carries_product.in.name from #13:4

Error: java.lang.NullPointerException



What is the best way to debug this and fix the database?

Luca Garulli

unread,
Feb 6, 2014, 3:34:13 AM2/6/14
to orient-database

What version are you using?

Sent from Mobile device

--
 
---
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 orient-databa...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Jonathan Rosen

unread,
Feb 6, 2014, 11:48:25 AM2/6/14
to orient-...@googlegroups.com
version is 1.6.3

This problem occurred against a specific vertex. I have a vertex called store that connects to products via edges. I deleted the connected products to that vertex by using delete vertex where @class="products" and in.out.storename = "x"

This seemed to put that store vertex into an inconsistent state. It's edge count for in_myedge was a big number, where it should have been 0.

Note that I am not using lightweight edges. I am using edges with unique indexes to prevent duplication of edges between the same vertices.

I fixed the problem by issuing update storerid set in_myedge = []

In the past, this type of problem would take down the entire database, so it is good to see that the problem is now compartmentalized. However, there needs to be more information about how to get Orientdb out of these types of inconsistent states when they occur, and perhaps some scripts to run that attempt to identify and fix these problems. Generally, when I have asked about these types of problems in the past, the answer has been "you're kind of screwed" or "attach a debugger to the database". This is really an unacceptable answer...there needs to be a better way to fix these types of inconsistent state problems.







--
 
---
You received this message because you are subscribed to a topic in the Google Groups "OrientDB" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/orient-database/pJxT5aWqDds/unsubscribe.
To unsubscribe from this group and all its topics, send an email to orient-databa...@googlegroups.com.

Dexter Pratt

unread,
Feb 6, 2014, 11:55:57 AM2/6/14
to orient-...@googlegroups.com
I think I encountered a similar situation in 1.6.1 where a deleted vertex was still pointed to by others - I solved it in about the same way, explicitly nulling the connections before deleting.

I had not reported it since we will be attempting to move to 1.7 and was concerned this might be a dead issue.

- Dexter

Dexter Pratt
Director, NDEx project
Ideker Lab UCSD / Cytoscape Consortium

Andrey Lomakin

unread,
Feb 7, 2014, 5:29:41 AM2/7/14
to orient-database
Hi,
Not sure that it is fixed could you provide use case for this and we will try.
Best regards,
Andrey Lomakin.

Orient Technologies
the Company behind OrientDB

Andrey Lomakin

unread,
Feb 7, 2014, 6:10:17 AM2/7/14
to orient-database
Jonathan,
Just few notes do not work with fields representing relations directly there is no guaranty that field names will not be changed  next release, use functions.
In your case select out('caries_product').name from #13:4

Also if you work with edges (it is not needed in 1.7 RC1 though) use transnactional key word, otherwise you have chance to end up in inconsistent state because of  concurrent modification exception.
Reply all
Reply to author
Forward
0 new messages