Hello...

I ran into an error/bug using amanda with S3.  It had been working great
for a while and then started erroring out last week.

Tue Aug 16 05:01:32 2011: taper: PUT https://s3.amazonaws.com/mybucket
failed with 400/TooManyBuckets
Tue Aug 16 05:01:32 2011: taper: Device s3:mybucket/slot-10/ error =
'While creating new S3 bucket: You have attempted to create more buckets
than allowed (TooManyBuckets) (HTTP 400)'
Tue Aug 16 05:01:32 2011: taper: Device s3:mybucket/slot-10/ setting
status flag(s): DEVICE_STATUS_DEVICE_ERROR
Tue Aug 16 05:01:32 2011: taper: error (fatal): file device.c: line 1097
(device_read_label): assertion failed: (self->access_mode ==
ACCESS_NULL)


I upgraded from 3.2.3 to 3.3.0 hoping for more insight and newer code.
The error messages are much better.  But the error still happens, but
the reason shows up in the email!  


in device-src/s3-device.c :
    /* try creating the bucket, in case it doesn't exist */
    if (mode != ACCESS_READ && !s3_make_bucket(self->s3t[0].s3,
self->bucket)) {
        guint response_code;


I think this is a logic error.  In my case the bucket already exists and
we are at our bucket limit so the create bucket code returns an error
and nothing is ever written to S3.  I think the more correct logic is to
test is the bucket exists and only try to create it if it does not
exist.

Unfortunately, my C codeing skills are not up to submitting a patch.

And a big thanks to the s3 code writer, this is an awesome feature.




-- 
Christopher McCrory
To the optimist, the glass is half full.
To the pessimist, the glass is half empty.
To the engineer, the glass is twice as big as it needs to be.

Reply via email to