Thanks for the explanation Clay!
As to why, well suppose you have a quarantined container...and want to
see where it thinks it should be. - you'll call swift-container-info on
it right? That calls get_info - so will attempt to re-quarantine the
file...which is unexpected - and scary (it will try to move away the
directory too)! Also means you can't get the metadata as the script
bails before printing it.
regards
Mark
On 15/06/17 13:55, Clay Gerrard wrote:
Pretty sure that's true and mostly optimistic on the part of the db
replicator which is more in the data path for replication - than say
rsync object replication.
If you look at ssync or ec reconstructor you'll see it's quite
possible for them to trip built in DiskFile quarantine behavior during
replication as well!
I wouldn't say it's "by design" but we've never been shy to quarantine
anytime we encounter invalid data - the storage wsgi servers can
quarantine for example - if you happen to hit the right object at the
right time.
Why? ;)
-Clay
On Wed, Jun 14, 2017 at 6:16 PM Mark Kirkwood
<[email protected] <mailto:[email protected]>>
wrote:
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
_______________________________________________
Mailing list:
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : [email protected]
<mailto:[email protected]>
Unsubscribe :
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : [email protected]
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack