Project

General

Profile

Actions

Bug #20774

closed

rgw: uninitialized memory is accessed during creation of bucket's metadata

Added by Radoslaw Zarzynski over 6 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Normal
Target version:
-
% Done:

0%

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

Description

Valgrind reports:

<error>
  <unique>0x59</unique>
  <tid>7</tid>
  <threadname>msgr-worker-1</threadname>
  <kind>SyscallParam</kind>
  <what>Syscall param sendmsg(msg.msg_iov[6]) points to uninitialised byte(s)</what>
  <stack>
    <frame>
      <ip>0x53F69BD</ip>
      <obj>/lib/x86_64-linux-gnu/libpthread-2.19.so</obj>
      <dir>/build/eglibc-oGUzwX/eglibc-2.19/nptl/../sysdeps/unix</dir>
      <file>syscall-template.S</file>
      <line>81</line>
    </frame>
    <frame>
      <ip>0x5C2AFA5</ip>
      <obj>/usr/lib/ceph/libceph-common.so.0</obj>
      <fn>PosixConnectedSocketImpl::send(ceph::buffer::list&amp;, bool)</fn>
    </frame>
    <frame>
      <ip>0x5BFC75E</ip>
      <obj>/usr/lib/ceph/libceph-common.so.0</obj>
      <fn>AsyncConnection::_try_send(bool)</fn>
    </frame>
    <frame>
      <ip>0x5BFEA67</ip>
      <obj>/usr/lib/ceph/libceph-common.so.0</obj>
      <fn>AsyncConnection::write_message(Message*, ceph::buffer::list&amp;, bool)</fn>
    </frame>
    <frame>
      <ip>0x5C06070</ip>
      <obj>/usr/lib/ceph/libceph-common.so.0</obj>
      <fn>AsyncConnection::handle_write()</fn>
    </frame>
    <frame>
      <ip>0x5C23FCB</ip>
      <obj>/usr/lib/ceph/libceph-common.so.0</obj>
      <fn>EventCenter::process_events(int, std::chrono::duration&lt;unsigned long, std::ratio&lt;1l, 1000000000l&gt; &gt;*)</fn>
    </frame>
    <frame>
      <ip>0x5C270AD</ip>
      <obj>/usr/lib/ceph/libceph-common.so.0</obj>
    </frame>
    <frame>
      <ip>0xF08AA5F</ip>
      <obj>/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19</obj>
    </frame>
    <frame>
      <ip>0x53EF183</ip>
      <obj>/lib/x86_64-linux-gnu/libpthread-2.19.so</obj>
      <fn>start_thread</fn>
      <dir>/build/eglibc-oGUzwX/eglibc-2.19/nptl</dir>
      <file>pthread_create.c</file>
      <line>312</line>
    </frame>
    <frame>
      <ip>0xF8F337C</ip>
      <obj>/lib/x86_64-linux-gnu/libc-2.19.so</obj>
      <fn>clone</fn>
      <dir>/build/eglibc-oGUzwX/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64</dir>
      <file>clone.S</file>
      <line>111</line>
    </frame>
  </stack>
  <auxwhat>Address 0x6dce80ee is 430 bytes inside a block of size 4,096 alloc'd</auxwhat>
  <stack>
    <frame>
      <ip>0x4C2D110</ip>
      <obj>/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so</obj>
      <fn>memalign</fn>
    </frame>
    <frame>
      <ip>0x4C2D227</ip>
      <obj>/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so</obj>
      <fn>posix_memalign</fn>
    </frame>
    <frame>
      <ip>0x4EE8C17</ip>
      <obj>/usr/lib/librados.so.2.0.0</obj>
      <fn>ceph::buffer::list::append(char const*, unsigned int)</fn>
    </frame>
    <frame>
      <ip>0x4DF853</ip>
      <obj>/usr/bin/radosgw</obj>
      <fn>rgw_put_system_obj(RGWRados*, rgw_pool const&amp;, std::string const&amp;, char const*, unsigned long, bool, RGWObjVersionTracker*, std::chrono::time_point&lt;ceph::time_detail::real_clock, std::chrono::duration&lt;unsigned long, std::ratio&lt;1l, 1000000000l&gt; &gt; &gt;, std::map&lt;std::string, ceph::buffer::list, std::less&lt;std::string&gt;, std::allocator&lt;std::pair&lt;std::string const, ceph::buffer::list&gt; &gt; &gt;*)</fn>
    </frame>
    <frame>
      <ip>0x372E01</ip>
      <obj>/usr/bin/radosgw</obj>
      <fn>RGWMetadataManager::put_entry(RGWMetadataHandler*, std::string const&amp;, ceph::buffer::list&amp;, bool, RGWObjVersionTracker*, std::chrono::time_point&lt;ceph::time_detail::real_clock, std::chrono::duration&lt;unsigned long, std::ratio&lt;1l, 1000000000l&gt; &gt; &gt;, std::map&lt;std::string, ceph::buffer::list, std::less&lt;std::string&gt;, std::allocator&lt;std::pair&lt;std::string const, ceph::buffer::list&gt; &gt; &gt;*)</fn>
    </frame>
    <frame>
      <ip>0x311A1E</ip>
      <obj>/usr/bin/radosgw</obj>
      <fn>rgw_bucket_instance_store_info(RGWRados*, std::string&amp;, ceph::buffer::list&amp;, bool, std::map&lt;std::string, ceph::buffer::list, std::less&lt;std::string&gt;, std::allocator&lt;std::pair&lt;std::string const, ceph::buffer::list&gt; &gt; &gt;*, RGWObjVersionTracker*, std::chrono::time_point&lt;ceph::time_detail::real_clock, std::chrono::duration&lt;unsigned long, std::ratio&lt;1l, 1000000000l&gt; &gt; &gt;)</fn>
    </frame>
    <frame>
      <ip>0x313E4F</ip>
      <obj>/usr/bin/radosgw</obj>
      <fn>rgw_bucket_set_attrs(RGWRados*, RGWBucketInfo&amp;, std::map&lt;std::string, ceph::buffer::list, std::less&lt;std::string&gt;, std::allocator&lt;std::pair&lt;std::string const, ceph::buffer::list&gt; &gt; &gt;&amp;, RGWObjVersionTracker*)</fn>
    </frame>
    <frame>
      <ip>0x3B4763</ip>
      <obj>/usr/bin/radosgw</obj>
      <fn>RGWPutMetadataBucket::execute()</fn>
    </frame>
    <frame>
      <ip>0x3D8CFE</ip>
      <obj>/usr/bin/radosgw</obj>
      <fn>rgw_process_authenticated(RGWHandler_REST*, RGWOp*&amp;, RGWRequest*, req_state*, bool)</fn>
    </frame>
    <frame>
      <ip>0x3D9A35</ip>
      <obj>/usr/bin/radosgw</obj>
      <fn>process_request(RGWRados*, RGWREST*, RGWRequest*, std::string const&amp;, rgw::auth::StrategyRegistry const&amp;, RGWRestfulIO*, OpsLogSocket*)</fn>
    </frame>
    <frame>
      <ip>0x2C3C76</ip>
      <obj>/usr/bin/radosgw</obj>
      <fn>RGWCivetWebFrontend::process(mg_connection*)</fn>
    </frame>
    <frame>
      <ip>0x2F826E</ip>
      <obj>/usr/bin/radosgw</obj>
    </frame>
    <frame>
      <ip>0x2F9C1A</ip>
      <obj>/usr/bin/radosgw</obj>
    </frame>
    <frame>
      <ip>0x53EF183</ip>
      <obj>/lib/x86_64-linux-gnu/libpthread-2.19.so</obj>
      <fn>start_thread</fn>
      <dir>/build/eglibc-oGUzwX/eglibc-2.19/nptl</dir>
      <file>pthread_create.c</file>
      <line>312</line>
    </frame>
    <frame>
      <ip>0xF8F337C</ip>
      <obj>/lib/x86_64-linux-gnu/libc-2.19.so</obj>
      <fn>clone</fn>
      <dir>/build/eglibc-oGUzwX/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64</dir>
      <file>clone.S</file>
      <line>111</line>
    </frame>
  </stack>
</error>


Related issues 2 (0 open2 closed)

Copied to rgw - Backport #20814: kraken: rgw: uninitialized memory is accessed during creation of bucket's metadataRejectedActions
Copied to rgw - Backport #20815: jewel: rgw: uninitialized memory is accessed during creation of bucket's metadataResolvedNathan CutlerActions
Actions #1

Updated by Radoslaw Zarzynski over 6 years ago

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

Updated by Radoslaw Zarzynski over 6 years ago

  • Status changed from Fix Under Review to Pending Backport
  • Backport set to kraken,jewel
Actions #3

Updated by Nathan Cutler over 6 years ago

  • Copied to Backport #20814: kraken: rgw: uninitialized memory is accessed during creation of bucket's metadata added
Actions #4

Updated by Nathan Cutler over 6 years ago

  • Copied to Backport #20815: jewel: rgw: uninitialized memory is accessed during creation of bucket's metadata added
Actions #5

Updated by Nathan Cutler over 6 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF