apache / apache/accumulo

ZooReaderWriter.putData may create data, timeout, then fail

Open
#1,007 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
1.2k
Forks
487
Avg merge
4d 5h
Merged PRs (30d)
13

Description

[ZooUtil.putData()](https://github.com/apache/accumulo/blob/rel/1.9.2/fate/src/main/java/org/apache/accumulo/fate/zookeeper/ZooUtil.java#L293) accepts an option to fail on create if a node exists. I am not completely sure but I think the following can happen.

* Call to Zookeeper to create data timesout, but it was created by on the ZK server side AND it didn't exist
* Timeout exception causes a retry
* Retry fails because the node exists.

I noticed this while reviewing #1005

Contributor guide

Open the contributing guide

Research direction

Start with ZooUtil.java at the referenced putData implementation and trace how ZooReaderWriter.putData handles a timeout followed by a retry. Reproduce or verify the create-timeout scenario described in the issue, then establish expected behavior for a node that may already exist; the issue does not name a test or a specific fix.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.