Bug #62175
open"rados get" command can't get data when bluestore uses LruBufferCacheShard
0%
Description
I set the buffer cache of bluestore to LRU.
When I put an object whose size is about 100MB to rados using "./bin/rados -p cache_pool put tar /root/Boost.tar.bz2" command, I cannot get all the data using "./bin/rados -p cache_pool get tar /root/tmp1" command (I get the /root/tmp1 whose size is about 12MB), and the command does not seem to be terminated.
It is worth mentioning that I am using the vstart environment, and the vstart startup command is "../src/vstart.sh --debug --new -x --localhost --bluestore".
backtrace
0> 2023-07-26T15:48:58.726+0800 fff80e5caf90 -1 *** Caught signal (Aborted) ** in thread fff80e5caf90 thread_name:tp_osd_tp ceph version b6a97989f (3b6a97989fdad7cc894771fbfe9f1ce241f2ada1) quincy (stable) 1: __kernel_rt_sigreturn() 2: gsignal() 3: abort() 4: /usr/lib64/libc.so.6(+0x2fa0c) [0xfffc2dbcfa0c] 5: /usr/lib64/libc.so.6(+0x2fa8c) [0xfffc2dbcfa8c] 6: (LruBufferCacheShard::_rm(BlueStore::Buffer*)+0xf4) [0xaaac355770bc] 7: (BlueStore::BufferSpace::_rm_buffer(BlueStore::BufferCacheShard*, std::_Rb_tree_iterator<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > >)+0x40) [0xaaac35582a5c] 8: (LruBufferCacheShard::_trim_to(unsigned long)+0xd8) [0xaaac355aab6c] 9: (BlueStore::BufferSpace::did_read(BlueStore::BufferCacheShard*, unsigned int, ceph::buffer::v15_2_0::list&)+0x210) [0xaaac355a4114] 10: (BlueStore::_generate_read_result_bl(boost::intrusive_ptr<BlueStore::Onode>, unsigned long, unsigned long, std::map<unsigned long, ceph::buffer::v15_2_0::list, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ceph::buffer::v15_2_0::list> > >&, std::vector<ceph::buffer::v15_2_0::list, std::allocator<ceph::buffer::v15_2_0::list> >&, std::map<boost::intrusive_ptr<BlueStore::Blob>, std::__cxx11::list<BlueStore::read_req_t, std::allocator<BlueStore::read_req_t> >, std::less<boost::intrusive_ptr<BlueStore::Blob> >, std::allocator<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::__cxx11::list<BlueStore::read_req_t, std::allocator<BlueStore::read_req_t> > > > >&, bool, bool*, ceph::buffer::v15_2_0::list&)+0x5f8) [0xaaac355140d4] 11: (BlueStore::_do_read(BlueStore::Collection*, boost::intrusive_ptr<BlueStore::Onode>, unsigned long, unsigned long, ceph::buffer::v15_2_0::list&, unsigned int, unsigned long)+0x81c) [0xaaac35520770] 12: (BlueStore::read(boost::intrusive_ptr<ObjectStore::CollectionImpl>&, ghobject_t const&, unsigned long, unsigned long, ceph::buffer::v15_2_0::list&, unsigned int)+0x3a8) [0xaaac355581d4] 13: (ReplicatedBackend::objects_read_sync(hobject_t const&, unsigned long, unsigned long, unsigned int, ceph::buffer::v15_2_0::list*)+0x94) [0xaaac35385030] 14: (PrimaryLogPG::do_read(PrimaryLogPG::OpContext*, OSDOp&)+0x738) [0xaaac350a2218] 15: (PrimaryLogPG::do_osd_ops(PrimaryLogPG::OpContext*, std::vector<OSDOp, std::allocator<OSDOp> >&)+0xa08) [0xaaac350dbfc4] 16: (PrimaryLogPG::prepare_transaction(PrimaryLogPG::OpContext*)+0x158) [0xaaac350ebfe8] 17: (PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)+0x474) [0xaaac350ec83c] 18: (PrimaryLogPG::do_op(boost::intrusive_ptr<OpRequest>&)+0x2f68) [0xaaac350f0a50] 19: (PrimaryLogPG::do_request(boost::intrusive_ptr<OpRequest>&, ThreadPool::TPHandle&)+0xad4) [0xaaac350f701c] 20: (OSD::dequeue_op(boost::intrusive_ptr<PG>, boost::intrusive_ptr<OpRequest>, ThreadPool::TPHandle&)+0x470) [0xaaac34f5dcfc] 21: (ceph::osd::scheduler::PGOpItem::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x80) [0xaaac35260fb0] 22: (OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)+0x26ec) [0xaaac34f8b0c4] 23: (ShardedThreadPool::shardedthreadpool_worker(unsigned int)+0x830) [0xaaac356e0fe0] 24: (ShardedThreadPool::WorkThreadSharded::entry()+0x14) [0xaaac356e3c8c] 25: (Thread::entry_wrapper()+0x4c) [0xaaac356ccfdc] 26: (Thread::_entry_func(void*)+0xc) [0xaaac356ccffc] 27: /usr/lib64/libpthread.so.0(+0x88cc) [0xfffc2e1388cc] 28: /usr/lib64/libc.so.6(+0xda12c) [0xfffc2dc7a12c] NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
Files
Updated by Adam Kupczyk 9 months ago
- Status changed from New to Need More Info
- Priority changed from Normal to High
I can confirm I can see some problems when I run on other versions:
../src/vstart.sh -l -n -x -o bluestore_cache_type=lru
But I am unable to locate any of the following:
- ceph-17.2.4?? branch on gitlab
- commit 3b6a97989fdad7cc894771fbfe9f1ce241f2ada1
- commit b6a97989f
I guess problem will be fixed, but please specify your version to verify.
Updated by taki zhao 9 months ago
Adam Kupczyk wrote:
I can confirm I can see some problems when I run on other versions:
../src/vstart.sh -l -n -x -o bluestore_cache_type=lruBut I am unable to locate any of the following:
- ceph-17.2.4?? branch on gitlab
- commit 3b6a97989fdad7cc894771fbfe9f1ce241f2ada1
- commit b6a97989fI guess problem will be fixed, but please specify your version to verify.
Thank you for your reply.
In fact, I used clang to format the code and create a commit that is "3b6a97989fdad7cc894771fbfe9f1ce241f2ada1" after "commit 1353ed37dec8d74973edc3d5d5908c20ad5a7332 (tag: v17.2.4)". So I specified the version is 17.2.4