digital-fabric / extralite

Ruby on SQLite
http://www.rubydoc.info/gems/extralite
MIT License
253 stars 8 forks source link

Seg fault when running script #59

Closed fractaledmind closed 10 months ago

fractaledmind commented 10 months ago

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
fractaledmind commented 10 months ago

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.

noteflakes commented 10 months ago

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

fractaledmind commented 10 months ago

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
fractaledmind commented 10 months ago

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?

noteflakes commented 10 months ago

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}
noteflakes commented 10 months ago

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.

fractaledmind commented 10 months ago

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?

noteflakes commented 10 months ago

Sorry, that change is now on the main branch.

fractaledmind commented 10 months ago

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.

fractaledmind commented 10 months ago

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]