digital-fabric / extralite

Ruby on SQLite

Home Page:http://www.rubydoc.info/gems/extralite

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Seg fault when running script

fractaledmind opened this issue · comments

I was running this script on my machine to test whether indexing a separate db via an ATTACHment would block writing to the main db on a single connection:

require "extralite"
require "benchmark"

db1 = Extralite::Database.new "db1.sqlite3"
db1.execute "pragma journal_mode = wal;"
db1.transaction do
  db1.execute "create table t1 ( a integer primary key, b text );"
  1_000_000.times do |i|
    db1.execute "insert into t1 ( b ) values ( ? );", "#{i}-#{rand(1000)}"
  end
end

db2 = Extralite::Database.new "db2.sqlite3"
db2.execute "pragma journal_mode = wal;"
db2.execute "attach 'db1.sqlite3' as db1;"
db2.execute "create table t2 ( a integer primary key, b text );"

overall = Benchmark.realtime do
  t1 = Thread.new do
    time1 = Benchmark.realtime do
      db2.execute "create unique index db1.t1_b_unique on t1 (b);"
    end
    p({ indexing: time1 })
  end

  t2 = Thread.new do
    time2 = Benchmark.realtime do
      1_000_000.times do |i|
        db2.execute "insert into main.t2 ( b ) values ( ? );", "#{i}-#{rand(1000)}"
      end
    end
    p({ inserting: time2 })
  end

  t1.join
  t2.join
end

p({ overall: overall })

db1.close
db2.close

File.delete( "db1.sqlite3" )
File.delete( "db1.sqlite3-wal" )
File.delete( "db1.sqlite3-shm" )
File.delete( "db2.sqlite3" )
File.delete( "db2.sqlite3-wal" )
File.delete( "db2.sqlite3-shm" )

However, this script regularly segfaults:

fractaled@Stephens-MBP sqlite3-ruby % ruby test.rb
test.rb:23: [BUG] Segmentation fault at 0x0000000000000000
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [arm64-darwin21]

-- Crash Report log information --------------------------------------------
   See Crash Report log file in one of the following locations:
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.
Don't forget to include the above Crash Report log file in bug reports.

-- Control frame information -----------------------------------------------
c:0005 p:---- s:0020 e:000019 CFUNC  :execute
c:0004 p:0007 s:0015 e:000014 BLOCK  test.rb:23
c:0003 p:0010 s:0012 e:000011 METHOD /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/benchmark.rb:311
c:0002 p:0005 s:0007 e:000006 BLOCK  test.rb:22 [FINISH]
c:0001 p:---- s:0003 e:000002 DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
test.rb:22:in `block (2 levels) in <main>'
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/benchmark.rb:311:in `realtime'
test.rb:23:in `block (3 levels) in <main>'
test.rb:23:in `execute'

-- Machine register context ------------------------------------------------
  x0: 0x00000001381e6da0  x1: 0x0000000000001206  x2: 0x0000000000000004
  x3: 0x0000600003954000  x4: 0x00000001381e72d8  x5: 0x0000000000000039
  x6: 0x0000000000000040  x7: 0x00000000000006d0 x18: 0x0000000000000000
 x19: 0x00000001381e6da0 x20: 0x0000000000000000 x21: 0x00000001381e6da0
 x22: 0x00000000004c4b53 x23: 0x0000000135008330 x24: 0x00000001381ef2e0
 x25: 0x0000000130f042e0 x26: 0x0000000130f04668 x27: 0x0000000130f04470
 x28: 0xffffffffffffffff  lr: 0x64158001b1b26670  fp: 0x000000016d5e1fa0
  sp: 0x000000016d5e1f70

-- C level backtrace information -------------------------------------------
zsh: trace trap  ruby test.rb

Notably (to me at least), when I use smaller numbers for the N.times blocks, I don't get a segfault...

Even just reducing the N in the t2 thread block by one order of magnitude allows the script to complete on my machine.

Can you include the C level backtrace (your excerpt is snipped right at the interesting part :-) )?

Ok, here you go:

