Check container existence before creating one in s3api
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Yuxin Wang |
Bug Description
When initiating multiupload in s3api, we should check container existence before creating one.
A container PUT request will create a container db or update the existing one if the container's already there. When the disk that the container db landed is under heavy load, such container PUT will fail due to LockTimeout. It's worse if you are initiating lots of multiuploads (which was one of our clients' use cases). For avoiding this, we'd better first check its existence using HEAD, then PUT.
try:
except BucketAlreadyEx
pass
Error logs:
Jun 8 10:20:49 master proxy-server: ERROR with Container server 10.10.130.
Jun 8 10:20:49 master container-server: ERROR __call__ error with PUT /hdd003/
Changed in swift: | |
assignee: | nobody → Yuxin Wang (chhyx2008) |
Fix proposed to branch: master /review. openstack. org/580333
Review: https:/