py2neo 1.6.2 と neo4j 2.0.1 を使用して Cypher クエリでインデックスを作成しようとしています。
graph_db = neo4j.GraphDatabaseService()
query = "CREATE INDEX ON :Label(prop)"
neo4j.CypherQuery(graph_db, query).run()
このクエリは、neo4j Web インターフェイスでは正常に機能しますが、py2neo ではデッドロック エラーがスローされます。
py2neo.neo4j.DeadlockDetectedException: パニックにならないでください。
デッドロック シナリオが検出され、回避されました。これは、ロックを保持していた 2 つ以上のトランザクションが、互いに保持されているロックを待機しようとしていたことを意味します。これにより、これらのトランザクション間でデッドロックが発生します。この例外は、そのデッドロックに陥る代わりにスローされました。
これを回避する方法については、Neo4j マニュアルのデッドロックのセクションを参照してください: http://docs.neo4j.org/chunked/stable/transactions-deadlocks.html
詳細: 'Transaction(15438, owner:"qtp1927594840-9525")[STATUS_ACTIVE,Resources=1] can't wait on resource RWLock[SchemaLock]since => Transaction(15438, owner:"qtp1927594840-9525")[STATUS_ACTIVE, Resources=1] <-[:HELD_BY]- RWLock[SchemaLock] <-[:WAITING_FOR]- Transaction(15233, owner:"qtp1927594840-9503")[STATUS_ACTIVE,Resources=1] <-[:HELD_BY]- RWLock[ SchemaLock]'.
ラベルが存在するかどうかは関係ありません。通常、リクエストは失敗します。