lwsa-leonardosouza commented on issue #13224:
URL: https://github.com/apache/cloudstack/issues/13224#issuecomment-5147419417

   We are hitting the same problem, and I think I can add the missing piece — 
the exact error @abh1sar asked about and the root cause.
   
   Root cause: BucketUsageTask throws an NPE on empty buckets, which aborts the 
whole run
   
   On our environment the hourly BucketUsageTask fails with this exception on 
every run:
   
   ERROR [o.a.c.s.o.B.BucketUsageTask] (Bucket-Usage-1) Error while fetching 
bucket usage
   com.cloud.utils.exception.CloudRuntimeException: Cannot invoke
   "org.twonote.rgwadmin4j.model.BucketInfo$Usage$RgwMain.getSize_kb()"
   because the return value of 
"org.twonote.rgwadmin4j.model.BucketInfo$Usage.getRgwMain()" is null
   
   The trigger is an empty bucket (0 objects). RGW only includes rgw.main in 
usage once a bucket has objects; for an empty bucket radosgw-admin bucket stats 
returns an empty usage ({}), so getUsage().getRgwMain() is null and 
.getSize_kb() throws. Because the exception propagates out of the task, the 
whole run aborts — every bucket iterated after the first empty one never gets 
its size updated and stays at size = 0. This also explains @jeanvetorello's 
note that "bucket usage records are also never generated". Buckets before the 
empty one are fine; the empty one and everything after are skipped. Suggested 
fix: null-check getRgwMain() (treat missing rgw.main as 0) and/or try/catch per 
bucket, in CephObjectStoreDriverImpl.java. Workaround: remove/populate empty 
buckets so every bucket has rgw.main.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to