test.rb:30: [BUG] Segmentation fault at 0x00003437382d3231
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [arm64-darwin21]

-- Crash Report log information --------------------------------------------
   See Crash Report log file in one of the following locations:
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.
Don't forget to include the above Crash Report log file in bug reports.

-- Control frame information -----------------------------------------------
c:0007 p:---- s:0029 e:000028 CFUNC  :execute
c:0006 p:0026 s:0023 e:000022 BLOCK  test.rb:30 [FINISH]
c:0005 p:---- s:0019 e:000018 CFUNC  :times
c:0004 p:0005 s:0015 e:000014 BLOCK  test.rb:29
c:0003 p:0010 s:0012 e:000011 METHOD /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/benchmark.rb:311
c:0002 p:0005 s:0007 e:000006 BLOCK  test.rb:28 [FINISH]
c:0001 p:---- s:0003 e:000002 DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
test.rb:28:in `block (2 levels) in <main>'
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/benchmark.rb:311:in `realtime'
test.rb:29:in `block (3 levels) in <main>'
test.rb:29:in `times'
test.rb:30:in `block (4 levels) in <main>'
test.rb:30:in `execute'

-- Machine register context ------------------------------------------------
  x0: 0x000000012c6c6010  x1: 0x0000000000000078  x2: 0x000000016ded15b0
  x3: 0x000000016ded15e0  x4: 0x000000016ded1f50  x5: 0x000000000000004f
  x6: 0x000000000000003b  x7: 0x0000000000000024 x18: 0x0000000000000000
 x19: 0x000000016ded15d8 x20: 0x000000012c6c6010 x21: 0x000000016ded15b0
 x22: 0x000000016ded15e0 x23: 0x000000003b9ac9eb x24: 0x00000001b1c88744
 x25: 0x000000016ded1548 x26: 0x0000000000000001 x27: 0x0000000000000001
 x28: 0x000000016ded1538  lr: 0x00000001b1b0b69c  fp: 0x000000016ded12f0
  sp: 0x000000016ded12b0

-- C level backtrace information -------------------------------------------
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(rb_vm_bugreport+0x9a0) [0x102f05f98]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(rb_bug_for_fatal_signal+0x160) [0x102d2a30c]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(sig_do_nothing+0x0) [0x102e64854]
/usr/lib/system/libsystem_platform.dylib(_sigtramp+0x38) [0x1ab5fb4a4]
/usr/lib/libsqlite3.dylib(sqlite3SrcListAppend+0x60) [0x1b1b0b69c]
[0x1b1aea37c]
[0x1b1ae7bd4]
[0x1b1ae70a8]
[0x1b1ae6c08]
[0x102aa6738]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_rb_nogvl+0x10c) [0x102ea25e8]
[0x102aa6834]
[0x102aa7ad0]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_vm_call_cfunc_with_frame+0xe8) [0x102efa17c]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_vm_sendish+0x4cc) [0x102efc4dc]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_vm_exec_core+0x239c) [0x102eddbc8]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_rb_vm_exec+0xad4) [0x102ef10f0]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_invoke_block_from_c_bh+0x398) [0x102f00938]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_rb_yield_1+0x7c) [0x102ee9708]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_int_dotimes+0x148) [0x102dc98ec]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_vm_call_cfunc_with_frame+0xe8) [0x102efa17c]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_vm_sendish+0x4cc) [0x102efc4dc]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_vm_exec_core+0x2350) [0x102eddb7c]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_rb_vm_exec+0xad4) [0x102ef10f0]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_rb_vm_invoke_proc+0x4ac) [0x102eeed64]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_thread_do_start_proc+0x2b0) [0x102eabd0c]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_thread_start_func_2+0x4a0) [0x102eab3f8]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_thread_start_func_1+0x158) [0x102eaad48]
[0x1ab5e426c]

-- Other runtime information -----------------------------------------------

