Upload starves greenthreads
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance Client |
Invalid
|
Undecided
|
Unassigned |
Bug Description
The upload of files can starve other greenthreads in the same process. When glanceclient is used in Nova for snapshot upload, this can lead to RPC connection timeouts and connection aborts causing concurrent operations to fail.
In our KVM libvirt environment, 5 concurrent snapshot uploads from the same host was able to cause significant starvation on the other threads.
The root cause is that file I/O goes not yield to other threads with greenthreads. This causes the greenthreads that are running the upload to capitalize on the processor time and starve the other threads.
The suggested fix for this would be to take the CooperativeReader class from glance/
resp, body_iter = self.api.
'PUT', url, headers=hdrs,
In our environment this has been shown to alleviate the Nova greenthread starvation issues when doing snapshots.
Changed in python-glanceclient: | |
status: | Incomplete → Invalid |
Is this still a problem you can replicate with the latest versions of Nova and glanceclient?