s3gw-tech / s3gw

Container able to run on a Kubernetes cluster, providing S3-compatible endpoints to applications.
https://s3gw.tech
Apache License 2.0
130 stars 20 forks source link

rgw/sfs: Restoring a deleted object segfaults #582

Closed votdev closed 1 year ago

votdev commented 1 year ago

This issue applies to the latest code in s3gw-ceph.

Note, i'm aware that the UI should prevent that, but the backend should handle that correctly as well.

Peek 2023-06-14 09-41

  -54> 2023-06-14T07:34:59.741+0000 7fa774520700  1 ====== starting new request req=0x7fa7ffdfe700 =====
   -53> 2023-06-14T07:34:59.741+0000 7fa774520700 10 zone_unique_id: TODO
   -52> 2023-06-14T07:34:59.741+0000 7fa774520700 10 zone_unique_trans_id: TODO
   -51> 2023-06-14T07:34:59.741+0000 7fa774520700 10 get_host_id: TODO
   -50> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s initializing for trans_id = 
   -49> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s rgw api priority: s3=8 s3website=7
   -48> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s host=localhost
   -47> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s meta>> HTTP_X_AMZ_COPY_SOURCE
   -46> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s meta>> HTTP_X_AMZ_DATE
   -45> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s meta>> HTTP_X_AMZ_METADATA_DIRECTIVE
   -44> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s meta>> HTTP_X_AMZ_TAGGING_DIRECTIVE
   -43> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s meta>> HTTP_X_AMZ_USER_AGENT
   -42> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s x>> x-amz-copy-source:test01%2Ffile1.jpg?versionId=Hptzd8bvEVzgAaCTHrwE3bqLNSHsrAL
   -41> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s x>> x-amz-date:Wed, 14 Jun 2023 07:34:59 GMT
   -40> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s x>> x-amz-metadata-directive:COPY
   -39> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s x>> x-amz-tagging-directive:COPY
   -38> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s x>> x-amz-user-agent:aws-sdk-js/2.1390.0 promise
   -37> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s name: versionId val: Hptzd8bvEVzgAaCTHrwE3bqLNSHsrAL
   -36> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s handler=22RGWHandler_REST_Obj_S3
   -35> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s getting op 1
   -34> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s s3:copy_obj scheduling with throttler client=2 cost=1
   -33> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s s3:copy_obj op=22RGWCopyObj_ObjStore_S3
   -32> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s s3:copy_obj verifying requester
   -31> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s get_canon_resource(): dest=/test01/file1.jpg
   -30> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s string_to_sign:
PUT

application/octet-stream; charset=UTF-8

x-amz-copy-source:test01%2Ffile1.jpg?versionId=Hptzd8bvEVzgAaCTHrwE3bqLNSHsrAL
x-amz-date:Wed, 14 Jun 2023 07:34:59 GMT
x-amz-metadata-directive:COPY
x-amz-tagging-directive:COPY
x-amz-user-agent:aws-sdk-js/2.1390.0 promise
/test01/file1.jpg
   -29> 2023-06-14T07:34:59.741+0000 7fa774520700 15 req 0 0.000000000s s3:copy_obj string_to_sign=PUT

application/octet-stream; charset=UTF-8