* Loaded script: test.rb

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 fiber.so
    3 rational.so
    4 complex.so
    5 ruby2_keywords.rb
    6 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/enc/encdb.bundle
    7 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/enc/trans/transdb.bundle
    8 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/rbconfig.rb
    9 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/compatibility.rb
   10 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/defaults.rb
   11 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/deprecate.rb
   12 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/errors.rb
   13 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/unknown_command_spell_checker.rb
   14 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/exceptions.rb
   15 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/basic_specification.rb
   16 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/stub_specification.rb
   17 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/platform.rb
   18 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/util/list.rb
   19 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/version.rb
   20 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/requirement.rb
   21 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/specification.rb
   22 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/util.rb
   23 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/dependency.rb
   24 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_gem.rb
   25 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/monitor.bundle
   26 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/monitor.rb
   27 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems.rb
   28 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/path_support.rb
   29 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/error_highlight/version.rb
   30 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/error_highlight/base.rb
   31 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/error_highlight/formatter.rb
   32 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/error_highlight/core_ext.rb
   33 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/error_highlight.rb
   34 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/version.rb
   35 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/core_ext/name_error.rb
   36 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/levenshtein.rb
   37 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/jaro_winkler.rb
   38 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/spell_checker.rb
   39 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   40 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   41 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/spell_checkers/name_error_checkers.rb
   42 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/spell_checkers/method_name_checker.rb
   43 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/spell_checkers/key_error_checker.rb
   44 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/spell_checkers/null_checker.rb
   45 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/tree_spell_checker.rb
   46 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/spell_checkers/require_path_checker.rb
   47 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/spell_checkers/pattern_key_name_checker.rb
   48 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean/formatter.rb
   49 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/did_you_mean.rb
   50 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/syntax_suggest/core_ext.rb
   51 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
   52 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite/sqlite3_constants.rb
   53 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite.rb
   54 /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/benchmark.rb

* Process memory map:

1022cc000-1022d0000 r-x /Users/fractaled/.asdf/installs/ruby/3.2.1/bin/ruby
1022d0000-1022d4000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/bin/ruby
1022d4000-1022d8000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/bin/ruby
1022d8000-1023d8000 r-- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
1023d8000-1023e0000 rw- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
1023e0000-1023e4000 r-- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
1023e4000-1023e8000 r-- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
1023e8000-1023ec000 rw- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
1023ec000-1023f0000 --- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
1023f0000-1023f8000 rw- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
1023f8000-1023fc000 --- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
1023fc000-102400000 --- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
102400000-102408000 rw- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
102408000-10240c000 --- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
10240c000-102410000 --- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
102410000-102418000 rw- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
102418000-10241c000 --- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
10241c000-102420000 r-- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
102420000-102424000 r-- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
102424000-102428000 rw- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
102428000-10242c000 r-- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
10242c000-10246c000 rw- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
102470000-102480000 rw- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
102480000-10248c000 r-- /Library/Preferences/Logging/.plist-cache.sJoAuXKx
10248c000-1024ec000 r-x /usr/lib/dyld
1024ec000-102504000 r-- /usr/lib/dyld
102504000-102508000 rw- /usr/lib/dyld
102508000-102540000 r-- /usr/lib/dyld
102540000-102598000 r-x /opt/homebrew/Cellar/gmp/6.3.0/lib/libgmp.10.dylib
102598000-10259c000 r-- /opt/homebrew/Cellar/gmp/6.3.0/lib/libgmp.10.dylib
10259c000-1025a0000 rw- /opt/homebrew/Cellar/gmp/6.3.0/lib/libgmp.10.dylib
1025a0000-1025b0000 r-- /opt/homebrew/Cellar/gmp/6.3.0/lib/libgmp.10.dylib
1025b0000-1025b4000 r-x /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/enc/encdb.bundle
1025b4000-1025b8000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/enc/encdb.bundle
1025b8000-1025bc000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/enc/encdb.bundle
1025c0000-1025d0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/enc/trans/transdb.bundle
1025d0000-1025d4000 r-x /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/enc/trans/transdb.bundle
1025d4000-1025d8000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/enc/trans/transdb.bundle
1025d8000-1025dc000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/enc/trans/transdb.bundle
1025e0000-1025f0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/monitor.bundle
1025f0000-1025f4000 r-x /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/monitor.bundle
1025f4000-1025f8000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/monitor.bundle
1025f8000-1025fc000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/monitor.bundle
1025fc000-102600000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/3.2.0/arm64-darwin21/monitor.bundle
102600000-102610000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db1.sqlite3-shm
102610000-102620000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db1.sqlite3-shm
102620000-102630000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db1.sqlite3-shm
102630000-102638000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db1.sqlite3-shm
102638000-102640000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db1.sqlite3-shm
102640000-102650000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102650000-102660000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102660000-102670000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102670000-102680000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102680000-102690000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102690000-1026a0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1026a0000-1026b0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1026b0000-1026c0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1026c0000-1026d0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1026d0000-1026e0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1026e0000-1026f0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1026f0000-102700000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102700000-102710000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102710000-102720000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102720000-102730000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102730000-102740000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102740000-102750000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102750000-102760000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102760000-102770000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102770000-102780000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102780000-102790000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102790000-1027a0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1027a0000-1027b0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1027b0000-1027c0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1027c0000-1027d0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1027d0000-1027e0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1027e0000-1027f0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1027f0000-102800000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102800000-102810000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102810000-102820000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102820000-102830000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102830000-102840000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102840000-102850000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102850000-102860000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102860000-102870000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102870000-102880000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102880000-102890000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102890000-1028a0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1028a0000-1028b0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1028b0000-1028c0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1028c0000-1028d0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1028d0000-1028e0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1028e0000-1028f0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1028f0000-102900000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102900000-102910000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102910000-102920000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102920000-102930000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102930000-102940000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102940000-102950000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102950000-102960000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102960000-102970000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102970000-102980000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102980000-102990000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102990000-1029a0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1029a0000-1029b0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1029b0000-1029c0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1029c0000-1029d0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1029d0000-1029e0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1029e0000-1029f0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
1029f0000-102a00000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a00000-102a10000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a10000-102a20000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a20000-102a30000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a30000-102a40000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a40000-102a50000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a50000-102a60000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a60000-102a70000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a70000-102a80000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a80000-102a90000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102a90000-102aa0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102aa4000-102aac000 r-x /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102aac000-102ab0000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102ab0000-102ab4000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102ab4000-102abc000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/ruby/gems/3.2.0/gems/extralite-2.4/lib/extralite_ext.bundle
102ac0000-102ad0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102ad0000-102ae0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102ae0000-102af0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102af0000-102b00000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b00000-102b10000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b10000-102b20000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b20000-102b30000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b30000-102b40000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b40000-102b50000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b50000-102b60000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b60000-102b70000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b70000-102b80000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b80000-102b90000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102b90000-102ba0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102ba0000-102bb0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102bb0000-102bc0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102bc0000-102bd0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102bd0000-102be0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102be0000-102bf0000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102bf0000-102c00000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c00000-102c10000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c10000-102c20000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c20000-102c30000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c30000-102c40000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c40000-102c50000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c50000-102c60000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c60000-102c70000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c70000-102c80000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c80000-102c90000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
102c94000-103148000 r-x /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
103148000-103164000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
103164000-103168000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
103168000-103178000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
103178000-1033f8000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
1033f8000-1043f8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1043f8000-1043fc000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1043fc000-1044a0000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1044a0000-1044a4000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1044a4000-104548000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104548000-10454c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
10454c000-1045f0000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1045f0000-1045f4000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1045f4000-104698000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104698000-10469c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
10469c000-104740000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104740000-104744000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104744000-1047e8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1047e8000-1047ec000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1047ec000-104890000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104890000-104894000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104894000-104938000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104938000-10493c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
10493c000-1049e0000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1049e0000-1049e4000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1049e4000-104a88000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104a88000-104a8c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104a8c000-104b30000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104b30000-104b34000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104b34000-104bd8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104bd8000-104bdc000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104bdc000-104c80000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104c80000-104c84000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104c84000-104d28000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104d28000-104d2c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104d2c000-104dd0000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104dd0000-104dd4000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104dd4000-104e78000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104e78000-104e7c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104e7c000-104f20000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104f20000-104f24000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104f24000-104fc8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104fc8000-104fcc000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
104fcc000-105070000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105070000-105074000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105074000-105118000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105118000-10511c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
10511c000-1051c0000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1051c0000-1051c4000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1051c4000-105268000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105268000-10526c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
10526c000-105310000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105310000-105314000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105314000-1053b8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1053b8000-1053bc000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1053bc000-105460000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105460000-105464000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105464000-105508000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105508000-10550c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
10550c000-1055b0000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1055b0000-1055b4000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1055b4000-105658000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105658000-10565c000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
10565c000-105700000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105700000-105704000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105704000-1057a8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1057a8000-1057ac000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1057ac000-105850000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105850000-105854000 --- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105854000-1058f8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1058f8000-105908000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105908000-105918000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105918000-105928000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105928000-105938000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105938000-105948000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105948000-105958000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105958000-105968000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105968000-105978000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105978000-105988000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105988000-105998000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105998000-1059a8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1059a8000-1059b8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1059b8000-1059c8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1059c8000-1059d8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1059d8000-1059e8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1059e8000-1059f8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
1059f8000-105a08000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a08000-105a18000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a18000-105a28000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a28000-105a38000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a38000-105a48000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a48000-105a58000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a58000-105a68000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a68000-105a78000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a78000-105a88000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a88000-105a98000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105a98000-105aa8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105aa8000-105ab8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105ab8000-105ac8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105ac8000-105ad8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105ad8000-105ae8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105ae8000-105af8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105af8000-105b08000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b08000-105b18000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b18000-105b28000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b28000-105b38000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b38000-105b48000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b48000-105b58000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b58000-105b68000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b68000-105b78000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b78000-105b88000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b88000-105b98000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105b98000-105ba8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105ba8000-105bb8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105bb8000-105bc8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105bc8000-105bd8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105bd8000-105be8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105be8000-105bf8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105bf8000-105c08000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c08000-105c18000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c18000-105c28000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c28000-105c38000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c38000-105c48000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c48000-105c58000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c58000-105c68000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c68000-105c78000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c78000-105c88000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c88000-105c98000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105c98000-105ca8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105ca8000-105cb8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105cb8000-105cc8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105cc8000-105cd8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105cd8000-105ce8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105ce8000-105cf8000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105cf8000-105d08000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105d08000-105d18000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105d18000-105d28000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105d28000-105d38000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105d38000-105d48000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105d48000-105d58000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105d58000-105d68000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105d68000-105d70000 rw- /Users/fractaled/Code/Gems/sqlite3-ruby/db2.sqlite3-shm
105d70000-105d80000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/bin/ruby
105d80000-105d8c000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/bin/ruby
105d8c000-105d9c000 rw- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
105d9c000-1064f0000 r-- /Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib
1064f0000-106500000 rw- /usr/lib/system/libsystem_platform.dylib
106500000-106510000 rw- /usr/lib/system/libsystem_platform.dylib
106510000-106520000 rw- /usr/lib/system/libsystem_platform.dylib
106520000-106530000 rw- /usr/lib/system/libsystem_platform.dylib
106530000-106540000 rw- /usr/lib/system/libsystem_platform.dylib
106540000-106550000 rw- /usr/lib/system/libsystem_platform.dylib
106550000-106560000 rw- /usr/lib/system/libsystem_platform.dylib
106560000-106570000 rw- /usr/lib/system/libsystem_platform.dylib
106570000-106580000 rw- /usr/lib/system/libsystem_platform.dylib
106580000-106590000 rw- /usr/lib/system/libsystem_platform.dylib
106590000-1065a0000 rw- /usr/lib/system/libsystem_platform.dylib
1065a0000-106620000 r-- /usr/lib/system/libsystem_platform.dylib
106620000-106630000 rw-
106630000-106640000 rw-
106640000-106650000 rw-
106650000-106660000 rw-
106660000-106670000 rw-
106670000-106680000 rw-
106680000-106690000 rw-
106690000-1066a0000 rw-
1066a0000-1066b0000 rw-
1066b0000-1066c0000 rw-
1066c0000-1066d0000 rw-
1066d0000-1066e0000 rw-
1066e0000-1066f0000 rw-
1066f0000-106700000 rw-
106700000-106710000 rw-
106710000-106720000 rw-
106720000-106730000 rw-
106730000-106740000 rw-
106740000-106750000 rw-
106750000-106760000 rw-
106760000-106770000 rw-
106770000-106780000 rw-
106780000-106790000 rw-
106790000-1067a0000 rw-
1067a0000-1067b0000 rw-
1067b0000-1067c0000 rw-
1067c0000-1067d0000 rw-
1067d0000-1067e0000 rw-
1067e0000-1067f0000 rw-
1067f0000-106800000 rw-
106800000-106810000 rw-
106810000-106820000 rw-
106820000-106830000 rw-
106830000-106840000 rw-
106840000-106850000 rw-
106850000-106860000 rw-
106860000-106870000 rw-
106870000-106880000 rw-
106880000-106890000 rw-
106890000-1068a0000 rw-
1068a0000-1068b0000 rw-
1068b0000-1068c0000 rw-
1068c0000-1068d0000 rw-
1068d0000-1068e0000 rw-
1068e0000-1068f0000 rw-
1068f0000-106900000 rw-
106900000-106910000 rw-
106910000-106920000 rw-
106920000-106930000 rw-
11c600000-11c700000 rw-
11c700000-11c800000 rw-
11c800000-11d000000 rw-
11d000000-11d800000 rw-
11d800000-11d900000 rw-
11e000000-11e800000 rw-
120000000-120800000 rw-
120800000-121000000 rw-
121000000-121800000 rw-
121800000-122000000 rw-
122000000-122800000 rw-
122800000-123000000 rw-
123000000-123800000 rw-
123800000-124000000 rw-
124000000-124800000 rw-
124800000-125000000 rw-
125000000-125800000 rw-
125800000-126000000 rw-
126000000-126800000 rw-
126800000-127000000 rw-
127000000-127800000 rw-
127800000-128000000 rw-
12c600000-12c700000 rw-
12c700000-12c800000 rw-
12c800000-12d000000 rw-
12d000000-12f000000 rw-
12f000000-12f004000 rw-
12f800000-130000000 rw-
130000000-130800000 rw-
130800000-131000000 rw-
131000000-131800000 rw-
131800000-132000000 rw-
132000000-132800000 rw-
132800000-133000000 rw-
133000000-133800000 rw-
133800000-134000000 rw-
134000000-134800000 rw-
134800000-135000000 rw-
135000000-135800000 rw-
135800000-136000000 rw-
136000000-136800000 rw-
136800000-137000000 rw-
137000000-137800000 rw-
137800000-138000000 rw-
169b34000-16d338000 ---
16d338000-16db34000 rw-
16db34000-16db38000 ---
16db38000-16dbc0000 rw-
16dbc0000-16dbc4000 ---
16dbc4000-16ddcc000 rw-
16ddcc000-16ddd0000 ---
16ddd0000-16dfd8000 rw-
180000000-200000000 r--
200000000-2017e0000 r--
2017e0000-201804000 rw-
201804000-202000000 rw-
202000000-203ff0000 r--
203ff0000-2056e4000 rw-
2056e4000-208a6c000 r--
208a6c000-20a000000 r--
20a000000-23a000000 r--
23a000000-23a818000 r--
23a818000-23b5fc000 rw-
23b5fc000-23c8c8000 r--
23c8c8000-23e000000 r--
23e000000-280000000 r--
fc0000000-1000000000 ---
1000000000-7000000000 ---
600000000000-600008000000 rw-
600008000000-600010000000 rw-
600010000000-600018000000 rw-
600018000000-600020000000 rw-
[IMPORTANT]
Don't forget to include the Crash Report log file under
DiagnosticReports directory in bug reports.

