Project

General

Profile

Actions

Bug #1081

closed

rgw: 500 error with x-amz-acl instead of explicit xml

Added by Sage Weil almost 13 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

if something like
'_headers' => bless( {
                                                               'user-agent' => 'libwww-perl/5.813',
                                                               'x-amz-acl' => 'public-read',
                                                               'date' => 'Wed, 11 May 2011 22:10:41 GMT',
                                                               'authorization' => 'AWS 8H0ig/i2101WfshVbNoQ:6an5TZXLpOt9MuqYakt6dR7OkRw='
                                                             }, 'HTTP::Headers' ),
is specified in the headers and no xml body is set, we get a 500 error.

Actions #1

Updated by Steven Berler almost 13 years ago

here's the full Response object (it contains the request object, so you can see what produced it)

$VAR1 = bless( {
'_protocol' => 'HTTP/1.1',
'_content' => '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator,
and inform them of the time the error occurred,
and anything you might have done that may have
caused the error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>
',
'_rc' => '500',
'_headers' => bless( {
'connection' => 'close',
'client-response-num' => 1,
'date' => 'Wed, 11 May 2011 22:25:51 GMT',
'vary' => 'Accept-Encoding',
'client-ssl-cert-issuer' => '/C=US/O=DREAMHOST CERTIFICATION AUTHORITY/CN=DREAMHOST SSL CA',
'client-ssl-cipher' => 'AES256-SHA',
'client-peer' => '66.33.201.74:443',
'content-length' => '544',
'client-date' => 'Wed, 11 May 2011 22:25:51 GMT',
'client-ssl-warning' => 'Peer certificate not verified',
'content-type' => 'text/html; charset=iso-8859-1',
'client-ssl-cert-subject' => '/C=US/postalCode=92821/ST=California/L=Brea/streetAddress=#324/streetAddress=417 Associated Rd/O=DreamHost/OU=Cloud/OU=Provided by New Dream Network, LLC/OU=DreamHost Premium Wildcard SSL/CN=*.objects.dreamhost.com',
'title' => '500 Internal Server Error',
'server' => 'Apache/2.2.16 (Debian)'
}, 'HTTP::Headers' ),
'_msg' => 'Internal Server Error',
'_request' => bless( {
'_content' => '',
'_uri' => bless( do{\(my $o = 'https://objects.dreamhost.com:443/berlertestobsync1/?acl')}, 'URI::https' ),
'_headers' => bless( {
'user-agent' => 'libwww-perl/5.813',
'x-amz-acl' => 'public-read',
'date' => 'Wed, 11 May 2011 22:25:51 GMT',
'authorization' => 'AWS 8H0ig/i2101WfshVbNoQ:/iqu0MhnGzyNET/uShUk35/bg4g='
}, 'HTTP::Headers' ),
'_method' => 'PUT'
}, 'HTTP::Request' )
}, 'HTTP::Response' );

Actions #2

Updated by Matthew Wodrich almost 13 years ago

When running $Conn->put_bucket_acl('berlertestobsync1', '', { 'x-amz-acl' => 'public-read' }); where $Conn is an S3::AWSAuthConnection, here is the dumper output of the perl HTTP::Response object that is returned:

$VAR1 = bless( {
'_protocol' => 'HTTP/1.1',
'_content' => '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator,
and inform them of the time the error occurred,
and anything you might have done that may have
caused the error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>
',
'_rc' => '500',
'_headers' => bless( {
'connection' => 'close',
'client-response-num' => 1,
'date' => 'Wed, 11 May 2011 22:25:51 GMT',
'vary' => 'Accept-Encoding',
'client-ssl-cert-issuer' => '/C=US/O=DREAMHOST CERTIFICATION AUTHORITY/CN=DREAMHOST SSL CA',
'client-ssl-cipher' => 'AES256-SHA',
'client-peer' => '66.33.201.74:443',
'content-length' => '544',
'client-date' => 'Wed, 11 May 2011 22:25:51 GMT',
'client-ssl-warning' => 'Peer certificate not verified',
'content-type' => 'text/html; charset=iso-8859-1',
'client-ssl-cert-subject' => '/C=US/postalCode=92821/ST=California/L=Brea/streetAddress=#324/streetAddress=417 Associated Rd/O=DreamHost/OU=Cloud/OU=Provided by New Dream Network, LLC/OU=DreamHost Premium Wildcard SSL/CN=*.objects.dreamhost.com',
'title' => '500 Internal Server Error',
'server' => 'Apache/2.2.16 (Debian)'
}, 'HTTP::Headers' ),
'_msg' => 'Internal Server Error',
'_request' => bless( {
'_content' => '',
'_uri' => bless( do{\(my $o = 'https://objects.dreamhost.com:443/berlertestobsync1/?acl')}, 'URI::https' ),
'_headers' => bless( {
'user-agent' => 'libwww-perl/5.813',
'x-amz-acl' => 'public-read',
'date' => 'Wed, 11 May 2011 22:25:51 GMT',
'authorization' => 'AWS 8H0ig/i2101WfshVbNoQ:/iqu0MhnGzyNET/uShUk35/bg4g='
}, 'HTTP::Headers' ),
'_method' => 'PUT'
}, 'HTTP::Request' )
}, 'HTTP::Response' );

We can see in it the 500 error returned as well as the request that is being made.

Actions #3

Updated by Anonymous almost 13 years ago

Here's a tcpdump snippet from s3-tests that works, compare against this to find the cause. (But 500 => there's an rgw bug anyway, even if you're doing it wrong.)

PUT /test-tv-tftq26bizjcc7y0q1rt1z-1/?acl HTTP/1.1
Host: localhost:7280
Accept-Encoding: identity
Date: Wed, 11 May 2011 22:40:44 GMT
Content-Length: 0
x-amz-acl: private
Authorization: AWS O54XVCC9MQ9Q72TWP5Y1:ls94kkX3yJm79PwYKkinmqGg/VQ=
User-Agent: Boto/2.0b4 (linux2)

HTTP/1.1 200 OK
Date: Wed, 11 May 2011 22:40:44 GMT
Server: Apache/2.2.16 (Ubuntu) mod_fcgid/2.3.5
Content-Length: 0
Content-Type: application/xml
Actions #4

Updated by Sage Weil almost 13 years ago

  • Translation missing: en.field_position set to 1
Actions #5

Updated by Colin McCabe almost 13 years ago

Setting canned ACLs works for me in the tests I am running.

I am running more s3-tests, so maybe that will unearth something related.

Is there any information in the server logs? It would be nice to see a backtrace from rgw or something like that.

Actions #6

Updated by Colin McCabe almost 13 years ago

  • Status changed from New to 7

should be fixed by 1d29cc7c7627683ba0ae2aa064abab4ea942b4e8.

Just need to test.

Actions #7

Updated by Sage Weil almost 13 years ago

  • Status changed from 7 to Resolved
  • Assignee set to Colin McCabe

yay fixed! patch is in next branch (for v0.28).

Actions #8

Updated by John Spray over 6 years ago

  • Project changed from Ceph to rgw
  • Category deleted (22)
  • Target version deleted (v0.29)

Bulk reassign of radosgw category to RGW project.

Actions

Also available in: Atom PDF