Must empty buffer so that no data can be read by subsequent requests

Bug #2002985 reported by Olivier Chaze
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)
New
Undecided
Unassigned

Bug Description

When a Swift quota for a project is exceeded, PUT requests will receive a 413 (Payload entity too large).
The problem is that some data has been read and buffered already. Data buffered isn't cleared and then another and unrelated incoming PUT request can read the data, causing ERRORs.

To reproduce :

1. Ensure project quota isn't reached :

swift --os-storage-url endpoint_url post -m quota-bytes:""

2. Copy data in continue:

rclone copy /path/to/some/data swift_account:folder/ --progress

3. While copying data, simulate overquota for the project by modifying its quota :

swift --os-storage-url endpoint_url post -m quota-bytes:"25"

Fix proposed :
https://review.opendev.org/c/openstack/swift/+/870541

Revision history for this message
Tim Burke (1-tim-z) wrote :

Thanks for reporting this, and working on a solution!

This sort of issue seems familiar to me -- what version of eventlet are you using? I wonder if https://github.com/eventlet/eventlet/pull/578 (released in eventlet 0.33.0) may have addressed it.

Revision history for this message
Olivier Chaze (o.chaze) wrote :

Hi Tim

Thanks for pointing this.
We're using a 0.30 version.
We tested the 0.33 verison and indeed we no longer see the issue !
This bug can therefore be closed and we'll abandon the changes proposed

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.