Details
-
Sub-task
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
-
Reviewed
Description
I saw a case where 2 separate applications tried to use the same non-pre-existing table with table.create = true at about the same time. One failed with a ResourceInUse exception. If a table does not exist, we attempt to create it and then wait for it to enter the active state. If another jumps in in the middle of that, the table may exist, thus bypassing our call to waitForActive(), and then try to use the table immediately.
While we're at it, let's also make sure that the race condition where a table might get created between checking if it exists and attempting to create it is handled gracefully.
Attachments
Attachments
Issue Links
- breaks
-
HADOOP-14288 TestDynamoDBMetadataStore is broken unless we can fail faster without a table version
- Resolved
- is depended upon by
-
HADOOP-13998 Merge initial S3guard release into trunk
- Resolved