Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xengine core dump with simple put #14

Open
dongdongwcpp opened this issue Dec 23, 2021 · 0 comments
Open

xengine core dump with simple put #14

dongdongwcpp opened this issue Dec 23, 2021 · 0 comments

Comments

@dongdongwcpp
Copy link

the simple code like this would coredump:

// Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
//  This source code is licensed under both the GPLv2 (found in the
//  COPYING file in the root directory) and Apache 2.0 License
//  (found in the LICENSE.Apache file in the root directory).

#include <cstdio>
#include <string>
// #include <gflags/gflags.h>
#include "xengine/db.h"
#include "xengine/statistics.h"

#include "cache/lru_cache.h"
#include "db/column_family.h"
#include "db/internal_stats.h"
#include "xengine/slice.h"
#include "xengine/options.h"
#include "xengine/table.h"
#include <iostream>
using namespace std;
using namespace xengine;
using namespace xengine::db;
using namespace xengine::common;
using namespace xengine::cache;
using namespace xengine::table;

std::string kDBPath = "/tmp/rocksdb_simple_example";


int main(int argc, char* argv[]) {


  xengine::db::DB* db;
  common::Options options;
  table::BlockBasedTableOptions table_options;
  table_options.filter_policy.reset(NewBloomFilterPolicy(10, true));  
  table_options.cache_index_and_filter_blocks =true;  

  options.table_factory.reset(
      xengine::table::NewExtentBasedTableFactory(table_options));  
  options.create_if_missing = true;

  // open DB
  Status s = DB::Open(options, kDBPath, &db);
  assert(s.ok());
  WriteOptions wop;
  wop.disableWAL = true;
  for(int i=0;i<100;i++){
    // Put key-value
    string value;
    value.assign(1024*1024,'a');
    s = db->Put(wop, "key11" + std::to_string(i), value);
    if(!s.ok()){
      cout <<"put not ok:"<< s.ToString()<<endl;      
    }
  }

  cout <<"-----------------------begin flush-------------------------------"<<endl;  
  s = db->Flush(FlushOptions(),db->DefaultColumnFamily());
  if(!s.ok()){
      cout <<"put not ok:"<< s.ToString()<<endl;      
  }


  delete db;

  return 0;
}



(gdb) 
#0  0x00007fafa9377428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007fafa937902a in __GI_abort () at abort.c:89
#2  0x00007fafa93b97ea in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7fafa94d2ed8 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
#3  0x00007fafa93c237a in malloc_printerr (ar_ptr=<optimized out>, ptr=<optimized out>, str=0x7fafa94d2fe8 "double free or corruption (out)", action=3) at malloc.c:5006
#4  _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3867
#5  0x00007fafa93c653c in __GI___libc_free (mem=<optimized out>) at malloc.c:2968
#6  0x00000000004c26fe in main (argc=1, argv=0x7ffd3122c3b8) at simple_example.cc:64
(gdb) 

Working on ·Ubuntu 16.04.4 LTS ,by using cmd: g++ -ggdb --std=c++11 simple_example.cc -I/root/tmp/galaxyengine/storage/xengine/core/build/include -I../ -DROCKSDB_PLATFORM_POSIX ../libxengine.a -lpthread -laio 。

and the options is:

[2021-12-23 06:58:47.379836] INFO  [25571] [XENGINE] DumpDBFileSummary(db_info_dumper.cc:129) Write Ahead Log file in /tmp/rocksdb_simple_example: 
[2021-12-23 06:58:47.379843] INFO  [25571] [XENGINE] Dump(db_options.cc:109)                         Options.error_if_exists: 0
[2021-12-23 06:58:47.379849] INFO  [25571] [XENGINE] Dump(db_options.cc:111)                       Options.create_if_missing: 1
[2021-12-23 06:58:47.379854] INFO  [25571] [XENGINE] Dump(db_options.cc:113)                         Options.paranoid_checks: 1
[2021-12-23 06:58:47.379860] INFO  [25571] [XENGINE] Dump(db_options.cc:115)                                     Options.env: 0xa71be0
[2021-12-23 06:58:47.379865] INFO  [25571] [XENGINE] Dump(db_options.cc:117)                          Options.max_open_files: -1
[2021-12-23 06:58:47.379870] INFO  [25571] [XENGINE] Dump(db_options.cc:119)                Options.max_file_opening_threads: 16
[2021-12-23 06:58:47.379876] INFO  [25571] [XENGINE] Dump(db_options.cc:121)                               Options.use_fsync: 0
[2021-12-23 06:58:47.379881] INFO  [25571] [XENGINE] Dump(db_options.cc:124)                       Options.max_log_file_size: 0
[2021-12-23 06:58:47.379887] INFO  [25571] [XENGINE] Dump(db_options.cc:127)                  Options.max_manifest_file_size: 18446744073709551615
[2021-12-23 06:58:47.379892] INFO  [25571] [XENGINE] Dump(db_options.cc:130)                   Options.log_file_time_to_roll: 0
[2021-12-23 06:58:47.379897] INFO  [25571] [XENGINE] Dump(db_options.cc:133)                       Options.keep_log_file_num: 1000
[2021-12-23 06:58:47.379903] INFO  [25571] [XENGINE] Dump(db_options.cc:136)                    Options.recycle_log_file_num: 0
[2021-12-23 06:58:47.379908] INFO  [25571] [XENGINE] Dump(db_options.cc:138)                         Options.allow_fallocate: 1
[2021-12-23 06:58:47.379914] INFO  [25571] [XENGINE] Dump(db_options.cc:140)                        Options.allow_mmap_reads: 0
[2021-12-23 06:58:47.379919] INFO  [25571] [XENGINE] Dump(db_options.cc:142)                       Options.allow_mmap_writes: 0
[2021-12-23 06:58:47.379924] INFO  [25571] [XENGINE] Dump(db_options.cc:144)                        Options.use_direct_reads: 0
[2021-12-23 06:58:47.379930] INFO  [25571] [XENGINE] Dump(db_options.cc:148)                        Options.use_direct_io_for_flush_and_compaction: 0
[2021-12-23 06:58:47.379936] INFO  [25571] [XENGINE] Dump(db_options.cc:150)          Options.create_missing_column_families: 0
[2021-12-23 06:58:47.379941] INFO  [25571] [XENGINE] Dump(db_options.cc:152)                              Options.db_log_dir: 
[2021-12-23 06:58:47.379947] INFO  [25571] [XENGINE] Dump(db_options.cc:154)                                 Options.wal_dir: /tmp/rocksdb_simple_example
[2021-12-23 06:58:47.379952] INFO  [25571] [XENGINE] Dump(db_options.cc:156)                Options.table_cache_numshardbits: 7
[2021-12-23 06:58:47.379957] INFO  [25571] [XENGINE] Dump(db_options.cc:159)                      Options.max_subcompactions: 1
[2021-12-23 06:58:47.379963] INFO  [25571] [XENGINE] Dump(db_options.cc:161)                  Options.max_background_flushes: 1
[2021-12-23 06:58:47.379968] INFO  [25571] [XENGINE] Dump(db_options.cc:164)                         Options.WAL_ttl_seconds: 0
[2021-12-23 06:58:47.379973] INFO  [25571] [XENGINE] Dump(db_options.cc:167)                       Options.WAL_size_limit_MB: 0
[2021-12-23 06:58:47.379979] INFO  [25571] [XENGINE] Dump(db_options.cc:170)             Options.manifest_preallocation_size: 4194304
[2021-12-23 06:58:47.379984] INFO  [25571] [XENGINE] Dump(db_options.cc:172)                     Options.is_fd_close_on_exec: 1
[2021-12-23 06:58:47.379990] INFO  [25571] [XENGINE] Dump(db_options.cc:174)                   Options.advise_random_on_open: 1
[2021-12-23 06:58:47.379995] INFO  [25571] [XENGINE] Dump(db_options.cc:177)                    Options.db_write_buffer_size: 0
[2021-12-23 06:58:47.380000] INFO  [25571] [XENGINE] Dump(db_options.cc:180)              Options.db_total_write_buffer_size: 0
[2021-12-23 06:58:47.380005] INFO  [25571] [XENGINE] Dump(db_options.cc:182)         Options.access_hint_on_compaction_start: 1
[2021-12-23 06:58:47.380011] INFO  [25571] [XENGINE] Dump(db_options.cc:184)  Options.new_table_reader_for_compaction_inputs: 0
[2021-12-23 06:58:47.380016] INFO  [25571] [XENGINE] Dump(db_options.cc:187)               Options.compaction_readahead_size: 0
[2021-12-23 06:58:47.380022] INFO  [25571] [XENGINE] Dump(db_options.cc:190)           Options.random_access_max_buffer_size: 1048576
[2021-12-23 06:58:47.380027] INFO  [25571] [XENGINE] Dump(db_options.cc:193)           Options.writable_file_max_buffer_size: 1048576
[2021-12-23 06:58:47.380033] INFO  [25571] [XENGINE] Dump(db_options.cc:195)                      Options.use_adaptive_mutex: 0
[2021-12-23 06:58:47.380038] INFO  [25571] [XENGINE] Dump(db_options.cc:197)                            Options.rate_limiter: (nil)
[2021-12-23 06:58:47.380044] INFO  [25571] [XENGINE] Dump(db_options.cc:200)     Options.sst_file_manager.rate_bytes_per_sec: 0
[2021-12-23 06:58:47.380050] INFO  [25571] [XENGINE] Dump(db_options.cc:203)                          Options.bytes_per_sync: 0
[2021-12-23 06:58:47.380056] INFO  [25571] [XENGINE] Dump(db_options.cc:206)                      Options.wal_bytes_per_sync: 0
[2021-12-23 06:58:47.380061] INFO  [25571] [XENGINE] Dump(db_options.cc:208)                       Options.wal_recovery_mode: 1
[2021-12-23 06:58:47.380066] INFO  [25571] [XENGINE] Dump(db_options.cc:210)                       Options.enable_aio_wal_reader: 1
[2021-12-23 06:58:47.380071] INFO  [25571] [XENGINE] Dump(db_options.cc:212)                       Options.parallel_wal_recovery: 1
[2021-12-23 06:58:47.380076] INFO  [25571] [XENGINE] Dump(db_options.cc:214)                       Options.parallel_recovery_thread_num: 0
[2021-12-23 06:58:47.380082] INFO  [25571] [XENGINE] Dump(db_options.cc:216)                  Options.enable_thread_tracking: 0
[2021-12-23 06:58:47.380088] INFO  [25571] [XENGINE] Dump(db_options.cc:218)         Options.allow_concurrent_memtable_write: 1
[2021-12-23 06:58:47.380093] INFO  [25571] [XENGINE] Dump(db_options.cc:220)      Options.enable_write_thread_adaptive_yield: 1
[2021-12-23 06:58:47.380098] INFO  [25571] [XENGINE] Dump(db_options.cc:223)             Options.write_thread_max_yield_usec: 100
[2021-12-23 06:58:47.380104] INFO  [25571] [XENGINE] Dump(db_options.cc:226)            Options.write_thread_slow_yield_usec: 3
[2021-12-23 06:58:47.380110] INFO  [25571] [XENGINE] Dump(db_options.cc:233)                               Options.row_cache: None
[2021-12-23 06:58:47.380115] INFO  [25571] [XENGINE] Dump(db_options.cc:237)                              Options.wal_filter: None
[2021-12-23 06:58:47.380120] INFO  [25571] [XENGINE] Dump(db_options.cc:240)             Options.avoid_flush_during_recovery: 0
[2021-12-23 06:58:47.380126] INFO  [25571] [XENGINE] Dump(db_options.cc:242)                         Options.compaction_type: Stream
[2021-12-23 06:58:47.380131] INFO  [25571] [XENGINE] Dump(db_options.cc:244)                         Options.compaction_mode: 0
[2021-12-23 06:58:47.380137] INFO  [25571] [XENGINE] Dump(db_options.cc:246)               Options.cpu_compaction_thread_num: 8
[2021-12-23 06:58:47.380142] INFO  [25571] [XENGINE] Dump(db_options.cc:248)              Options.fpga_compaction_thread_num: 8
[2021-12-23 06:58:47.380147] INFO  [25571] [XENGINE] Dump(db_options.cc:250)                          Options.fpga_device_id: 0
[2021-12-23 06:58:47.380152] INFO  [25571] [XENGINE] Dump(db_options.cc:252)                        Options.table_cache_size: 1073741824
[2021-12-23 06:58:47.380158] INFO  [25571] [XENGINE] Dump(db_options.cc:326)             Options.base_background_compactions: 1
[2021-12-23 06:58:47.380164] INFO  [25571] [XENGINE] Dump(db_options.cc:328)              Options.max_background_compactions: 1
[2021-12-23 06:58:47.380169] INFO  [25571] [XENGINE] Dump(db_options.cc:330)             Options.avoid_flush_during_shutdown: 0
[2021-12-23 06:58:47.380175] INFO  [25571] [XENGINE] Dump(db_options.cc:333)                      Options.delayed_write_rate: 16777216
[2021-12-23 06:58:47.380181] INFO  [25571] [XENGINE] Dump(db_options.cc:336)                      Options.max_total_wal_size: 0
[2021-12-23 06:58:47.380186] INFO  [25571] [XENGINE] Dump(db_options.cc:339)     Options.delete_obsolete_files_period_micros: 21600000000
[2021-12-23 06:58:47.380192] INFO  [25571] [XENGINE] Dump(db_options.cc:341)                   Options.stats_dump_period_sec: 600
[2021-12-23 06:58:47.380197] INFO  [25571] [XENGINE] Dump(db_options.cc:344)             Options.batch_group_slot_array_size: 5
[2021-12-23 06:58:47.380203] INFO  [25571] [XENGINE] Dump(db_options.cc:347)              Options.batch_group_max_group_size: 80
[2021-12-23 06:58:47.380208] INFO  [25571] [XENGINE] Dump(db_options.cc:350)     Options.batch_group_max_leader_wait_time_us: 200
[2021-12-23 06:58:47.380214] INFO  [25571] [XENGINE] Dump(db_options.cc:353)     Options.concurrent_writable_file_buffer_num: 4
[2021-12-23 06:58:47.380219] INFO  [25571] [XENGINE] Dump(db_options.cc:356) Options.concurrent_writable_file_single_buffer_size: 4194304
[2021-12-23 06:58:47.380225] INFO  [25571] [XENGINE] Dump(db_options.cc:359) Options.concurrent_writable_file_buffer_switch_limit: 524288
[2021-12-23 06:58:47.380231] INFO  [25571] [XENGINE] Dump(db_options.cc:362)                Options.use_direct_write_for_wal: 1
[2021-12-23 06:58:47.380236] INFO  [25571] [XENGINE] Dump(db_options.cc:365)                  Options.query_trace_enable_count: 1
[2021-12-23 06:58:47.380242] INFO  [25571] [XENGINE] Dump(db_options.cc:368)                 Options.query_trace_print_stats: 0
[2021-12-23 06:58:47.380248] INFO  [25571] [XENGINE] Dump(db_options.cc:371)            Options.mutex_backtrace_threshold_ns: 100000000
[2021-12-23 06:58:47.380253] INFO  [25571] [XENGINE] Dump(db_options.cc:374)            Options.auto_shrink_enabled: 1)
[2021-12-23 06:58:47.380259] INFO  [25571] [XENGINE] Dump(db_options.cc:377)            Options.max_free_extent_percent: 10)
[2021-12-23 06:58:47.380265] INFO  [25571] [XENGINE] Dump(db_options.cc:380)            Options.shrink_allocate_interval: 3600)
[2021-12-23 06:58:47.380270] INFO  [25571] [XENGINE] Dump(db_options.cc:383)            Options.max_shrink_extent_count: 512)
[2021-12-23 06:58:47.380276] INFO  [25571] [XENGINE] Dump(db_options.cc:386)            Options.total_max_shrink_extent_count: 7680)
[2021-12-23 06:58:47.380281] INFO  [25571] [XENGINE] Dump(db_options.cc:389)            Options.idle_tasks_schedule_time: 60)
[2021-12-23 06:58:47.380287] INFO  [25571] [XENGINE] Dump(db_options.cc:392)            Options.auto_shrink_schedule_interval: 3600)
[2021-12-23 06:58:47.380293] INFO  [25571] [XENGINE] DumpSupportInfo(db_impl.cc:157) Compression algorithms supported:
[2021-12-23 06:58:47.380299] INFO  [25571] [XENGINE] DumpSupportInfo(db_impl.cc:158)    Snappy supported: 0
[2021-12-23 06:58:47.380305] INFO  [25571] [XENGINE] DumpSupportInfo(db_impl.cc:159)    Zlib supported: 0
[2021-12-23 06:58:47.380310] INFO  [25571] [XENGINE] DumpSupportInfo(db_impl.cc:160)    Bzip supported: 0
[2021-12-23 06:58:47.380316] INFO  [25571] [XENGINE] DumpSupportInfo(db_impl.cc:161)    LZ4 supported: 0
[2021-12-23 06:58:47.380322] INFO  [25571] [XENGINE] DumpSupportInfo(db_impl.cc:162)    ZSTD supported: 0
[2021-12-23 06:58:47.380327] INFO  [25571] [XENGINE] DumpSupportInfo(db_impl.cc:164) Fast CRC32 supported: 
xiewajueji pushed a commit that referenced this issue May 5, 2024
Since table is open when update_stats() is called, the m_share pointer
is always assigned. Remove conditional logic for m_share.

Change-Id: I771a21ed40e95af8782f075b247f22f8635974e4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant