scylladb / scylladb

NoSQL data store using the seastar framework, compatible with Apache Cassandra
http://scylladb.com
GNU Affero General Public License v3.0
13.2k stars 1.25k forks source link

overlarge allocation in commitlog #2709

Open avikivity opened 7 years ago

avikivity commented 7 years ago
seastar::current_backtrace()
/home/avi/urchin/seastar/core/reactor.cc:3943
seastar::memory::cpu_pages::warn_large_allocation(unsigned long)
/home/avi/urchin/seastar/core/memory.cc:627
seastar::memory::cpu_pages::allocate_large(unsigned int)
crtstuff.c:?
seastar::memory::small_pool::add_more_objects()
crtstuff.c:?
seastar::memory::small_pool::allocate()
crtstuff.c:?
seastar::memory::allocate(unsigned long)
crtstuff.c:?
operator new(unsigned long)
??:?
seastar::chunked_fifo<seastar::expiring_fifo<seastar::promise<>, seastar::promise_expiry<>, seastar::lowres_clock>::entry, 128ul>::back_chunk_new()
/home/avi/urchin/seastar/core/chunked_fifo.hh:285
seastar::shared_future<seastar::with_clock<seastar::lowres_clock> >::shared_state::get_future(std::chrono::time_point<seastar::lowres_clock, std::chrono::duration<long, std::ratio<1l, 1000l> > >)
crtstuff.c:?
_ZN7seastar8futurizeINS_6futureIJNS_10shared_ptrIN2db9commitlog7segmentEEEEEEE5applyIZN5utils11flush_queueINS3_15replay_positionESt4lessISC_ENS_12lowres_clockEE24run_with_ordered_post_opIZNS5_5cycleEbEUlvE_ZNS5_5cycleEbEUlvE0_EEDaSC_OT_OT0_EUlNS1_IJEEEE_JSO_EEES7_SL_DpOT0_
crtstuff.c:?
seastar::continuation<auto utils::flush_queue<db::replay_position, std::less<db::replay_position>, seastar::lowres_clock>::run_with_ordered_post_op<db::commitlog::segment::cycle(bool)::{lambda()#1}, db::commitlog::segment::cycle(bool)::{lambda()#2}>(db::replay_position, db::commitlog::segment::cycle(bool)::{lambda()#1}&&, db::commitlog::segment::cycle(bool)::{lambda()#2}&&)::{lambda(seastar::future<>)#1} seastar::future<>::then_wrapped<auto utils::flush_queue<db::replay_position, std::less<db::replay_position>, seastar::lowres_clock>::run_with_ordered_post_op<db::commitlog::segment::cycle(bool)::{lambda()#1}, db::commitlog::segment::cycle(bool)::{lambda()#2}>(db::replay_position, db::commitlog::segment::cycle(bool)::{lambda()#1}&&, db::commitlog::segment::cycle(bool)::{lambda()#2}&&)::{lambda(seastar::future<>)#1}, seastar::future<seastar::shared_ptr<db::commitlog::segment> > >(db::commitlog::segment::cycle(bool)::{lambda()#2})::{lambda(db::commitlog::segment::cycle(bool)::{lambda()#2})#1}>::run()
crtstuff.c:?
seastar::reactor::run_tasks(seastar::circular_buffer<std::unique_ptr<seastar::task, std::default_delete<seastar::task> >, std::allocator<std::unique_ptr<seastar::task, std::default_delete<seastar::task> > > >&)
crtstuff.c:?
seastar::reactor::run()
crtstuff.c:?
seastar::smp::configure(boost::program_options::variables_map)::{lambda()#3}::operator()() const
reactor.cc:?
std::function<void ()>::operator()() const
/usr/include/c++/7/bits/std_function.h:706
seastar::posix_thread::start_routine(void*)
/home/avi/urchin/seastar/core/posix.cc:52
avikivity commented 7 years ago

Strange, chunked_fifo is supposed to have limited large allocations.

avikivity commented 7 years ago

Oh, that's memory for the small_pool!

slivne commented 6 years ago

Is #2499 supposed to fix this ?