zsh: abort      ruby test.rb

For whatever reason, most of the time I run the script, I get error output like this:

test.rb:30: SEGV received in SEGV handler
[BUG] Segmentation fault at 0x0000000065707974
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [arm64-darwin21]

-- Crash Report log information --------------------------------------------
   See Crash Report log file in one of the following locations:
     * ~/Library/Logs/DiagnosticReports                         zsh: abort      ruby test.rb

I have to try a few times to get the fuller output. I'm guessing this is the difference between Ruby and the OS reporting a segfault?

I tried running your script and couldn't reproduce the segfault. I'm on Linux with sqlite 3.42.0. I made some minor tweak tou your script here: https://gist.github.com/noteflakes/f3fa888cabab132406cfd468ac209c93

My output:

$ N=1000000 ruby test/issue-59.rb
{:sqlite_version=>"3.42.0"}
{:N=>10000000}
{:fn1=>"/tmp/db1"}
{:fn2=>"/tmp/db2"}
{:count=>10000000}
{:some_rows=>[{:a=>1, :b=>"0-107"}, {:a=>2, :b=>"1-291"}, {:a=>3, :b=>"2-832"}, {:a=>4, :b=>"3-973"}, {:a=>5, :b=>"4-149"}]}
{:main_tables=>["t2"]}
{:db1_tables=>["t1"]}
{:indexing=>10.109243472004891}
{:inserting=>49.56610983800056}
{:count_t2=>10000000}
{:some_rows_t2=>[{:a=>1, :b=>"0-986"}, {:a=>2, :b=>"1-221"}, {:a=>3, :b=>"2-893"}, {:a=>4, :b=>"3-150"}, {:a=>5, :b=>"4-802"}]}
{:overall=>49.73627462500008}

