rgw: thoughts on lifecycle testing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



for a long time, our s3tests for lifecycle expiration have been
disabled in teuthology, because they were very sensitive to timing,
and relied on rgw's rgw_lc_debug_interval configuration to run
lifecycle processing more regularly than once per day. test cases that
passed reliably in local testing would fail randomly in the teuthology
environment

Soumya recently revived these expiration tests in a new rgw/lifecycle
suite, which sets rgw_lc_debug_interval to 10 seconds, and scales the
sleeps in test cases by a multiple of rgw_lc_debug_interval. this has
worked fairly well, but we've still seen some failures there

separating these tests into their own rgw/lifecycle suite helps a lot,
because we can continue to increase these sleeps without causing all
of the other s3tests in rgw/verify to take longer. the runtime of the
rgw/lifecycle job by itself is around 30-40 minutes. this will
continue to grow as we add new test cases, or extend the sleeps that
sometimes lead to failures. in the short/medium term, maybe this is
good enough

but if our goal was the minimize the runtime of these tests, i would
consider a model more like our https://github.com/ceph/ragweed/ tests,
where each test case is split up into a 'prepare' step and 'check'
step. we use ragweed in upgrade tests, which run the prepare step
against an older radosgw version, and the check step against an
upgraded radosgw

for lifecycle testing, the 'prepare' step would create buckets and
objects and set lifecycle policies. then we could run 'radosgw-admin
lc process' to completion once, then run all of the 'check' steps to
verify that the expected expirations/transitions took place

instead of relying on rgw_lc_debug_interval to scale the 'Days' in
lifecycle rules, 'radosgw-admin lc process' could take a new argument
like --rgw-lc-debug-offset=86400 that adds a day to the 'current' time
used in lifecycle time comparisons. without relying on sleeps and
rgw_lc_debug_interval, this should make the tests much more reliable.
if there are test cases that check progress over multiple expiration
cycles, the rgw/lifecycle suite would need to loop over more steps
instead of just prepare/check

_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx



[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux