Hi Pawan,
I am running DGraph from the Docker image dgraph/dgraph:v1.0.4. My client is written in Python.
I’ve checked the DGraph server logs and the DGraph zero logs and neither is showing any errors. Maybe I need to start them in debug mode to capture more logging?
I’ve also narrowed down the problem. It is only mutation transactions that delete a node that end up hanging. Mutation transactions that add a node or change a node attribute/edge do not hang.
Here is exactly what causes the issue:
- My client instantiates a new transaction_id based on current timestamp in milliseconds.
- I submit a delete mutation to the endpoint /mutate/{transaction_id}. I extract the keys from the response.
- I submit the keys returned from (3) to the endpoint /commit/{transaction_id}.
- The server does not respond.
The same steps with a mutation that adds a node or sets a node attribute works fine. Note I am not submitting any lin_read parameters. According to the docs, since I have a single-server setup with no replication, I should not have to do that.
For now, I’ve gotten around the problem by submitting all delete mutations with the “X-Dgraph-CommitNow” header but it would be nice to get to the bottom of this issue.
EDIT: To be clear, in my original post I said this was due to transactions that I did not commit properly. The reason I thought that was because I was getting errors from the server when trying to resubmit failed transactions. I think that was actually because these were duplicate transactions submitted with a different start_ts parameter.
Based on the steps to reproduce above, this now actually seems to be a bug.