Project

General

Profile

Actions

Bug #20496

closed

Segfault when enabling YJIT

Added by gettalong (Thomas Leitner) 7 months ago. Updated 7 months ago.

Status:
Closed
Assignee:
Target version:
-
ruby -v:
ruby 3.4.0dev (2024-05-19T03:08:35Z master 7afc16aa48) [x86_64-linux]
[ruby-core:117927]

Description

I installed Ruby 3.4-dev via rbenv to see how the improvements in YJIT with 3.4-dev (after reading https://speakerdeck.com/k0kubun/rubykaigi-2024) translate to other parts of HexaPDF. However, when running the HexaPDF optimization benchmark with YJIT enabled, it regularly segfaults. This does not happen without YJIT.

Steps to reproduce

  • Clone the HexaPDF repository: git clone git@github.com:gettalong/hexapdf.git
  • Download the file a.pdf attached to this issue into the hexapdf directory.
  • Change into the hexapdf directory and run ruby --yjit -I lib bin/hexapdf -f optimize --compress-pages a.pdf out.pdf.
  • The run may not fail every time but it does fail with a segfault many times.

Segfault output

/tmp/hexapdf/lib/hexapdf/task/optimize.rb:289: [BUG] Segmentation fault at 0x00000000000000b0
ruby 3.4.0dev (2024-05-19T03:08:35Z master 7afc16aa48) +YJIT [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0024 p:0016 s:0147 e:000142 METHOD /tmp/hexapdf/lib/hexapdf/task/optimize.rb:289
c:0023 p:0042 s:0136 e:000135 BLOCK  /tmp/hexapdf/lib/hexapdf/content/parser.rb:192
c:0022 p:0017 s:0132 e:000131 METHOD <internal:kernel>:191
c:0021 p:0067 s:0127 e:000126 METHOD /tmp/hexapdf/lib/hexapdf/content/parser.rb:186
c:0020 p:0016 s:0118 e:000117 METHOD /tmp/hexapdf/lib/hexapdf/content/parser.rb:166
c:0019 p:0018 s:0111 E:002198 BLOCK  /tmp/hexapdf/lib/hexapdf/task/optimize.rb:241
c:0018 p:0015 s:0105 e:000104 BLOCK  /tmp/hexapdf/lib/hexapdf/type/page_tree_node.rb:243
c:0017 p:0007 s:0101 e:000100 BLOCK  /tmp/hexapdf/lib/hexapdf/pdf_array.rb:183 [FINISH]
c:0016 p:---- s:0097 e:000096 CFUNC  :each_index
c:0015 p:0018 s:0093 e:000092 METHOD /tmp/hexapdf/lib/hexapdf/pdf_array.rb:183
c:0014 p:0020 s:0089 e:000088 METHOD /tmp/hexapdf/lib/hexapdf/type/page_tree_node.rb:241
c:0013 p:0013 s:0084 e:000083 METHOD /tmp/hexapdf/lib/hexapdf/document/pages.rb:178
c:0012 p:0011 s:0079 E:0015a0 METHOD /tmp/hexapdf/lib/hexapdf/task/optimize.rb:236
c:0011 p:0009 s:0073 e:000072 METHOD /tmp/hexapdf/lib/hexapdf/task/optimize.rb:87
c:0010 p:0024 s:0061 e:000060 METHOD /tmp/hexapdf/lib/hexapdf/document.rb:570
c:0009 p:0031 s:0053 e:000052 METHOD /tmp/hexapdf/lib/hexapdf/cli/command.rb:276
c:0008 p:0011 s:0048 e:000047 BLOCK  /tmp/hexapdf/lib/hexapdf/cli/optimize.rb:76
c:0007 p:0059 s:0044 e:000043 METHOD /tmp/hexapdf/lib/hexapdf/cli/command.rb:101
c:0006 p:0017 s:0033 e:000032 METHOD /tmp/hexapdf/lib/hexapdf/cli/optimize.rb:74
c:0005 p:0288 s:0027 e:000026 METHOD /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/gems/3.4.0+0/gems/cmdparse-3.0.7/lib/cmdparse.rb:889
c:0004 p:0023 s:0017 e:000016 METHOD /tmp/hexapdf/lib/hexapdf/cli.rb:146
c:0003 p:0012 s:0012 e:000011 METHOD /tmp/hexapdf/lib/hexapdf/cli.rb:63
c:0002 p:0010 s:0006 e:000005 EVAL   bin/hexapdf:6 [FINISH]
c:0001 p:0000 s:0003 E:000590 DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
bin/hexapdf:6:in '<main>'
/tmp/hexapdf/lib/hexapdf/cli.rb:63:in 'run'
/tmp/hexapdf/lib/hexapdf/cli.rb:146:in 'parse'
/home/thomas/.rbenv/versions/3.4-dev/lib/ruby/gems/3.4.0+0/gems/cmdparse-3.0.7/lib/cmdparse.rb:889:in 'parse'
/tmp/hexapdf/lib/hexapdf/cli/optimize.rb:74:in 'execute'
/tmp/hexapdf/lib/hexapdf/cli/command.rb:101:in 'with_document'
/tmp/hexapdf/lib/hexapdf/cli/optimize.rb:76:in 'block in execute'
/tmp/hexapdf/lib/hexapdf/cli/command.rb:276:in 'apply_optimization_options'
/tmp/hexapdf/lib/hexapdf/document.rb:570:in 'task'
/tmp/hexapdf/lib/hexapdf/task/optimize.rb:87:in 'call'
/tmp/hexapdf/lib/hexapdf/task/optimize.rb:236:in 'compress_pages'
/tmp/hexapdf/lib/hexapdf/document/pages.rb:178:in 'each'
/tmp/hexapdf/lib/hexapdf/type/page_tree_node.rb:241:in 'each_page'
/tmp/hexapdf/lib/hexapdf/pdf_array.rb:183:in 'each'
/tmp/hexapdf/lib/hexapdf/pdf_array.rb:183:in 'each_index'
/tmp/hexapdf/lib/hexapdf/pdf_array.rb:183:in 'block in each'
/tmp/hexapdf/lib/hexapdf/type/page_tree_node.rb:243:in 'block in each_page'
/tmp/hexapdf/lib/hexapdf/task/optimize.rb:241:in 'block in compress_pages'
/tmp/hexapdf/lib/hexapdf/content/parser.rb:166:in 'parse'
/tmp/hexapdf/lib/hexapdf/content/parser.rb:186:in 'parse'
<internal:kernel>:191:in 'loop'
/tmp/hexapdf/lib/hexapdf/content/parser.rb:192:in 'block in parse'
/tmp/hexapdf/lib/hexapdf/task/optimize.rb:289:in 'process'

-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 1

-- Machine register context ------------------------------------------------
 RIP: 0x00005bc7f596320d RBP: 0x00005bc7f535cd18 RSP: 0x00007ffeb64795a0
 RAX: 0x00000000000000b0 RBX: 0x00007b47a9eff4a8 RCX: 0x00005bc7f5315ee0
 RDX: 0x0000000000000000 RDI: 0x0000000000000000 RSI: 0x0000000000000007
  R8: 0x00007b478e8c56a8  R9: 0x00007b478e8934c8 R10: 0x64d5ad93872fbbfd
 R11: 0x00005bc7f3b57f50 R12: 0x00005bc7f5270470 R13: 0x00007b47a9ffead0
 R14: 0x00005bc7f535cd28 R15: 0x00007b47a9ffeb40 EFL: 0x0000000000010202

-- C level backtrace information -------------------------------------------
/home/thomas/.rbenv/versions/3.4-dev/bin/ruby(rb_print_backtrace+0x14) [0x5bc7f38c2b13] /tmp/ruby-build.20240519133220.779813.9OK1gU/ruby-master/vm_dump.c:820
/home/thomas/.rbenv/versions/3.4-dev/bin/ruby(rb_vm_bugreport) /tmp/ruby-build.20240519133220.779813.9OK1gU/ruby-master/vm_dump.c:1151
/home/thomas/.rbenv/versions/3.4-dev/bin/ruby(rb_bug_for_fatal_signal+0xfc) [0x5bc7f3a7796c] /tmp/ruby-build.20240519133220.779813.9OK1gU/ruby-master/error.c:1108
/home/thomas/.rbenv/versions/3.4-dev/bin/ruby(sigsegv+0x46) [0x5bc7f3806916] /tmp/ruby-build.20240519133220.779813.9OK1gU/ruby-master/signal.c:929
/lib/x86_64-linux-gnu/libc.so.6(0x7b47aa645320) [0x7b47aa645320]
[0x5bc7f596320d]

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

* Loaded script: bin/hexapdf

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 fiber.so
    3 rational.so
    4 complex.so
    5 ruby2_keywords.rb
    6 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
    7 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
    8 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/rbconfig.rb
    9 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/compatibility.rb
   10 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/defaults.rb
   11 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/deprecate.rb
   12 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/errors.rb
   13 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/unknown_command_spell_checker.rb
   14 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/exceptions.rb
   15 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/basic_specification.rb
   16 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/stub_specification.rb
   17 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/platform.rb
   18 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/specification_record.rb
   19 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/util/list.rb
   20 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/version.rb
   21 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/requirement.rb
   22 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/specification.rb
   23 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/util.rb
   24 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/dependency.rb
   25 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/core_ext/kernel_gem.rb
   26 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
   27 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/monitor.rb
   28 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems.rb
   29 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/bundled_gems.rb
   30 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/rubygems/path_support.rb
   31 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/error_highlight/version.rb
   32 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/error_highlight/base.rb
   33 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/error_highlight/formatter.rb
   34 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/error_highlight/core_ext.rb
   35 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/error_highlight.rb
   36 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/version.rb
   37 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/core_ext/name_error.rb
   38 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/levenshtein.rb
   39 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/jaro_winkler.rb
   40 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/spell_checker.rb
   41 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   42 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   43 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/name_error_checkers.rb
   44 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/method_name_checker.rb
   45 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/key_error_checker.rb
   46 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/null_checker.rb
   47 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/tree_spell_checker.rb
   48 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/require_path_checker.rb
   49 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/pattern_key_name_checker.rb
   50 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean/formatter.rb
   51 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/did_you_mean.rb
   52 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/syntax_suggest/core_ext.rb
   53 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/optparse.rb
   54 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/gems/3.4.0+0/gems/cmdparse-3.0.7/lib/cmdparse.rb
   55 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/io/console.so
   56 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/ostruct.rb
   57 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/stringio.so
   58 /tmp/hexapdf/lib/hexapdf/error.rb
   59 /tmp/hexapdf/lib/hexapdf/data_dir.rb
   60 /tmp/hexapdf/lib/hexapdf/content.rb
   61 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/set.rb
   62 /tmp/hexapdf/lib/hexapdf/font/invalid_glyph.rb
   63 /tmp/hexapdf/lib/hexapdf/configuration.rb
   64 /tmp/hexapdf/lib/hexapdf/reference.rb
   65 /tmp/hexapdf/lib/hexapdf/object.rb
   66 /tmp/hexapdf/lib/hexapdf/pdf_array.rb
   67 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/date_core.so
   68 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/date.rb
   69 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/time.rb
   70 /tmp/hexapdf/lib/hexapdf/rectangle.rb
   71 /tmp/hexapdf/lib/hexapdf/utils/pdf_doc_encoding.rb
   72 /tmp/hexapdf/lib/hexapdf/dictionary_fields.rb
   73 /tmp/hexapdf/lib/hexapdf/dictionary.rb
   74 /tmp/hexapdf/lib/hexapdf/filter.rb
   75 /tmp/hexapdf/lib/hexapdf/stream.rb
   76 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/strscan.so
   77 /tmp/hexapdf/lib/hexapdf/tokenizer.rb
   78 /tmp/hexapdf/lib/hexapdf/utils/object_hash.rb
   79 /tmp/hexapdf/lib/hexapdf/xref_section.rb
   80 /tmp/hexapdf/lib/hexapdf/parser.rb
   81 /tmp/hexapdf/lib/hexapdf/revision.rb
   82 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/digest/version.rb
   83 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest.so
   84 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/digest/loader.rb
   85 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/digest.rb
   86 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/md5.so
   87 /tmp/hexapdf/lib/hexapdf/type/trailer.rb
   88 /tmp/hexapdf/lib/hexapdf/revisions.rb
   89 /tmp/hexapdf/lib/hexapdf/type/actions.rb
   90 /tmp/hexapdf/lib/hexapdf/type/annotations.rb
   91 /tmp/hexapdf/lib/hexapdf/type.rb
   92 /tmp/hexapdf/lib/hexapdf/task.rb
   93 /tmp/hexapdf/lib/hexapdf/encryption.rb
   94 /tmp/hexapdf/lib/hexapdf/utils/lru_cache.rb
   95 /tmp/hexapdf/lib/hexapdf/serializer.rb
   96 /tmp/hexapdf/lib/hexapdf/version.rb
   97 /tmp/hexapdf/lib/hexapdf/writer.rb
   98 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/delegate.rb
   99 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/weakref.rb
  100 /tmp/hexapdf/lib/hexapdf/importer.rb
  101 /tmp/hexapdf/lib/hexapdf/image_loader.rb
  102 /tmp/hexapdf/lib/hexapdf/font_loader.rb
  103 /tmp/hexapdf/lib/hexapdf/layout.rb
  104 /tmp/hexapdf/lib/hexapdf/digital_signature.rb
  105 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/gems/3.4.0+0/gems/geom2d-0.4.1/lib/geom2d/utils.rb
  106 /tmp/hexapdf/lib/hexapdf/utils.rb
  107 /tmp/hexapdf/lib/hexapdf/document.rb
  108 /tmp/hexapdf/lib/hexapdf/font/true_type.rb
  109 /tmp/hexapdf/lib/hexapdf/cli/command.rb
  110 /tmp/hexapdf/lib/hexapdf/cli/info.rb
  111 /tmp/hexapdf/lib/hexapdf/cli/files.rb
  112 /tmp/hexapdf/lib/hexapdf/content/color_space.rb
  113 /tmp/hexapdf/lib/hexapdf/utils/math_helpers.rb
  114 /tmp/hexapdf/lib/hexapdf/content/transformation_matrix.rb
  115 /tmp/hexapdf/lib/hexapdf/content/graphics_state.rb
  116 /tmp/hexapdf/lib/hexapdf/content/operator.rb
  117 /tmp/hexapdf/lib/hexapdf/content/processor.rb
  118 /tmp/hexapdf/lib/hexapdf/cli/inspect.rb
  119 /tmp/hexapdf/lib/hexapdf/cli/modify.rb
  120 /tmp/hexapdf/lib/hexapdf/cli/merge.rb
  121 /tmp/hexapdf/lib/hexapdf/cli/optimize.rb
  122 /tmp/hexapdf/lib/hexapdf/cli/images.rb
  123 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/shellwords.rb
  124 /tmp/hexapdf/lib/hexapdf/cli/batch.rb
  125 /tmp/hexapdf/lib/hexapdf/cli/split.rb
  126 /tmp/hexapdf/lib/hexapdf/cli/watermark.rb
  127 /tmp/hexapdf/lib/hexapdf/cli/image2pdf.rb
  128 /tmp/hexapdf/lib/hexapdf/cli/form.rb
  129 /tmp/hexapdf/lib/hexapdf/cli/fonts.rb
  130 /tmp/hexapdf/lib/hexapdf/cli/usage.rb
  131 /tmp/hexapdf/lib/hexapdf/cli.rb
  132 /tmp/hexapdf/lib/hexapdf/encryption/security_handler.rb
  133 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/sha2.so
  134 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/digest/sha2/loader.rb
  135 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/digest/sha2.rb
  136 /tmp/hexapdf/lib/hexapdf/encryption/standard_security_handler.rb
  137 /tmp/hexapdf/lib/hexapdf/type/page_tree_node.rb
  138 /tmp/hexapdf/lib/hexapdf/document/pages.rb
  139 /tmp/hexapdf/lib/hexapdf/utils/sorted_tree_node.rb
  140 /tmp/hexapdf/lib/hexapdf/number_tree_node.rb
  141 /tmp/hexapdf/lib/hexapdf/type/catalog.rb
  142 /tmp/hexapdf/lib/hexapdf/type/page.rb
  143 /tmp/hexapdf/lib/hexapdf/type/resources.rb
  144 /tmp/hexapdf/lib/hexapdf/font/cmap.rb
  145 /tmp/hexapdf/lib/hexapdf/type/font.rb
  146 /tmp/hexapdf/lib/hexapdf/font/encoding.rb
  147 /tmp/hexapdf/lib/hexapdf/type/font_simple.rb
  148 /tmp/hexapdf/lib/hexapdf/font/type1.rb
  149 /tmp/hexapdf/lib/hexapdf/font/type1_wrapper.rb
  150 /tmp/hexapdf/lib/hexapdf/type/font_type1.rb
  151 /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/zlib.so
  152 /tmp/hexapdf/lib/hexapdf/type/image.rb
  153 /tmp/hexapdf/lib/hexapdf/utils/bit_field.rb
  154 /tmp/hexapdf/lib/hexapdf/type/annotation.rb
  155 /tmp/hexapdf/lib/hexapdf/type/annotations/link.rb
  156 /tmp/hexapdf/lib/hexapdf/type/outline.rb
  157 /tmp/hexapdf/lib/hexapdf/content/parser.rb
  158 /tmp/hexapdf/lib/hexapdf/type/xref_stream.rb
  159 /tmp/hexapdf/lib/hexapdf/type/object_stream.rb
  160 /tmp/hexapdf/lib/hexapdf/task/optimize.rb
  161 /tmp/hexapdf/lib/hexapdf/utils/bit_stream.rb
  162 /tmp/hexapdf/lib/hexapdf/filter/predictor.rb
  163 /tmp/hexapdf/lib/hexapdf/filter/flate_decode.rb

* Process memory map:

5bc7f3687000-5bc7f36cb000 r--p 00000000 fc:01 27662520                   /home/thomas/.rbenv/versions/3.4-dev/bin/ruby
5bc7f36cb000-5bc7f3b27000 r-xp 00044000 fc:01 27662520                   /home/thomas/.rbenv/versions/3.4-dev/bin/ruby
5bc7f3b27000-5bc7f3cc4000 r--p 004a0000 fc:01 27662520                   /home/thomas/.rbenv/versions/3.4-dev/bin/ruby
5bc7f3cc4000-5bc7f3cdc000 r--p 0063d000 fc:01 27662520                   /home/thomas/.rbenv/versions/3.4-dev/bin/ruby
5bc7f3cdc000-5bc7f3cdd000 rw-p 00655000 fc:01 27662520                   /home/thomas/.rbenv/versions/3.4-dev/bin/ruby
5bc7f3cdd000-5bc7f3cf2000 rw-p 00000000 00:00 0 
5bc7f5267000-5bc7f58cb000 rw-p 00000000 00:00 0                          [heap]
5bc7f58e7000-5bc7f5972000 r-xp 00000000 00:00 0 
5bc7f5972000-5bc7f88e7000 ---p 00000000 00:00 0 
7b478a45a000-7b478a600000 rw-p 00000000 00:00 0 
7b478b000000-7b478b207000 r--s 00000000 fc:01 19160552                   /usr/lib/x86_64-linux-gnu/libc.so.6
7b478b2f2000-7b478b400000 rw-p 00000000 00:00 0 
7b478b400000-7b478e416000 r--s 00000000 fc:01 27662520                   /home/thomas/.rbenv/versions/3.4-dev/bin/ruby
7b478e4df000-7b478e821000 rw-p 00000000 00:00 0 
7b478e880000-7b478ea00000 rw-p 00000000 00:00 0 
7b478ea00000-7b478ea01000 ---p 00000000 00:00 0 
7b478ea01000-7b478eaa2000 rw-p 00000000 00:00 0 
7b478eaa2000-7b478eaa3000 ---p 00000000 00:00 0 
7b478eaa3000-7b478eb44000 rw-p 00000000 00:00 0 
7b478eb44000-7b478eb45000 ---p 00000000 00:00 0 
7b478eb45000-7b478ebe6000 rw-p 00000000 00:00 0 
7b478ebe6000-7b478ebe7000 ---p 00000000 00:00 0 
7b478ebe7000-7b478ec88000 rw-p 00000000 00:00 0 
7b478ec88000-7b478ec89000 ---p 00000000 00:00 0 
7b478ec89000-7b478ed2a000 rw-p 00000000 00:00 0 
7b478ed2a000-7b478ed2b000 ---p 00000000 00:00 0 
7b478ed2b000-7b478edcc000 rw-p 00000000 00:00 0 
7b478edcc000-7b478edcd000 ---p 00000000 00:00 0 
7b478edcd000-7b478ee6e000 rw-p 00000000 00:00 0 
7b478ee6e000-7b478ee6f000 ---p 00000000 00:00 0 
7b478ee6f000-7b478ef10000 rw-p 00000000 00:00 0 
7b478ef10000-7b478ef11000 ---p 00000000 00:00 0 
7b478ef11000-7b478efb2000 rw-p 00000000 00:00 0 
7b478efb2000-7b478efb3000 ---p 00000000 00:00 0 
7b478efb3000-7b478f054000 rw-p 00000000 00:00 0 
7b478f054000-7b478f055000 ---p 00000000 00:00 0 
7b478f055000-7b478f0f6000 rw-p 00000000 00:00 0 
7b478f0f6000-7b478f0f7000 ---p 00000000 00:00 0 
7b478f0f7000-7b478f198000 rw-p 00000000 00:00 0 
7b478f198000-7b478f199000 ---p 00000000 00:00 0 
7b478f199000-7b478f23a000 rw-p 00000000 00:00 0 
7b478f23a000-7b478f23b000 ---p 00000000 00:00 0 
7b478f23b000-7b478f2dc000 rw-p 00000000 00:00 0 
7b478f2dc000-7b478f2dd000 ---p 00000000 00:00 0 
7b478f2dd000-7b478f37e000 rw-p 00000000 00:00 0 
7b478f37e000-7b478f37f000 ---p 00000000 00:00 0 
7b478f37f000-7b478f420000 rw-p 00000000 00:00 0 
7b478f420000-7b478f421000 ---p 00000000 00:00 0 
7b478f421000-7b478f4c2000 rw-p 00000000 00:00 0 
7b478f4c2000-7b478f4c3000 ---p 00000000 00:00 0 
7b478f4c3000-7b478f564000 rw-p 00000000 00:00 0 
7b478f564000-7b478f565000 ---p 00000000 00:00 0 
7b478f565000-7b478f606000 rw-p 00000000 00:00 0 
7b478f606000-7b478f607000 ---p 00000000 00:00 0 
7b478f607000-7b478f6a8000 rw-p 00000000 00:00 0 
7b478f6a8000-7b478f6a9000 ---p 00000000 00:00 0 
7b478f6a9000-7b478f74a000 rw-p 00000000 00:00 0 
7b478f74a000-7b478f74b000 ---p 00000000 00:00 0 
7b478f74b000-7b478f7ec000 rw-p 00000000 00:00 0 
7b478f7ec000-7b478f7ed000 ---p 00000000 00:00 0 
7b478f7ed000-7b478f88e000 rw-p 00000000 00:00 0 
7b478f88e000-7b478f88f000 ---p 00000000 00:00 0 
7b478f88f000-7b478f930000 rw-p 00000000 00:00 0 
7b478f930000-7b478f931000 ---p 00000000 00:00 0 
7b478f931000-7b478f9d2000 rw-p 00000000 00:00 0 
7b478f9d2000-7b478f9d3000 ---p 00000000 00:00 0 
7b478f9d3000-7b478fa74000 rw-p 00000000 00:00 0 
7b478fa74000-7b478fa75000 ---p 00000000 00:00 0 
7b478fa75000-7b478fb16000 rw-p 00000000 00:00 0 
7b478fb16000-7b478fb17000 ---p 00000000 00:00 0 
7b478fb17000-7b478fbb8000 rw-p 00000000 00:00 0 
7b478fbb8000-7b478fbb9000 ---p 00000000 00:00 0 
7b478fbb9000-7b478fc5a000 rw-p 00000000 00:00 0 
7b478fc5a000-7b478fc5b000 ---p 00000000 00:00 0 
7b478fc5b000-7b478fcfc000 rw-p 00000000 00:00 0 
7b478fcfc000-7b478fcfd000 ---p 00000000 00:00 0 
7b478fcfd000-7b478fd9e000 rw-p 00000000 00:00 0 
7b478fd9e000-7b478fd9f000 ---p 00000000 00:00 0 
7b478fd9f000-7b478fe40000 rw-p 00000000 00:00 0 
7b478fe50000-7b478fed0000 rw-p 00000000 00:00 0 
7b478fedf000-7b4790000000 rw-p 00000000 00:00 0 
7b4790000000-7b4790001000 ---p 00000000 00:00 0 
7b4790001000-7b4790801000 rw-p 00000000 00:00 0 
7b479080c000-7b479080f000 r--p 00000000 fc:01 27662532                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/zlib.so
7b479080f000-7b479081b000 r-xp 00003000 fc:01 27662532                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/zlib.so
7b479081b000-7b479081e000 r--p 0000f000 fc:01 27662532                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/zlib.so
7b479081e000-7b479081f000 r--p 00011000 fc:01 27662532                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/zlib.so
7b479081f000-7b4790820000 rw-p 00012000 fc:01 27662532                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/zlib.so
7b4790820000-7b4790830000 rw-p 00000000 00:00 0 
7b4790840000-7b4790880000 rw-p 00000000 00:00 0 
7b4790882000-7b4790885000 r--p 00000000 fc:01 27662535                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/date_core.so
7b4790885000-7b47908b5000 r-xp 00003000 fc:01 27662535                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/date_core.so
7b47908b5000-7b47908bd000 r--p 00033000 fc:01 27662535                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/date_core.so
7b47908bd000-7b47908be000 r--p 0003b000 fc:01 27662535                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/date_core.so
7b47908be000-7b47908bf000 rw-p 0003c000 fc:01 27662535                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/date_core.so
7b47908bf000-7b47a9e00000 rw-p 00000000 00:00 0 
7b47a9e01000-7b47a9e02000 r--p 00000000 fc:01 27824240                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/sha2.so
7b47a9e02000-7b47a9e06000 r-xp 00001000 fc:01 27824240                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/sha2.so
7b47a9e06000-7b47a9e07000 r--p 00005000 fc:01 27824240                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/sha2.so
7b47a9e07000-7b47a9e08000 r--p 00005000 fc:01 27824240                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/sha2.so
7b47a9e08000-7b47a9e09000 rw-p 00006000 fc:01 27824240                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/sha2.so
7b47a9e09000-7b47a9e0b000 r--p 00000000 fc:01 27662545                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest.so
7b47a9e0b000-7b47a9e0d000 r-xp 00002000 fc:01 27662545                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest.so
7b47a9e0d000-7b47a9e0e000 r--p 00004000 fc:01 27662545                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest.so
7b47a9e0e000-7b47a9e0f000 r--p 00004000 fc:01 27662545                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest.so
7b47a9e0f000-7b47a9e10000 rw-p 00005000 fc:01 27662545                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest.so
7b47a9e10000-7b47a9e30000 rw-p 00000000 00:00 0 
7b47a9e36000-7b47a9e38000 r--p 00000000 fc:01 27662544                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/strscan.so
7b47a9e38000-7b47a9e3c000 r-xp 00002000 fc:01 27662544                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/strscan.so
7b47a9e3c000-7b47a9e3e000 r--p 00006000 fc:01 27662544                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/strscan.so
7b47a9e3e000-7b47a9e3f000 r--p 00007000 fc:01 27662544                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/strscan.so
7b47a9e3f000-7b47a9e40000 rw-p 00008000 fc:01 27662544                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/strscan.so
7b47a9e40000-7b47a9ef0000 rw-p 00000000 00:00 0 
7b47a9ef3000-7b47a9ef6000 r--p 00000000 fc:01 27662547                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/stringio.so
7b47a9ef6000-7b47a9efb000 r-xp 00003000 fc:01 27662547                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/stringio.so
7b47a9efb000-7b47a9efd000 r--p 00008000 fc:01 27662547                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/stringio.so
7b47a9efd000-7b47a9efe000 r--p 00009000 fc:01 27662547                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/stringio.so
7b47a9efe000-7b47a9eff000 rw-p 0000a000 fc:01 27662547                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/stringio.so
7b47a9eff000-7b47aa000000 rw-p 00000000 00:00 0 
7b47aa000000-7b47aa5ce000 r--p 00000000 fc:01 19139801                   /usr/lib/locale/locale-archive
7b47aa5d1000-7b47aa5d2000 r--p 00000000 fc:01 27824237                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/md5.so
7b47aa5d2000-7b47aa5d3000 r-xp 00001000 fc:01 27824237                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/md5.so
7b47aa5d3000-7b47aa5d4000 r--p 00002000 fc:01 27824237                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/md5.so
7b47aa5d4000-7b47aa5d5000 r--p 00002000 fc:01 27824237                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/md5.so
7b47aa5d5000-7b47aa5d6000 rw-p 00003000 fc:01 27824237                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/digest/md5.so
7b47aa5d6000-7b47aa5d8000 r--p 00000000 fc:01 28313083                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/io/console.so
7b47aa5d8000-7b47aa5dd000 r-xp 00002000 fc:01 28313083                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/io/console.so
7b47aa5dd000-7b47aa5de000 r--p 00007000 fc:01 28313083                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/io/console.so
7b47aa5de000-7b47aa5df000 r--p 00008000 fc:01 28313083                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/io/console.so
7b47aa5df000-7b47aa5e0000 rw-p 00009000 fc:01 28313083                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/io/console.so
7b47aa5e0000-7b47aa600000 rw-p 00000000 00:00 0 
7b47aa600000-7b47aa628000 r--p 00000000 fc:01 19160552                   /usr/lib/x86_64-linux-gnu/libc.so.6
7b47aa628000-7b47aa7b0000 r-xp 00028000 fc:01 19160552                   /usr/lib/x86_64-linux-gnu/libc.so.6
7b47aa7b0000-7b47aa7ff000 r--p 001b0000 fc:01 19160552                   /usr/lib/x86_64-linux-gnu/libc.so.6
7b47aa7ff000-7b47aa803000 r--p 001fe000 fc:01 19160552                   /usr/lib/x86_64-linux-gnu/libc.so.6
7b47aa803000-7b47aa805000 rw-p 00202000 fc:01 19160552                   /usr/lib/x86_64-linux-gnu/libc.so.6
7b47aa805000-7b47aa812000 rw-p 00000000 00:00 0 
7b47aa812000-7b47aa813000 r--p 00000000 fc:01 27662541                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7b47aa813000-7b47aa814000 r-xp 00001000 fc:01 27662541                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7b47aa814000-7b47aa815000 r--p 00002000 fc:01 27662541                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7b47aa815000-7b47aa816000 r--p 00002000 fc:01 27662541                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7b47aa816000-7b47aa817000 rw-p 00003000 fc:01 27662541                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7b47aa817000-7b47aa87d000 rw-p 00000000 00:00 0 
7b47aa87d000-7b47aa881000 r--p 00000000 fc:01 19139620                   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7b47aa881000-7b47aa8a4000 r-xp 00004000 fc:01 19139620                   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7b47aa8a4000-7b47aa8a8000 r--p 00027000 fc:01 19139620                   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7b47aa8a8000-7b47aa8a9000 r--p 0002b000 fc:01 19139620                   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7b47aa8a9000-7b47aa8aa000 rw-p 0002c000 fc:01 19139620                   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7b47aa8aa000-7b47aa8ba000 r--p 00000000 fc:01 19160558                   /usr/lib/x86_64-linux-gnu/libm.so.6
7b47aa8ba000-7b47aa939000 r-xp 00010000 fc:01 19160558                   /usr/lib/x86_64-linux-gnu/libm.so.6
7b47aa939000-7b47aa991000 r--p 0008f000 fc:01 19160558                   /usr/lib/x86_64-linux-gnu/libm.so.6
7b47aa991000-7b47aa992000 r--p 000e7000 fc:01 19160558                   /usr/lib/x86_64-linux-gnu/libm.so.6
7b47aa992000-7b47aa993000 rw-p 000e8000 fc:01 19160558                   /usr/lib/x86_64-linux-gnu/libm.so.6
7b47aa993000-7b47aa995000 r--p 00000000 fc:01 19139159                   /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7b47aa995000-7b47aa9aa000 r-xp 00002000 fc:01 19139159                   /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7b47aa9aa000-7b47aa9c3000 r--p 00017000 fc:01 19139159                   /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7b47aa9c3000-7b47aa9c4000 r--p 0002f000 fc:01 19139159                   /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7b47aa9c4000-7b47aa9c5000 rw-p 00030000 fc:01 19139159                   /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7b47aa9c5000-7b47aa9cd000 rw-p 00000000 00:00 0 
7b47aa9cd000-7b47aa9d7000 r--p 00000000 fc:01 19137956                   /usr/lib/x86_64-linux-gnu/libgmp.so.10.5.0
7b47aa9d7000-7b47aaa3a000 r-xp 0000a000 fc:01 19137956                   /usr/lib/x86_64-linux-gnu/libgmp.so.10.5.0
7b47aaa3a000-7b47aaa4f000 r--p 0006d000 fc:01 19137956                   /usr/lib/x86_64-linux-gnu/libgmp.so.10.5.0
7b47aaa4f000-7b47aaa50000 r--p 00081000 fc:01 19137956                   /usr/lib/x86_64-linux-gnu/libgmp.so.10.5.0
7b47aaa50000-7b47aaa51000 rw-p 00082000 fc:01 19137956                   /usr/lib/x86_64-linux-gnu/libgmp.so.10.5.0
7b47aaa51000-7b47aaa53000 r--p 00000000 fc:01 19137328                   /usr/lib/x86_64-linux-gnu/libz.so.1.3
7b47aaa53000-7b47aaa65000 r-xp 00002000 fc:01 19137328                   /usr/lib/x86_64-linux-gnu/libz.so.1.3
7b47aaa65000-7b47aaa6b000 r--p 00014000 fc:01 19137328                   /usr/lib/x86_64-linux-gnu/libz.so.1.3
7b47aaa6b000-7b47aaa6c000 r--p 0001a000 fc:01 19137328                   /usr/lib/x86_64-linux-gnu/libz.so.1.3
7b47aaa6c000-7b47aaa6d000 rw-p 0001b000 fc:01 19137328                   /usr/lib/x86_64-linux-gnu/libz.so.1.3
7b47aaa6f000-7b47aaa70000 r--p 00000000 fc:01 27824269                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7b47aaa70000-7b47aaa71000 r-xp 00001000 fc:01 27824269                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7b47aaa71000-7b47aaa72000 r--p 00002000 fc:01 27824269                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7b47aaa72000-7b47aaa73000 r--p 00002000 fc:01 27824269                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7b47aaa73000-7b47aaa74000 rw-p 00003000 fc:01 27824269                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7b47aaa74000-7b47aaa75000 r--p 00000000 fc:01 27824254                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7b47aaa75000-7b47aaa76000 r-xp 00001000 fc:01 27824254                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7b47aaa76000-7b47aaa77000 r--p 00002000 fc:01 27824254                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7b47aaa77000-7b47aaa78000 r--p 00002000 fc:01 27824254                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7b47aaa78000-7b47aaa79000 rw-p 00003000 fc:01 27824254                   /home/thomas/.rbenv/versions/3.4-dev/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7b47aaa79000-7b47aaa80000 r--s 00000000 fc:01 19160541                   /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7b47aaa80000-7b47aaa90000 rw-p 00000000 00:00 0 
7b47aaa91000-7b47aaa93000 rw-p 00000000 00:00 0 
7b47aaa93000-7b47aaa94000 r--p 00000000 fc:01 19160549                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7b47aaa94000-7b47aaabf000 r-xp 00001000 fc:01 19160549                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7b47aaabf000-7b47aaac9000 r--p 0002c000 fc:01 19160549                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7b47aaac9000-7b47aaacb000 r--p 00036000 fc:01 19160549                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7b47aaacb000-7b47aaacd000 rw-p 00038000 fc:01 19160549                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7ffeb5c7e000-7ffeb647d000 rw-p 00000000 00:00 0                          [stack]
7ffeb65b1000-7ffeb65b5000 r--p 00000000 00:00 0                          [vvar]
7ffeb65b5000-7ffeb65b7000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0                  [vsyscall]

Files

a.pdf (51.8 KB) a.pdf gettalong (Thomas Leitner), 05/19/2024 11:59 AM

Updated by k0kubun (Takashi Kokubun) 7 months ago

  • Status changed from Open to Assigned
  • Assignee set to yjit
Actions #2

Updated by alanwu (Alan Wu) 7 months ago

  • Status changed from Assigned to Closed

Applied in changeset git|6c8ae44a388e5c03b7db90376af3652007b574e8.


YJIT: Fix out of bounds access when splatting empty array

Previously, we read the last element array even when the array was
empty, doing an out-of-bounds access. This sometimes caused a SEGV.

[Bug #20496]

Updated by alanwu (Alan Wu) 7 months ago

The linked commit fixed the issue for me locally; feel free to re-test.
Thanks for the comprehensive report!

Updated by k0kubun (Takashi Kokubun) 7 months ago

  • Backport changed from 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN to 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: DONE
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0