hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joni Niemi (JIRA)" <j...@apache.org>
Subject [jira] Created: (HADOOP-6734) Jets3tNativeFileSystemStore wrongly calls S3Service.createBucket during initialisation
Date Thu, 29 Apr 2010 10:59:54 GMT
Jets3tNativeFileSystemStore wrongly calls S3Service.createBucket during initialisation
--------------------------------------------------------------------------------------

                 Key: HADOOP-6734
                 URL: https://issues.apache.org/jira/browse/HADOOP-6734
             Project: Hadoop Common
          Issue Type: Bug
          Components: fs/s3
    Affects Versions: 0.18.3
         Environment: S3 Europe
            Reporter: Joni Niemi


Reason: If a bucket is created with CreateBucketConfiguration specified, s3service.createBucket
will fail. 
Symptoms: If a bucket has CreateBucketConfiguration, Jets3tNativeFileSystemStore will fail
with BucketAlreadyOwnedByYou Error.

A detailed descrioption from a blog (http://john.keyes.ie/boto-create_bucket-bucketalreadyownedbyyou-error/)

{quote}This evening I encountered a problem with it though. When the bucket did not exist,
the method behaved as expected. When the bucket did exist though I received the following
error response:

{code}<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>BucketAlreadyOwnedByYou</Code>
    <Message>
        Your previous request to create the named 
        bucket succeeded and you already own it.
    </Message>
    ...
</Error>{code}

This problem only manifests itself with buckets that are hosted in the EU. If the bucket is
created in the US then the create_bucket method behaves as described.

    For buckets created with a <CreateBucketConfiguration>, you will receive an error
if you attempt to recreate the same bucket.

To create a bucket in the EU, the bucket is created with a CreateBucketConfiguration specified.
I now use the following code to avoid the problem and it works for both US and EU buckets.

{code}
def get_bucket():
    try:
        bucket = conn.get_bucket('xxx', validate=True)
    except S3ResponseError, e:
        if e.code == "NoSuchBucket":
            bucket = conn.create_bucket('xxx', location='EU')
        else:
            raise e
    return bucket
{code}
{quote}



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message