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"?>
        Your previous request to create the named 
        bucket succeeded and you already own it.

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.

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

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

View raw message