x-amz-copy-source:test01%2Ffile1.jpg?versionId=Hptzd8bvEVzgAaCTHrwE3bqLNSHsrAL
x-amz-date:Wed, 14 Jun 2023 07:34:59 GMT
x-amz-metadata-directive:COPY
x-amz-tagging-directive:COPY
x-amz-user-agent:aws-sdk-js/2.1390.0 promise
/test01/file1.jpg
   -28> 2023-06-14T07:34:59.741+0000 7fa774520700 15 req 0 0.000000000s s3:copy_obj server signature=Af9Nw9LDfKfAf2qm9cBmJQZKPO4=
   -27> 2023-06-14T07:34:59.741+0000 7fa774520700 15 req 0 0.000000000s s3:copy_obj client signature=Af9Nw9LDfKfAf2qm9cBmJQZKPO4=
   -26> 2023-06-14T07:34:59.741+0000 7fa774520700 15 req 0 0.000000000s s3:copy_obj compare=0
   -25> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s s3:copy_obj normalizing buckets and tenants
   -24> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s s->object=file1.jpg s->bucket=test01
   -23> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s s3:copy_obj init permissions
   -22> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s s3:copy_obj get_bucket: bucket: test01
   -21> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s s3:copy_obj get_bucket: bucket: test01
   -20> 2023-06-14T07:34:59.741+0000 7fa774520700 15 req 0 0.000000000s s3:copy_obj decode_policy Read AccessControlPolicy<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>testid</ID><DisplayName>M. Tester</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>testid</ID><DisplayName>M. Tester</DisplayName></Grantee><Permission>FULL_CONTROL</Permission></Grant></AccessControlList></AccessControlPolicy>
   -19> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s s3:copy_obj recalculating target
   -18> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s s3:copy_obj reading permissions
   -17> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s s3:copy_obj init op
   -16> 2023-06-14T07:34:59.741+0000 7fa774520700 10 get_quota: TODO
   -15> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s s3:copy_obj verifying op mask
   -14> 2023-06-14T07:34:59.741+0000 7fa774520700  2 req 0 0.000000000s s3:copy_obj verifying op permissions
   -13> 2023-06-14T07:34:59.741+0000 7fa774520700 10 req 0 0.000000000s s3:copy_obj get_bucket: bucket: test01
   -12> 2023-06-14T07:34:59.745+0000 7fa774520700 15 req 0 0.004000044s s3:copy_obj decode_policy Read AccessControlPolicy<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>testid</ID><DisplayName>M. Tester</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>testid</ID><DisplayName>M. Tester</DisplayName></Grantee><Permission>FULL_CONTROL</Permission></Grant></AccessControlList></AccessControlPolicy>
   -11> 2023-06-14T07:34:59.745+0000 7fa774520700  2 overriding permissions due to admin operation
   -10> 2023-06-14T07:34:59.745+0000 7fa774520700  2 req 0 0.004000044s s3:copy_obj verifying op params
    -9> 2023-06-14T07:34:59.745+0000 7fa774520700  2 req 0 0.004000044s s3:copy_obj pre-executing
    -8> 2023-06-14T07:34:59.745+0000 7fa774520700  2 req 0 0.004000044s s3:copy_obj check rate limiting
    -7> 2023-06-14T07:34:59.745+0000 7fa774520700  2 req 0 0.004000044s s3:copy_obj executing
    -6> 2023-06-14T07:34:59.745+0000 7fa774520700 10 req 0 0.004000044s s3:copy_obj x>> x-amz-copy-source:test01%2Ffile1.jpg?versionId=Hptzd8bvEVzgAaCTHrwE3bqLNSHsrAL
    -5> 2023-06-14T07:34:59.745+0000 7fa774520700 10 req 0 0.004000044s s3:copy_obj x>> x-amz-date:Wed, 14 Jun 2023 07:34:59 GMT
    -4> 2023-06-14T07:34:59.745+0000 7fa774520700 10 req 0 0.004000044s s3:copy_obj x>> x-amz-metadata-directive:COPY
    -3> 2023-06-14T07:34:59.745+0000 7fa774520700 10 req 0 0.004000044s s3:copy_obj x>> x-amz-tagging-directive:COPY
    -2> 2023-06-14T07:34:59.745+0000 7fa774520700 10 req 0 0.004000044s s3:copy_obj x>> x-amz-user-agent:aws-sdk-js/2.1390.0 promise
    -1> 2023-06-14T07:34:59.745+0000 7fa774520700 10 get_notification: return stub notification
     0> 2023-06-14T07:34:59.753+0000 7fa774520700 -1 *** Caught signal (Segmentation fault) **
 in thread 7fa774520700 thread_name:radosgw

 ceph version s3gw-v0.16.0-6-gb32d1e722ef (b32d1e722ef1b2dbf78844e1fb0e8a91b89d8994) reef (dev)
 1: /lib64/libpthread.so.0(+0x168c0) [0x7fa7fa2168c0]
 2: (RGWCopyObj::execute(optional_yield)+0xc1) [0x5588f8b810cf]
 3: (rgw_process_authenticated(RGWHandler_REST*, RGWOp*&, RGWRequest*, req_state*, optional_yield, rgw::sal::Driver*, bool)+0x1e77) [0x5588f892a705]
 4: (process_request(RGWProcessEnv const&, RGWRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, RGWRestfulIO*, 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> >*, int*)+0x2fc5) [0x5588f892edae]
 5: radosgw(+0xec442d) [0x5588f884942d]
 6: radosgw(+0xec4fa7) [0x5588f8849fa7]
 7: radosgw(+0xec5163) [0x5588f884a163]
 8: radosgw(+0xec5360) [0x5588f884a360]
 9: make_fcontext()
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.

--- logging levels ---
   0/ 5 none
   0/ 1 lockdep
   0/ 1 context
   1/ 1 crush
   1/ 5 mds
   1/ 5 mds_balancer
   1/ 5 mds_locker
   1/ 5 mds_log
   1/ 5 mds_log_expire
   1/ 5 mds_migrator
   0/ 1 buffer
   0/ 1 timer
   0/ 1 filer
   0/ 1 striper
   0/ 1 objecter
   0/ 5 rados
   0/ 5 rbd
   0/ 5 rbd_mirror
   0/ 5 rbd_replay
   0/ 5 rbd_pwl
   0/ 5 journaler
   0/ 5 objectcacher
   0/ 5 immutable_obj_cache
   0/ 5 client
   1/ 5 osd
   0/ 5 optracker
   0/ 5 objclass
   1/ 3 filestore
   1/ 3 journal
   0/ 0 ms
   1/ 5 mon
   0/10 monc
   1/ 5 paxos
   0/ 5 tp
   1/ 5 auth
   1/ 5 crypto
   1/ 1 finisher
   1/ 1 reserver
   1/ 5 heartbeatmap
   1/ 5 perfcounter
  15/15 rgw
   1/ 5 rgw_sync
   1/ 5 rgw_datacache
   1/ 5 rgw_access
   1/ 5 rgw_dbstore
   1/ 5 rgw_flight
   1/ 5 javaclient
   1/ 5 asok
   1/ 1 throttle
   0/ 0 refs
   1/ 5 compressor
   1/ 5 bluestore
   1/ 5 bluefs
   1/ 3 bdev
   1/ 5 kstore
   4/ 5 rocksdb
   4/ 5 leveldb
   1/ 5 fuse
   2/ 5 mgr
   1/ 5 mgrc
   1/ 5 dpdk
   1/ 5 eventtrace
   1/ 5 prioritycache
   0/ 5 test
   0/ 5 cephfs_mirror
   0/ 5 cephsqlite
   0/ 5 seastore
   0/ 5 seastore_onode
   0/ 5 seastore_odata
   0/ 5 seastore_omap
   0/ 5 seastore_tm
   0/ 5 seastore_t
   0/ 5 seastore_cleaner
   0/ 5 seastore_epm
   0/ 5 seastore_lba
   0/ 5 seastore_fixedkv_tree
   0/ 5 seastore_cache
   0/ 5 seastore_journal
   0/ 5 seastore_device
   0/ 5 seastore_backref
   0/ 5 alienstore
   1/ 5 mclock
   0/ 5 cyanstore
   1/ 5 ceph_exporter
   1/ 5 memstore
  -2/-2 (syslog threshold)
  99/99 (stderr threshold)
--- pthread ID / name mapping for recent threads ---
  7fa6e4c01700 / radosgw
  7fa6e5402700 / radosgw
  7fa6e6c05700 / radosgw
  7fa6ea40c700 / radosgw
  7fa6ec410700 / radosgw
  7fa6ee414700 / radosgw
  7fa6ef416700 / radosgw
  7fa6f0c19700 / radosgw
  7fa6f341e700 / radosgw
  7fa6f3c1f700 / radosgw
  7fa6f4420700 / radosgw
  7fa6f5c23700 / radosgw
  7fa6f7c27700 / radosgw
  7fa6fa42c700 / radosgw
  7fa6fb42e700 / radosgw
  7fa6fd432700 / radosgw
  7fa6fdc33700 / radosgw
  7fa6ffc37700 / radosgw
  7fa702c3d700 / radosgw
  7fa703c3f700 / radosgw
  7fa705442700 / radosgw
  7fa705c43700 / radosgw
  7fa708448700 / radosgw
  7fa70944a700 / radosgw
  7fa70cc51700 / radosgw
  7fa70d452700 / radosgw
  7fa71145a700 / radosgw
  7fa71245c700 / radosgw
  7fa715c63700 / radosgw
  7fa717466700 / radosgw
  7fa717c67700 / radosgw
  7fa71946a700 / radosgw
  7fa71cc71700 / radosgw
  7fa721c7b700 / radosgw
  7fa72247c700 / radosgw
  7fa725482700 / radosgw
  7fa728c89700 / radosgw
  7fa729c8b700 / radosgw
  7fa72f496700 / radosgw
  7fa731c9b700 / radosgw
  7fa733c9f700 / radosgw
  7fa734ca1700 / radosgw
  7fa7354a2700 / radosgw
  7fa737ca7700 / radosgw
  7fa7384a8700 / radosgw
  7fa73a4ac700 / radosgw
  7fa73ecb5700 / radosgw
  7fa73fcb7700 / radosgw
  7fa741cbb700 / radosgw
  7fa7424bc700 / radosgw
  7fa7444c0700 / radosgw
  7fa744cc1700 / radosgw
  7fa745cc3700 / radosgw
  7fa74ccd1700 / radosgw
  7fa7524dc700 / radosgw
  7fa754ce1700 / radosgw
  7fa7574e6700 / radosgw
  7fa75b4ee700 / radosgw
  7fa75bcef700 / radosgw
  7fa75e4f4700 / radosgw
  7fa760cf9700 / radosgw
  7fa7624fc700 / radosgw
  7fa764d01700 / radosgw
  7fa766d05700 / radosgw
  7fa767506700 / radosgw
  7fa767d07700 / radosgw
  7fa76950a700 / radosgw
  7fa76c510700 / radosgw
  7fa76e514700 / radosgw
  7fa76ed15700 / radosgw
  7fa77151a700 / radosgw
  7fa771d1b700 / radosgw
  7fa77251c700 / radosgw
  7fa77351e700 / radosgw
  7fa774520700 / radosgw
  7fa775d23700 / radosgw
  7fa77952a700 / radosgw
  7fa779d2b700 / radosgw
  7fa77a52c700 / radosgw
  7fa77ad2d700 / radosgw
  7fa77f536700 / radosgw
  7fa77fd37700 / radosgw
  7fa780538700 / radosgw
  7fa78153a700 / radosgw
  7fa782d3d700 / radosgw
  7fa78353e700 / radosgw
  7fa784540700 / radosgw
  7fa785542700 / radosgw
  7fa788548700 / radosgw
  7fa78a54c700 / radosgw
  7fa78ad4d700 / radosgw
  7fa78ed55700 / radosgw
  7fa79155a700 / radosgw
  7fa79255c700 / radosgw
  7fa794560700 / radosgw
  7fa795562700 / radosgw
  7fa796d65700 / radosgw
  7fa797566700 / radosgw
  7fa798d69700 / radosgw
  7fa799d6b700 / radosgw
  7fa79a56c700 / radosgw
  7fa79bd6f700 / radosgw
  7fa79dd73700 / radosgw
  7fa79f576700 / radosgw
  7fa7a1d7b700 / radosgw
  7fa7a257c700 / radosgw
  7fa7a357e700 / radosgw
  7fa7a3d7f700 / radosgw
  7fa7a5d83700 / radosgw
  7fa7a6584700 / radosgw
  7fa7a7d87700 / radosgw
  7fa7a958a700 / radosgw
  7fa7ae594700 / radosgw
  7fa7b0598700 / radosgw
  7fa7b0d99700 / radosgw
  7fa7b259c700 / radosgw
  7fa7b2d9d700 / radosgw
  7fa7b3d9f700 / radosgw
  7fa7b55a2700 / radosgw
  7fa7b5da3700 / radosgw
  7fa7b8da9700 / radosgw
  7fa7b95aa700 / radosgw
  7fa7b9dab700 / radosgw
  7fa7bc5b0700 / radosgw
  7fa7be5b4700 / radosgw
  7fa7bedb5700 / radosgw
  7fa7bf5b6700 / radosgw
  7fa7bfdb7700 / radosgw
  7fa7c0db9700 / radosgw
  7fa7c15ba700 / radosgw
  7fa7c2dbd700 / radosgw
  7fa7c6dc5700 / radosgw
  7fa7c95ca700 / radosgw
  7fa7ca5cc700 / radosgw
  7fa7cbdcf700 / radosgw
  7fa7cf5d6700 / radosgw
  7fa7d0dd9700 / radosgw
  7fa7d15da700 / radosgw
  7fa7d2ddd700 / radosgw
  7fa7d45e0700 / radosgw
  7fa7d5de3700 / radosgw
  7fa7d7de7700 / radosgw
  7fa7d9deb700 / radosgw
  7fa7db5ee700 / radosgw
  7fa7dbdef700 / radosgw
  7fa7dc5f0700 / radosgw
  7fa7dfdf7700 / radosgw
  7fa7e15fa700 / radosgw
  7fa7e1dfb700 / radosgw
  7fa7e2dfd700 / radosgw
  7fa7e35fe700 / radosgw
  7fa7e65e9700 / lifecycle_thr_2
  7fa7e85ed700 / lifecycle_thr_1
  7fa7ea5f1700 / lifecycle_thr_0
  7fa7ec5f5700 / rgw_gc
  7fa7eddf8700 / kmip worker
  7fa7efdfc700 / admin_socket
  7fa7f0dfe700 / safe_timer
  7fa800438f80 / radosgw
  max_recent     10000
  max_new         1000
  log_file /var/lib/ceph/crash/2023-06-14T07:34:59.757224Z_f856b947-5a8b-4056-91ed-7c7bc8bba2fa/log
--- end dump of recent events ---
reraise_fatal: default handler for signal 11 didn't terminate the process?
0xavi0 commented 1 year ago

Restoring (undeleting an object) should not be done by copying the object version, that's why I would change the subject of this issue, as I find it confusing.

The issue is that we should not allow copying delete markers ( or, at least don't crash miserably ).

For restoring a deleted object the UI should just delete the delete marker.

0xavi0 commented 1 year ago

After analysing this one and debugging I think it is a duplicate of https://github.com/aquarist-labs/s3gw/issues/183 but in a different scenario. In this particular case code follows this:

int RGWCopyObj::verify_permission(optional_yield y)

...

    /* check source object permissions */
    op_ret = read_obj_policy(
        this, driver, s, src_bucket->get_info(), src_bucket->get_attrs(),
        &src_acl, &src_placement.storage_class, src_policy, src_bucket.get(),
        s->src_object.get(), y
    );

...

  int ret = get_obj_policy_from_attr(
      dpp, s->cct, driver, bucket_info, bucket_attrs, acl, storage_class,
      object, s->yield
  );

...

  if (storage_class) {
    bufferlist scbl;
    int r = rop->get_attr(dpp, RGW_ATTR_STORAGE_CLASS, scbl, y);
    if (r >= 0) {
      *storage_class = scbl.to_str();
    } else {
      storage_class->clear();
    }
  }

rop->get_attr is the one returning the -ENOENT error.

int SFSObject::SFSReadOp::get_attr(
    const DoutPrefixProvider* /*dpp*/, const char* name, bufferlist& dest,
    optional_yield /*y*/
) {
  if (!objref || objref->deleted) {  // HERE objref->deleted is true because we're trying to restore a delete marker
    return -ENOENT;
  }
  if (!objref->get_attr(name, dest)) {
    return -ENODATA;
  }
  return 0;
}

So... RGWCopyObj::verify_permission returns -ENOENT but the user is admin, so it overwrites this and tries to continue.

There is a data structure that is not initialised (dest_bucket) and it cores at this point in RGWCopyObj::execute:

  if (!version_id.empty()) {
    dest_object->set_instance(version_id);
  } else if (dest_bucket->versioning_enabled()) {   /// dest_bucket is 0x00 in here because it was not initialised. 
    dest_object->gen_rand_obj_instance_name();
  }

I've also tested with a rebased version from upstream and, while it's still not working fine, it's not coring. radosgw is catching the exception and the error is also different:

2023-09-20T11:09:05.507+0200 7f217b37f6c0 10 req 0 0.003333386s s3:copy_obj > object::copy_object source(bucket: test2, obj: test-object), dest(bucket: test2, obj: copy2)
2023-09-20T11:09:05.507+0200 7f217b37f6c0 10 req 0 0.003333386s s3:copy_obj > object::copy_object copying file from '"/home/xavi/sfs/e8/44/98bd-dae9-4c1a-ac41-936c4014f6f7/2.v"' to '"/home/xavi/sfs/31/dc/d9ab-121b-453b-85d1-ffb5a34587f2/5.v"'
2023-09-20T11:09:05.507+0200 7f217b37f6c0  0 req 0 0.003333386s s3:copy_obj !!! BUG Unhandled exception while executing operation copy_obj: filesystem error: cannot copy file: No such file or directory [/home/xavi/sfs/e8/44/98bd-dae9-4c1a-ac41-936c4014f6f7/2.v] [/home/xavi/sfs/31/dc/d9ab-121b-453b-85d1-ffb5a34587f2/5.v]. replying internal error
2023-09-20T11:09:05.510+0200 7f217b37f6c0  0 req 0 0.006666772s s3:copy_obj START BACKTRACE (exception NSt10filesystem7__cxx1116filesystem_errorE)
 ceph version 18.0.0-6476-g2f59f09c996 (2f59f09c996e1b67732e8e0b1a1fe5a61504b33c) reef (dev)
 1: (rgw_process_authenticated(RGWHandler_REST*, RGWOp*&, RGWRequest*, req_state*, optional_yield, rgw::sal::Driver*, bool)+0x1139) [0x55eb13ccdef0]
 2: (process_request(RGWProcessEnv const&, RGWRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, RGWRestfulIO*, 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> >*, int*)+0x14dd) [0x55eb13ccf9e6]
 3: bin/radosgw(+0x2117fa0) [0x55eb13c27fa0]
 4: bin/radosgw(+0x2118af0) [0x55eb13c28af0]
 5: bin/radosgw(+0x2118ca9) [0x55eb13c28ca9]
 6: bin/radosgw(+0x2118e1a) [0x55eb13c28e1a]
 7: bin/radosgw(+0x2118ee9) [0x55eb13c28ee9]
 8: make_fcontext()

I would keep this bug open and re-test when we do the final rebase. I this this bug and https://github.com/aquarist-labs/s3gw/issues/183 will still need extra work after rebasing.

jecluis commented 1 year ago

Moving it to "On hold", waiting for the rebase.

0xavi0 commented 1 year ago

Closing this as it does not crash after 18.2.0 rebase Tested copying a deleted object with aws cli utility.