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

cannot update any node #12187

Open
ismaeladra opened this issue Mar 27, 2019 · 14 comments
Open

cannot update any node #12187

ismaeladra opened this issue Mar 27, 2019 · 14 comments

Comments

@ismaeladra
Copy link

i have a neo4j casual cluster with 3 nodes i can't update nodes attributes or create new relation any query will last forever and locks will still active

**Neo4j Version:3.4.12
Operating System: centos 7.5

@jexp
Copy link
Member

jexp commented Mar 27, 2019

How do you try to update data?
Do you use a driver with the bolt+routing protocol?
And do you use a WRITE transaction/session?

@ismaeladra
Copy link
Author

i tried three ways

  1. neo4j browser
  2. cypher shell
  3. python py2neo with bolt+routing

@jexp
Copy link
Member

jexp commented Mar 27, 2019

What does your query look like and are there any messages in the debug.log files of the cluster member.

Are you sure the cluster has formed? Please check that first.

@ismaeladra
Copy link
Author

my query : match (u:users) where u.user_id = 100 set u.username = 'test'
cluster is formed
and there are no error messages or anything suspicous in debug.log

@jexp
Copy link
Member

jexp commented Mar 27, 2019

And your db is empty to start with?

or do you already have users? If you do, make sure to have a constraint like:

create constraint on (u:users) assert u.user_id is unique

@jexp
Copy link
Member

jexp commented Mar 27, 2019

Can you share the output of call dbms.listQueries() and call dbms.listActiveLocks('your-query-id')

@ismaeladra
Copy link
Author

ismaeladra commented Mar 27, 2019

my db is not empty and i already have users and i have this constraint created before

listqueries.xlsx

queryId username metaData query parameters planner runtime indexes startTime protocol clientAddress requestUri status resourceInformation activeLockCount elapsedTimeMillis cpuTimeMillis waitTimeMillis idleTimeMillis allocatedBytes pageHits pageFaults
query-4389 SocialAdmin {} call dbms.listQueries() {} procedure procedure [] 2019-03-27T14:15:02.508Z bolt 10.32.192.18:13309 10.0.31.61:7687 running {} 0 4 null 0 null null 0 0
query-3318 SocialAdmin {} match (u:wo_users) where u.user_id = '1050' set u.country_id = 209 {} idp slotted [{propertyKey:user_id,identifier:u,indexType:SCHEMA INDEX,label:wo_users,labelId:1,entityType:NODE}] 2019-03-27T10:35:03.675Z bolt 10.32.192.18:5510 10.0.31.61:7687 waiting {waitTimeMillis:13198844,lockMode:EXCLUSIVE,resourceType:NODE,resourceIds:[3491]} 2 13198847 null 13198844 null null 2 0

active locks

╒════════╤══════════════╤══════════════════╕
│ "mode" │"resourceType" │"resourceId" │
╞════════╪══════════════╪══════════════════╡
│ "SHARED"│"INDEX_ENTRY" │460640061450813690 │
├────────┼──────────────┼──────────────────┤
│ "SHARED"│"LABEL" │1 │
└────────┴──────────────┴──────────────────┘

@jexp
Copy link
Member

jexp commented Mar 27, 2019

Can you show the output of CALL dbms.cluster.overview()

@jexp
Copy link
Member

jexp commented Mar 27, 2019

Also if possible the status of your indexes:
call db.indexes

Do you have any other plugins / extensions installed/running that could affect this? E.g. some tx-event-handlers?

@jexp
Copy link
Member

jexp commented Mar 27, 2019

You could also try https://halin.graphapp.io and see if there is anything unusal.

@ismaeladra
Copy link
Author

cluster overview result is :

clusteroverview

result of call db.indexes :
indexes.xlsx

i don't have any plugin and i can't use this monotring tool becuase the db is not connected to internet and its inside my company intranet
can i user another monotirng tool like graphite ?

@jexp
Copy link
Member

jexp commented Mar 28, 2019

You can also install halin for offline use with Neo4j desktop.

@martinfurmanski
Copy link
Contributor

@ismaeladra1 This sounds very odd and possibly hard to diagnose for a regular end user, but you could try to get a thread dump and see if there are "bolt workers" actively processing the queries that you are submitting, and if so how they are blocked.

When getting the thread dump you have to do that on the instance to which the query was routed. To figure that out either you can use direct bolt connections (no routing) or use the WRITE-mode and check on the leader node.

Perhaps using the Java driver directly and enabling the most detailed level of logging will yield some further insights.
https://neo4j.com/docs/api/java-driver/1.7/org/neo4j/driver/v1/Logging.html

Maybe that is possible with cypher-shell or browser as well easily, but it is a bit out of my area to know in detail.

Also some more general typical advice: use latest versions of server, of driver, try restarting, check your configurations, network connectivity, environment, etc.

@rmgpinto
Copy link

I have the same problem, did you solve this?

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

No branches or pull requests

5 participants