Project

General

Profile

Actions

Bug #7064

closed

S3 request to non-existent object in non-existent bucket results in 30 second timeout/500 error from Apache

Added by Michael Kidd over 10 years ago. Updated about 10 years ago.

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

0%

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

Description

A request to:
curl -v http://192.168.2.16:8080/doesnotexist/missingkey

Results in a 30 second timeout from Apache and a '500 Internal Server Error' being returned to the client.

Logs with 'debug rgw = 20, debug ms = 1' attached (sanitized to remove customer identifying details).

Suspected issue:
  • RGW attempts to map a bucket name to a pool, then query the proper pool for that bucket
  • In this case, the bucket-to-pool mapping returns an empty string for the pool name since the bucket does not exist
  • When a query is passed down to the rados level for an object in a pool with an empty string for a name (which does not exist), the call hangs
Workaround:
  • By creating a pool with no name, the call will succeed and return ENOENT which will result in the 404 that we desire.

Files

rgw_logs.tar.bz2 (2.12 KB) rgw_logs.tar.bz2 Logs of failed request Michael Kidd, 12/27/2013 06:32 AM
Actions #1

Updated by Ian Colle about 10 years ago

  • Assignee set to Yehuda Sadeh
  • Priority changed from Normal to High
Actions #2

Updated by Yehuda Sadeh about 10 years ago

  • Status changed from New to Fix Under Review
  • Assignee changed from Yehuda Sadeh to Josh Durgin
Actions #3

Updated by Yehuda Sadeh about 10 years ago

  • Status changed from Fix Under Review to Resolved

Fixed, commit:3ed68eb9fac9b3d0bf9111867d609f9ea08fb202

Actions

Also available in: Atom PDF