[Openstack] [Swift] Differing behaviour/design re quarantining for objects vs containers

Mark Kirkwood mark.kirkwood at catalyst.net.nz
Thu Jun 15 01:06:53 UTC 2017


This was highlighted to me recently, and after doing some experiments it 
seems that the 'job descriptions' for replicators vs auditors is 
different for objects vs containers (and probably accounts).

For objects:

- replicator will move objects to where they should go

- auditor will check validity + quarantine as required


For containers (and possibly accounts - haven't checked but code looks 
similar)

- replicator will move objects to where they should go and check 
validity + quarantine as required

- auditor will check validity and quarantine as required


This looks a bit like the container replicator is treading on the 
auditors toes - is this intended and/or am I missing something?


In terms of *why* this happens, it seems to be due to:

- ContainerBroker.get_info using a self.get which resolves to 
DatabaseBroker.get

- DatabaseBroker.get calls self.possibly_quarantine

So anywhere that these brokers call 'get_info' results in a potential 
quarantine...this *looks* like it might be accidental function creepage 
- thoughts?

(This code analysis done on Mitaka/2.7.0)


regards

Mark





More information about the Openstack mailing list