Project

General

Profile

Fix #19732

fix: rgw crashed caused by shard id out of range when listing data log

Added by mingshuai wang 5 months ago. Updated 27 days ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
Start date:
04/21/2017
Due date:
% Done:

100%

Source:
Tags:
Backport:
jewel kraken
Reviewed:
Affected Versions:
ceph-qa-suite:
Release:
Needs Doc:
No

Description

s3curl --id x --key x -- -s 'http://rgw-address/admin/log?type=data&id=109&max-entries=2'

when shard id out of range´╝îradosgw will crash.

Fixes: rgw: segment fault when shard id out of range. link: https://github.com/ceph/ceph/pull/14389

==========crash log====================

2017-03-29 14:51:39.450530 7ff61cef1700 -1 *** Caught signal (Segmentation fault) **
 in thread 7ff61cef1700

 ceph version 0.94.9-192-gd30e652 (d30e652f3fcf24f1a3265282f3d50f995aabacf8)
 1: /bin/radosgw() [0x6d1ed2]
 2: (()+0xf130) [0x7ffa1fa75130]
 3: (std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)+0x1b) [0x7ffa1f20cabb]
 4: (librados::IoCtx::operate(std::string const&, librados::ObjectReadOperation*, ceph::buffer::list*)+0x30) [0x7ffa2112d340]
 5: (RGWRados::time_log_list(std::string const&, utime_t&, utime_t&, int, std::list<cls_log_entry, std::allocator<cls_log_entry> >&, std::string const&, std::string*, bool*)+0x15e) [0x6064ae]
 6: (RGWDataChangesLog::list_entries(int, utime_t&, utime_t&, int, std::list<rgw_data_change, std::allocator<rgw_data_change> >&, std::string const&, std::string*, bool*)+0x8b) [0x5bc31b]
 7: (RGWOp_DATALog_List::execute()+0x2bc) [0x56550c]
 8: /bin/radosgw() [0x57dbf2]
 9: /bin/radosgw() [0x57e99c]
 10: /bin/radosgw() [0x69b4af]
 11: /bin/radosgw() [0x69d4c8]
 12: (()+0x7df3) [0x7ffa1fa6ddf3]
 13: (clone()+0x6d) [0x7ffa1e96b1bd]
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.

--- begin dump of recent events ---
     0> 2017-03-29 14:51:39.450530 7ff61cef1700 -1 *** Caught signal (Segmentation fault) **
 in thread 7ff61cef1700

 ceph version 0.94.9-192-gd30e652 (d30e652f3fcf24f1a3265282f3d50f995aabacf8)
 1: /bin/radosgw() [0x6d1ed2]
 2: (()+0xf130) [0x7ffa1fa75130]
 3: (std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)+0x1b) [0x7ffa1f20cabb]
 4: (librados::IoCtx::operate(std::string const&, librados::ObjectReadOperation*, ceph::buffer::list*)+0x30) [0x7ffa2112d340]
 5: (RGWRados::time_log_list(std::string const&, utime_t&, utime_t&, int, std::list<cls_log_entry, std::allocator<cls_log_entry> >&, std::string const&, std::string*, bool*)+0x15e) [0x6064ae]
 6: (RGWDataChangesLog::list_entries(int, utime_t&, utime_t&, int, std::list<rgw_data_change, std::allocator<rgw_data_change> >&, std::string const&, std::string*, bool*)+0x8b) [0x5bc31b]
 7: (RGWOp_DATALog_List::execute()+0x2bc) [0x56550c]
 8: /bin/radosgw() [0x57dbf2]
 9: /bin/radosgw() [0x57e99c]
 10: /bin/radosgw() [0x69b4af]
 11: /bin/radosgw() [0x69d4c8]
 12: (()+0x7df3) [0x7ffa1fa6ddf3]
 13: (clone()+0x6d) [0x7ffa1e96b1bd]
 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_replay
   0/ 5 journaler
   0/ 5 objectcacher
   0/ 5 client
   0/ 5 osd
   0/ 5 optracker
   0/ 5 objclass
   1/ 3 filestore
   1/ 3 keyvaluestore
   1/ 3 journal
   0/ 0 ms
   1/ 5 mon
   0/10 monc
   0/ 0 paxos
   0/ 5 tp
   1/ 5 auth
   1/ 5 crypto
   1/ 1 finisher
   1/ 5 heartbeatmap
   1/ 5 perfcounter
   1/ 5 rgw
   1/10 civetweb
   1/ 5 javaclient
   1/ 5 asok
   0/ 0 throttle
   0/ 0 refs
   1/ 5 xio
  -2/-2 (syslog threshold)
  -1/-1 (stderr threshold)
  max_recent         0
  max_new            0
  log_file /var/log/radosgw/client.radosgw.gateway.log
--- end dump of recent events ---


Related issues

Copied to rgw - Backport #20155: jewel: fix: rgw crashed caused by shard id out of range when listing data log Resolved
Copied to rgw - Backport #20156: kraken: fix: rgw crashed caused by shard id out of range when listing data log Resolved

History

#1 Updated by Casey Bodley 4 months ago

  • Status changed from New to Pending Backport
  • Backport set to jewel kraken

#3 Updated by Nathan Cutler 4 months ago

  • Copied to Backport #20155: jewel: fix: rgw crashed caused by shard id out of range when listing data log added

#4 Updated by Nathan Cutler 4 months ago

  • Copied to Backport #20156: kraken: fix: rgw crashed caused by shard id out of range when listing data log added

#5 Updated by Nathan Cutler 27 days ago

  • Status changed from Pending Backport to Resolved

Also available in: Atom PDF