I have to try a few times to get the fuller output. I'm guessing this is the difference between Ruby and the OS reporting a segfault?

Yeah I guess so, anyway the backtrace you did post doesn't really help pinpoint the problem.

You must be on a branch where db2.tables("db1") works, because that isn't in main. Which branch should I check out to get that feature to run the test?

Sorry, that change is now on the main branch.

Ok, running your script I actually get busy errors against 3.37.0, as you added transactions. When I remove the transactions, 3.37.0 segfaults. When I use 3.44.2, things run smoothly, even as I increase N. I have no idea what precisely the issue is, but it appears to be a SQLite issue resolved between 3.37.0 and 3.44.2. So, I'm closing this. Thanks for the help debugging.

I did, tho, just get a fuller C backtrace for a 3.37.0 segfault:

/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(rb_vm_bugreport+0x9a0) [0x1033c9f98]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(rb_bug_for_fatal_signal+0x160) [0x1031ee30c]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(sig_do_nothing+0x0) [0x103328854]
/usr/lib/system/libsystem_platform.dylib(_sigtramp+0x38) [0x1ab5fb4a4]
/usr/lib/libsqlite3.dylib(sqlite3VdbeExec+0x8310) [0x1b1b2dda4]
[0x1b1b25260]
[0x102fd6ab8]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_rb_nogvl+0x10c) [0x1033665e8]
[0x102fd6b74]
[0x102fd778c]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_rb_ensure+0x158) [0x1031fa948]
[0x102fd7b44]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_vm_call_cfunc_with_frame+0xe8) [0x1033be17c]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_vm_sendish+0x4cc) [0x1033c04dc]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_vm_exec_core+0x239c) [0x1033a1bc8]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_rb_vm_exec+0xad4) [0x1033b50f0]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_rb_vm_invoke_proc+0x4ac) [0x1033b2d64]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_thread_do_start_proc+0x2b0) [0x10336fd0c]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_thread_start_func_2+0x4a0) [0x10336f3f8]
/Users/fractaled/.asdf/installs/ruby/3.2.1/lib/libruby.3.2.dylib(_thread_start_func_1+0x158) [0x10336ed48]
[0x1ab5e426c]