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 <drakonstein@xxxxxxxxx> 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 <f21.groups@xxxxxxxxx> 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 <f21.groups@xxxxxxxxx> 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 <f21.groups@xxxxxxxxx> 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 >> >>>> ceph-users@xxxxxxxxxxxxxx >> >>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com >> >> >> >> >> >> _______________________________________________ >> ceph-users mailing list >> ceph-users@xxxxxxxxxxxxxx >> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com