Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

mimemagic not compaction-friendly #166

Open
HoneyryderChuck opened this issue Feb 13, 2022 · 0 comments
Open

mimemagic not compaction-friendly #166

HoneyryderChuck opened this issue Feb 13, 2022 · 0 comments

Comments

@HoneyryderChuck
Copy link

I'm getting an error which is frequently reproducible in CI and locally via docker, when GC auto-compact is turned on.

> bundle exec ruby -e 'GC.auto_compact = true if GC.respond_to?(:auto_compact=) ; require "mimemagic"'
/usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/searchable.rb:264: [BUG] Segmentation fault at 0x000000000000004c
ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0011 p:0105 s:0067 e:000065 METHOD /usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/searchable.rb:264
c:0010 p:0005 s:0057 e:000056 METHOD /usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/searchable.rb:52
c:0009 p:0016 s:0047 e:000045 BLOCK  /usr/local/bundle/ruby/3.0.0/gems/mimemagic-0.4.3/lib/mimemagic/tables.rb:80
c:0008 p:0008 s:0038 e:000037 BLOCK  /usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/node_set.rb:233 [FINISH]
c:0007 p:---- s:0034 e:000033 CFUNC  :upto
c:0006 p:0019 s:0029 e:000028 METHOD /usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/node_set.rb:232
c:0005 p:0041 s:0025 e:000024 METHOD /usr/local/bundle/ruby/3.0.0/gems/mimemagic-0.4.3/lib/mimemagic/tables.rb:79
c:0004 p:0029 s:0014 e:000013 TOP    /usr/local/bundle/ruby/3.0.0/gems/mimemagic-0.4.3/lib/mimemagic.rb:8 [FINISH]
c:0003 p:---- s:0011 e:000010 CFUNC  :require
c:0002 p:0034 s:0006 e:000005 EVAL   -e:1 [FINISH]
c:0001 p:0000 s:0003 E:000cb0 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
-e:1:in `<main>'
-e:1:in `require'
/usr/local/bundle/ruby/3.0.0/gems/mimemagic-0.4.3/lib/mimemagic.rb:8:in `<top (required)>'
/usr/local/bundle/ruby/3.0.0/gems/mimemagic-0.4.3/lib/mimemagic/tables.rb:79:in `parse_database'
/usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/node_set.rb:232:in `each'
/usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/node_set.rb:232:in `upto'
/usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/node_set.rb:233:in `block in each'
/usr/local/bundle/ruby/3.0.0/gems/mimemagic-0.4.3/lib/mimemagic/tables.rb:80:in `block in parse_database'
/usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/searchable.rb:52:in `search'
/usr/local/bundle/ruby/3.0.0/gems/nokogiri-1.13.1-x86_64-linux/lib/nokogiri/xml/searchable.rb:264:in `extract_params'

-- Machine register context ------------------------------------------------
 RIP: 0x00007fccc87b0500 RBP: 0x0000000000000034 RSP: 0x00007fff3b7acf00
 RAX: 0x0000000000000000 RBX: 0x00005626cf776df0 RCX: 0x000170c100100001
 RDX: 0x0000000000000000 RDI: 0x000170c100100001 RSI: 0x0000000000000034
  R8: 0x0000000000000000  R9: 0x0000000000000001 R10: 0x0000000000000002
...

Although it points to nokogiri, it's not reproducible if I require it as above.

cc @tenderlove

HoneyryderChuck added a commit to HoneyryderChuck/httpx that referenced this issue Feb 13, 2022
mimemagic seems to corrupt memory under auto-compaction, so disabling it
until it's fixed.

mimemagicrb/mimemagic#166
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant