I run with `debug rgw = 10` and was able to find these lines at the end of a request to create the bucket.
Successfully creating a bucket with `bucket_location = US` looks like [1]this. Failing to create a bucket has "ERROR: S3 error: 400 (InvalidLocationConstraint): The specified location-constraint is not valid" on the CLI and [2]this (excerpt from the end of the request) in the rgw log (debug level 10). "create bucket location constraint" was not found in the log for successfully creating the bucket. [1] 2018-02-26 19:52:36.419251 7f4bc9bc8700 10 cache put: name=local-atl.rgw.data.root++.bucket.meta.testerton:bef43c26-daf3-47ef-a3a5-e1167e3f88ac.39099765.1 info.flags=0x17 2018-02-26 19:52:36.419262 7f4bc9bc8700 10 adding local-atl.rgw.data.root++.bucket.meta.testerton:bef43c26-daf3-47ef-a3a5-e1167e3f88ac.39099765.1 to cache LRU end 2018-02-26 19:52:36.419266 7f4bc9bc8700 10 updating xattr: name=user.rgw.acl bl.length()=141 2018-02-26 19:52:36.423863 7f4bc9bc8700 10 RGWWatcher::handle_notify() notify_id 344855809097728 cookie 139963970426880 notifier 39099765 bl.length()=361 2018-02-26 19:52:36.423875 7f4bc9bc8700 10 cache put: name=local-atl.rgw.data.root++testerton info.flags=0x17 2018-02-26 19:52:36.423882 7f4bc9bc8700 10 adding local-atl.rgw.data.root++testerton to cache LRU end [2] 2018-02-26 19:43:37.340289 7f466bbca700 2 req 428078:0.004204:s3:PUT /testraint/:create_bucket:executing 2018-02-26 19:43:37.340366 7f466bbca700 5 NOTICE: call to do_aws4_auth_completion 2018-02-26 19:43:37.340472 7f466bbca700 10 v4 auth ok -- do_aws4_auth_completion 2018-02-26 19:43:37.340715 7f466bbca700 10 create bucket location constraint: cn 2018-02-26 19:43:37.340766 7f466bbca700 0 location constraint (cn) can't be found. 2018-02-26 19:43:37.340794 7f466bbca700 2 req 428078:0.004701:s3:PUT /testraint/:create_bucket:completing 2018-02-26 19:43:37.341782 7f466bbca700 2 req 428078:0.005689:s3:PUT /testraint/:create_bucket:op status=-2208 2018-02-26 19:43:37.341792 7f466bbca700 2 req 428078:0.005707:s3:PUT /testraint/:create_bucket:http status=400 On Mon, Feb 26, 2018 at 2:36 PM Yehuda Sadeh-Weinraub <[email protected]> wrote: > I'm not sure if the rgw logs (debug rgw = 20) specify explicitly why a > bucket creation is rejected in these cases, but it might be worth > trying to look at these. If not, then a tcpdump of the specific failed > request might shed some light (would be interesting to look at the > generated LocationConstraint). > > Yehuda > > On Mon, Feb 26, 2018 at 11:29 AM, David Turner <[email protected]> > wrote: > > Our problem only appeared to be present in bucket creation. Listing, > > putting, etc objects in a bucket work just fine regardless of the > > bucket_location setting. I ran this test on a few different realms to > see > > what would happen and only 1 of them had a problem. There isn't an > obvious > > thing that steps out about it. The 2 local realms do not have > multi-site, > > the internal realm has multi-site and the operations were performed on > the > > primary zone for the zonegroup. > > > > Worked with non 'US' bucket_location for s3cmd to create bucket: > > realm=internal > > zonegroup=internal-ga > > zone=internal-atl > > > > Failed with non 'US' bucket_location for s3cmd to create bucket: > > realm=local-atl > > zonegroup=local-atl > > zone=local-atl > > > > Worked with non 'US' bucket_location for s3cmd to create bucket: > > realm=local > > zonegroup=local > > zone=local > > > > I was thinking it might have to do with all of the parts being named the > > same, but I made sure to do the last test to confirm. Interestingly it's > > only bucket creation that has a problem and it's fine as long as I put > 'US' > > as the bucket_location. > > > > On Mon, Feb 19, 2018 at 6:48 PM F21 <[email protected]> wrote: > >> > >> I am using the official ceph/daemon docker image. It starts RGW and > >> creates a zonegroup and zone with their names set to an empty string: > >> > >> > https://github.com/ceph/ceph-container/blob/master/ceph-releases/luminous/ubuntu/16.04/daemon/start_rgw.sh#L36:54 > >> > >> $RGW_ZONEGROUP and $RGW_ZONE are both empty strings by default: > >> > >> > https://github.com/ceph/ceph-container/blob/master/ceph-releases/luminous/ubuntu/16.04/daemon/variables_entrypoint.sh#L46 > >> > >> Here's what I get when I query RGW: > >> > >> $ radosgw-admin zonegroup list > >> { > >> "default_info": "", > >> "zonegroups": [ > >> "default" > >> ] > >> } > >> > >> $ radosgw-admin zone list > >> { > >> "default_info": "", > >> "zones": [ > >> "default" > >> ] > >> } > >> > >> On 20/02/2018 10:33 AM, Yehuda Sadeh-Weinraub wrote: > >> > What is the name of your zonegroup? > >> > > >> > On Mon, Feb 19, 2018 at 3:29 PM, F21 <[email protected]> wrote: > >> >> I've done some debugging and the LocationConstraint is not being set > by > >> >> the > >> >> SDK by default. > >> >> > >> >> I do, however, need to set the region on the client to us-east-1 for > it > >> >> to > >> >> work. Anything else will return an InvalidLocationConstraint error. > >> >> > >> >> Francis > >> >> > >> >> > >> >> On 20/02/2018 8:40 AM, Yehuda Sadeh-Weinraub wrote: > >> >>> Sounds like the go sdk adds a location constraint to requests that > >> >>> don't go to us-east-1. RGW itself is definitely isn't tied to > >> >>> us-east-1, and does not know anything about it (unless you happen to > >> >>> have a zonegroup named us-east-1). Maybe there's a way to configure > >> >>> the sdk to avoid doing that? > >> >>> > >> >>> Yehuda > >> >>> > >> >>> On Sun, Feb 18, 2018 at 1:54 PM, F21 <[email protected]> wrote: > >> >>>> I am using the AWS Go SDK v2 (https://github.com/aws/aws-sdk-go-v2 > ) > >> >>>> to > >> >>>> talk > >> >>>> to my RGW instance using the s3 interface. I am running ceph in > >> >>>> docker > >> >>>> using > >> >>>> the ceph/daemon docker images in demo mode. The RGW is started > with a > >> >>>> zonegroup and zone with their names set to an empty string by the > >> >>>> scripts > >> >>>> in > >> >>>> the image. > >> >>>> > >> >>>> I have ForcePathStyle for the client set to true, because I want to > >> >>>> access > >> >>>> all my buckets using the path: myrgw.instance:8080/somebucket. > >> >>>> > >> >>>> I noticed that if I set the region for the client to anything other > >> >>>> than > >> >>>> us-east-1, I get this error when creating a bucket: > >> >>>> InvalidLocationConstraint: The specified location-constraint is not > >> >>>> valid. > >> >>>> > >> >>>> If I set the region in the client to something made up, such as > >> >>>> "ceph" > >> >>>> and > >> >>>> the LocationConstraint to "ceph", I still get the same error. > >> >>>> > >> >>>> The only way to get my buckets to create successfully is to set the > >> >>>> client's > >> >>>> region to us-east-1. I have grepped the ceph code base and cannot > >> >>>> find > >> >>>> any > >> >>>> references to us-east-1. In addition, I looked at the AWS docs for > >> >>>> calculating v4 signatures and us-east-1 is the default region but I > >> >>>> can > >> >>>> see > >> >>>> that the region string is used in the calculation (i.e. the region > is > >> >>>> not > >> >>>> ignored when calculating the signature if it is set to us-east-1). > >> >>>> > >> >>>> Why do my buckets create successfully if I set the region in my s3 > >> >>>> client > >> >>>> to > >> >>>> us-east-1, but not otherwise? If I do not want to use us-east-1 as > my > >> >>>> default region, for example, if I want us-west-1 as my default > >> >>>> region, > >> >>>> what > >> >>>> should I be configuring in ceph? > >> >>>> > >> >>>> Thanks, > >> >>>> > >> >>>> Francis > >> >>>> > >> >>>> _______________________________________________ > >> >>>> ceph-users mailing list > >> >>>> [email protected] > >> >>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com > >> >> > >> >> > >> > >> _______________________________________________ > >> ceph-users mailing list > >> [email protected] > >> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com >
_______________________________________________ ceph-users mailing list [email protected] http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
