Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Corrupted data & index after simultaneous vertex delete and indexed property update #994

Open
jjurowicz opened this issue Apr 5, 2018 · 0 comments

Comments

@jjurowicz
Copy link

jjurowicz commented Apr 5, 2018

[similar to #993]
Checked on janusgraph 0.2.0 and 0.3.0 (snapshot from 04.April.2018) on cassandra 3.11.1
This problem occurs on our environment, where by default we have 30 separate simultaneous connections to single janusgraph instance.
I was able to reduce the problem to simple reproducible scenario:

First, you need to connect to db (best empty) from two gremlin consoles (A and B) and proceed as follows:

on any gremlin console:

mgmt = g.openManagement()
mgmt.makePropertyKey("name").dataType(String.class).cardinality(Cardinality.SINGLE).make()
idx = mgmt.buildIndex("nameIndex", Vertex.class)
idx.addKey(mgmt.getPropertyKey("name")).buildCompositeIndex()
mgmt.commit()

gremlin console A)

g.addVertex("name", "A")
g.tx().commit()
v = g.traversal().V().has("name", "A").next()

gremlin console B)

g.traversal().V().has("name", "A").drop()
g.tx().commit()

gremlin console A)

v.property("name", "C")
g.tx().commit()

AFTER this check corrupted data on any console:
this will return "zombie" vertex
g.traversal().V().has("name", "C")
that is not on all vertices list:
g.traversal().V()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant