Project

General

Profile

Actions

Bug #7935

closed

rgw: multipart upload failure with s3cmd

Added by Yehuda Sadeh about 10 years ago. Updated about 10 years ago.

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

0%

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

Description

From ceph-users mailing list:

From: Benedikt Fraunhofer <given.to.lists.ceph-users.ceph.com.toasta.001@traced.net>

I can't download anything that's been uploaded as a multipart-upload.
I'm on 0.78 (f6c746c314d7b87b8419b6e584c94bfe4511dbd4)
on a non-ec-pool.

The upload is acknowledged as beeing ok

 2014-03-31 14:56:56.722727 7f4080ff9700  2 req 8:0.023285:s3:POST
/file1:complete_multipart:http status=200
 2014-03-31 14:56:56.722736 7f4080ff9700  1 ====== req done
req=0x7f407800b180 http_status=200 ======

, but on download, some error is translated to 404.

2014-03-31 14:56:57.885610 7f408cef8700 20 rados->get_obj_iterate_cb
oid=default.71025.1__multipart_file1.2/F9cdVNlUTdfYq7M9cTuQjYwbsS41Y5j.16
obj-ofs=61865984 read_ofs=0 len=4194304
2014-03-31 14:56:57.885635 7f408cef8700 20 rados->aio_operate r=0 bl.length=0
2014-03-31 14:56:57.885639 7f408cef8700 20
RGWObjManifest::operator++(): rule->part_size=4194304 rules.size()=2
2014-03-31 14:56:57.885640 7f408cef8700 20
RGWObjManifest::operator++(): stripe_ofs=66060288 part_ofs=61865984
rule->part_size=4194304
2014-03-31 14:56:57.885642 7f408cef8700  0
RGWObjManifest::operator++(): result: ofs=66060288 stripe_ofs=66060288
part_ofs=66060288 rule->part_size=4194304
2014-03-31 14:56:57.885737 7f40f27fc700 20 get_obj_aio_completion_cb:
io completion ofs=49283072 len=4194304
2014-03-31 14:56:57.885746 7f408cef8700 20 rados->get_obj_iterate_cb
oid=default.71025.1__multipart_file1.2/F9cdVNlUTdfYq7M9cTuQjYwbsS41Y5j.17
obj-ofs=66060288 read_ofs=0 len=1048576
2014-03-31 14:56:57.885770 7f408cef8700 20 rados->aio_operate r=0 bl.length=0
2014-03-31 14:56:57.885772 7f408cef8700 20
RGWObjManifest::operator++(): rule->part_size=4194304 rules.size()=2
2014-03-31 14:56:57.885773 7f408cef8700 20
RGWObjManifest::operator++(): stripe_ofs=70254592 part_ofs=66060288
rule->part_size=4194304
2014-03-31 14:56:57.885774 7f408cef8700  0
RGWObjManifest::operator++(): result: ofs=67108864 stripe_ofs=67108864
part_ofs=70254592 rule->part_size=4194304
2014-03-31 14:56:57.885786 7f408cef8700 10 get_obj_iterate() r=-2,
canceling all io
2014-03-31 14:56:57.885787 7f408cef8700 20 get_obj_data::cancel_all_io()
2014-03-31 14:56:57.885822 7f408cef8700  2 req 9:0.081262:s3:GET
/file1:get_obj:http status=404
2014-03-31 14:56:57.885837 7f408cef8700  1 ====== req done
req=0x7f4078011510 http_status=404 ======
2014-03-31 14:56:57.885839 7f408cef8700 20 process_request() returned -2
2014-03-31 14:56:57.885903 7f40f27fc700 20 get_obj_aio_completion_cb:
io completion ofs=53477376 len=4194304
2014-03-31 14:56:57.885958 7f40f27fc700 20 get_obj_aio_completion_cb:
io completion ofs=57671680 len=4194304
2014-03-31 14:56:57.886566 7f40f27fc700 20 get_obj_aio_completion_cb:
io completion ofs=66060288 len=1048576
2014-03-31 14:56:57.886636 7f40f27fc700 20 get_obj_aio_completion_cb:
io completion ofs=61865984 len=4194304

everything is working fine, if i disable the multipart-upload;

here's the script I used to test it:
---------------------------------------
#! /bin/bash

set -x

FN=file1
SIZE=64
S3CMD=s3cmd
S3CMD=/home/bf/s3cmd-1.5.0-beta1/s3cmd
MULTIPART="--disable-multipart" 
MULTIPART="" 

BUCK="s3://$(uuidgen)/" 
dd if=/dev/zero of=$FN bs=4M count=$(($SIZE/4)) &
$S3CMD  mb $BUCK
wait
$S3CMD  put $MULTIPART $FN $BUCK
sleep 1
$S3CMD  get --force ${BUCK}${FN} file1.1
---------------------------------------
Actions #1

Updated by Yehuda Sadeh about 10 years ago

  • Status changed from 12 to Fix Under Review
Actions #2

Updated by Yehuda Sadeh about 10 years ago

This issue happens when not all parts are the same size. Extended the s3 functional test to check this.

Actions #3

Updated by Josh Durgin about 10 years ago

  • Status changed from Fix Under Review to Resolved

commit:ed5a5e075544662a12d94e472da55aeb2f0efe5d

Actions

Also available in: Atom PDF