Project

General

Profile

Bug #57911

Segmentation fault when uploading file with bucket policy on Quincy

Added by Jan Graichen 3 months ago. Updated 27 days ago.

Status:
Pending Backport
Priority:
High
Target version:
% Done:

0%

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

Description

RGW crashes when a file is uploaded and a bucket policy has been set up.

The crash has been reproduced for latest Quincy release (17.2.4) and dev branches using the official container images (latest-quiny, latest-quincy-devel, latest, and latest-devel).

A fully automatic test script, an example policy, and a reproducing CI pipeline is provided on GitHub.

   -19> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  1 ====== starting new request req=0x7f4c03b9c730 =====
   -18> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s initializing for trans_id = tx000000c91d834c3cbab37-00634d0f73-100e-default
   -17> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s getting op 4
   -16> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj verifying requester
   -15> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj normalizing buckets and tenants
   -14> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj init permissions
   -13> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj recalculating target
   -12> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj reading permissions
   -11> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj init op
   -10> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj verifying op mask
    -9> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj verifying op permissions
    -8> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj verifying op params
    -7> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj pre-executing
    -6> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj check rate limiting
    -5> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  2 req 905742721212984119 0.000000000s s3:post_obj executing
    -4> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  0 req 905742721212984119 0.000000000s s3:post_obj Signature verification algorithm AWS v4 (AWS4-HMAC-SHA256)
    -3> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  0 req 905742721212984119 0.000000000s Signature verification algorithm AWS v4 (AWS4-HMAC-SHA256)
    -2> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  1 policy condition check $key [uploads/test.txt] uploads/ [uploads/]
    -1> 2022-10-17T08:16:51.964+0000 7f4ddcdf7700  1 policy condition check $Content-Type []  []
     0> 2022-10-17T08:16:51.968+0000 7f4ddcdf7700 -1 *** Caught signal (Segmentation fault) **
 in thread 7f4ddcdf7700 thread_name:radosgw

 ceph version 17.2.4 (1353ed37dec8d74973edc3d5d5908c20ad5a7332) quincy (stable)
 1: /lib64/libpthread.so.0(+0x12cf0) [0x7f4e670c2cf0]
 2: (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x12) [0x7f4e69689e72]
 3: (rgw::sal::Object::get_obj() const+0x28) [0x7f4e69980008]
 4: (RGWPostObj::execute(optional_yield)+0xb2) [0x7f4e69b3a2c2]
 5: (rgw_process_authenticated(RGWHandler_REST*, RGWOp*&, RGWRequest*, req_state*, optional_yield, rgw::sal::Store*, bool)+0xab8) [0x7f4e697457f8]
 6: (process_request(rgw::sal::Store*, RGWREST*, RGWRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rgw::auth::StrategyRegistry const&, RGWRestfulIO*, OpsLogSink*, optional_yield, rgw::dmclock::Scheduler*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> >*, std::shared_ptr<RateLimiter>, int*)+0xe54) [0x7f4e69746e94]
 7: /lib64/libradosgw.so.2(+0x638635) [0x7f4e696a6635]
 8: /lib64/libradosgw.so.2(+0x639816) [0x7f4e696a7816]
 9: make_fcontext()

The same or a similar crash has been reported and fixed for Pacific here: #51574


Related issues

Copied to rgw - Backport #58388: quincy: Segmentation fault when uploading file with bucket policy on Quincy In Progress

History

#1 Updated by Casey Bodley 3 months ago

  • Priority changed from Normal to High

#2 Updated by Daniel Gryniewicz 3 months ago

  • Status changed from New to In Progress
  • Assignee set to Daniel Gryniewicz

#3 Updated by Daniel Gryniewicz 3 months ago

  • Status changed from In Progress to Fix Under Review
  • Backport set to quincy
  • Pull request ID set to 48794

#4 Updated by Casey Bodley 27 days ago

  • Status changed from Fix Under Review to Pending Backport

#5 Updated by Backport Bot 27 days ago

  • Copied to Backport #58388: quincy: Segmentation fault when uploading file with bucket policy on Quincy added

#6 Updated by Backport Bot 27 days ago

  • Tags set to backport_processed

Also available in: Atom PDF