Skip to content

Segfault on autopointer.rb:175 #209

@arianf

Description

@arianf

We are seeing this segfault occur randomly. It seems similar to: https://bugs.ruby-lang.org/issues/15671 except that one was multi_cleanup while ours is easy_cleanup.

That ruby-lang bug linkes to #91 @Kjarrigan last comment said:

If you still encounter this issue I'll reopen. Might have been fixed by #136 so if you have the issue please try the master-version.

We are on the latest ruby 2.6 version, latest ffi, ethon, and typhoeus using x86_64-linux, specifically dockers version from FROM ruby:2.6.9

Versions:

ruby-2.6.9p207
ethon-0.15.0
ffi-1.15.5
typhoeus-1.4.0

curl --version
curl 7.74.0 (x86_64-pc-linux-gnu) libcurl/7.74.0 OpenSSL/1.1.1k zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0 librtmp/2.3
Release-Date: 2020-12-09
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets

SegFault:

/usr/local/bundle/ruby/2.6.0/gems/ffi-1.15.5/lib/ffi/autopointer.rb:175: [BUG] Segmentation fault at 0x0000000000000038
ruby 2.6.9p207 (2021-11-24 revision 67954) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0125 p:---- s:0690 e:000689 CFUNC  :easy_cleanup
c:0124 p:---- s:0687 e:000686 CFUNC  :call
c:0123 p:0008 s:0682 e:000681 METHOD /usr/local/bundle/ruby/2.6.0/gems/ffi-1.15.5/lib/ffi/autopointer.rb:175
c:0122 p:0017 s:0677 e:000676 METHOD /usr/local/bundle/ruby/2.6.0/gems/ffi-1.15.5/lib/ffi/autopointer.rb:150 [FINISH]
c:0121 p:---- s:0672 e:000671 CFUNC  :require
c:0120 p:0008 s:0667 e:000666 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291
c:0119 p:0068 s:0664 e:000663 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257
c:0118 p:0011 s:0657 e:000656 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291
c:0117 p:0253 s:0651 e:000650 CLASS  /usr/local/bundle/ruby/2.6.0/gems/mail-2.7.1/lib/mail.rb:67
c:0116 p:0007 s:0648 e:000647 TOP    /usr/local/bundle/ruby/2.6.0/gems/mail-2.7.1/lib/mail.rb:3 [FINISH]
c:0115 p:---- s:0645 e:000644 CFUNC  :require
c:0114 p:0008 s:0640 e:000639 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291
c:0113 p:0068 s:0637 e:000636 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257
c:0112 p:0011 s:0630 e:000629 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291
c:0111 p:0006 s:0624 e:000623 TOP    /usr/local/bundle/ruby/2.6.0/gems/actionmailer-5.2.4.4/lib/action_mailer/base.rb:3 [FINISH]
c:0110 p:---- s:0621 e:000620 CFUNC  :require
c:0109 p:0008 s:0616 e:000615 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291
c:0108 p:0068 s:0613 e:000612 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257
c:0107 p:0011 s:0606 e:000605 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291 [FINISH]
c:0106 p:0009 s:0600 e:000597 TOP    /app/app/mailers/application_mailer.rb:1 [FINISH]
c:0105 p:---- s:0595 e:000594 CFUNC  :require
c:0104 p:0008 s:0590 e:000589 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291
c:0103 p:0068 s:0587 e:000586 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257
c:0102 p:0011 s:0580 e:000579 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291
c:0101 p:0126 s:0574 e:000573 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:378
c:0100 p:0003 s:0569 e:000568 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:37
c:0099 p:0003 s:0566 e:000565 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:14
c:0098 p:0032 s:0563 e:000562 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/concurrency/share_lock.rb:151
c:0097 p:0013 s:0554 e:000553 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:13
c:0096 p:0014 s:0550 e:000549 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:37
c:0095 p:0055 s:0546 e:000545 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:356
c:0094 p:0164 s:0539 e:000538 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:510
c:0093 p:0031 s:0525 e:000524 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:195
c:0092 p:0297 s:0519 e:000518 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:542
c:0091 p:0031 s:0505 e:000504 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:195 [FINISH]
c:0090 p:0200 s:0499 e:000497 METHOD /app/app/jobs/run_report_job.rb:53
c:0089 p:0011 s:0487 e:000486 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/execution.rb:39
c:0088 p:0054 s:0484 e:000482 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:109
c:0087 p:0072 s:0474 e:000473 METHOD /usr/local/bundle/ruby/2.6.0/gems/sentry-rails-4.7.3/lib/sentry/rails/active_job.rb:33
c:0086 p:0011 s:0464 e:000463 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/sentry-rails-4.7.3/lib/sentry/rails/active_job.rb:12
c:0085 p:0011 s:0460 e:000459 METHOD /usr/local/bundle/ruby/2.6.0/gems/sentry-ruby-core-4.7.3/lib/sentry/hub.rb:56
c:0084 p:0014 s:0455 e:000454 METHOD /usr/local/bundle/ruby/2.6.0/gems/sentry-ruby-core-4.7.3/lib/sentry-ruby.rb:176
c:0083 p:0038 s:0450 e:000449 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/sentry-rails-4.7.3/lib/sentry/rails/active_job.rb:11 [FINISH]
c:0082 p:---- s:0445 e:000444 CFUNC  :instance_exec
c:0081 p:0140 s:0439 e:000438 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:118
c:0080 p:0029 s:0430 e:000429 METHOD /usr/local/bundle/ruby/2.6.0/gems/i18n-1.8.7/lib/i18n.rb:313
c:0079 p:0019 s:0424 e:000423 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/translation.rb:9 [FINISH]
c:0078 p:---- s:0418 e:000417 CFUNC  :instance_exec
c:0077 p:0140 s:0412 e:000411 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:118
c:0076 p:0007 s:0403 e:000402 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/logging.rb:26
c:0075 p:0011 s:0400 e:000399 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/notifications.rb:168
c:0074 p:0018 s:0397 e:000396 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/notifications/instrumenter.rb:23
c:0073 p:0027 s:0389 e:000388 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/notifications.rb:168
c:0072 p:0056 s:0383 e:000382 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/logging.rb:25
c:0071 p:0003 s:0379 e:000378 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/logging.rb:46
c:0070 p:0004 s:0376 e:000375 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/tagged_logging.rb:71
c:0069 p:0013 s:0373 e:000372 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/tagged_logging.rb:28
c:0068 p:0012 s:0367 e:000366 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/tagged_logging.rb:71
c:0067 p:0037 s:0362 e:000361 METHOD /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/logging.rb:46
c:0066 p:0019 s:0357 e:000356 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/logging.rb:22 [FINISH]
c:0065 p:---- s:0351 e:000350 CFUNC  :instance_exec
c:0064 p:0140 s:0345 e:000344 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:118
c:0063 p:0136 s:0336 E:002348 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:136
c:0062 p:0030 s:0327 E:000fa8 METHOD /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/execution.rb:38
c:0061 p:0014 s:0322 e:000321 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/execution.rb:24
c:0060 p:0054 s:0318 e:000316 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:109
c:0059 p:0006 s:0308 e:000307 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/railtie.rb:28
c:0058 p:0017 s:0305 e:000304 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/execution_wrapper.rb:87
c:0057 p:0006 s:0300 e:000299 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/reloader.rb:73
c:0056 p:0017 s:0297 e:000296 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/execution_wrapper.rb:87
c:0055 p:0008 s:0292 e:000291 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/reloader.rb:72
c:0054 p:0011 s:0288 e:000287 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/railtie.rb:27 [FINISH]
c:0053 p:---- s:0283 e:000282 CFUNC  :instance_exec
c:0052 p:0140 s:0277 e:000276 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:118
c:0051 p:0136 s:0268 E:002498 METHOD /usr/local/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:136
c:0050 p:0015 s:0259 E:0001c8 METHOD /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/execution.rb:22
c:0049 p:0012 s:0254 e:000253 METHOD /usr/local/bundle/ruby/2.6.0/gems/activejob-5.2.4.4/lib/active_job/queue_adapters/resque_adapter.rb:47
c:0048 p:0051 s:0249 e:000248 METHOD /usr/local/bundle/ruby/2.6.0/gems/resque-2.2.0/lib/resque/job.rb:168
c:0047 p:0025 s:0240 e:000239 METHOD /usr/local/bundle/ruby/2.6.0/gems/resque-2.2.0/lib/resque/worker.rb:313
c:0046 p:0022 s:0234 e:000233 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/resque-2.2.0/lib/resque/worker.rb:913 [FINISH]
c:0045 p:---- s:0231 e:000230 CFUNC  :fork
c:0044 p:0014 s:0227 e:000226 METHOD /usr/local/bundle/ruby/2.6.0/gems/resque-2.2.0/lib/resque/worker.rb:911
c:0043 p:0154 s:0221 e:000220 METHOD /usr/local/bundle/ruby/2.6.0/gems/resque-2.2.0/lib/resque/worker.rb:269
c:0042 p:0019 s:0215 e:000214 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/resque-2.2.0/lib/resque/worker.rb:240 [FINISH]
c:0041 p:---- s:0212 e:000211 CFUNC  :loop
c:0040 p:0022 s:0208 e:000207 METHOD /usr/local/bundle/ruby/2.6.0/gems/resque-2.2.0/lib/resque/worker.rb:237
c:0039 p:0074 s:0201 e:000200 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/resque-2.2.0/lib/resque/tasks.rb:20
c:0038 p:0009 s:0197 e:000196 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281 [FINISH]
c:0037 p:---- s:0193 e:000192 CFUNC  :each
c:0036 p:0165 s:0189 e:000188 METHOD /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281
c:0035 p:0008 s:0183 e:000182 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/sentry-ruby-core-4.7.3/lib/sentry/rake.rb:23
c:0034 p:0024 s:0180 e:000179 METHOD /usr/local/bundle/ruby/2.6.0/gems/sentry-ruby-core-4.7.3/lib/sentry/hub.rb:158
c:0033 p:0049 s:0174 e:000173 METHOD /usr/local/bundle/ruby/2.6.0/gems/sentry-ruby-core-4.7.3/lib/sentry/rake.rb:22
c:0032 p:0163 s:0169 e:000168 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:219
c:0031 p:0022 s:0165 e:000164 METHOD /usr/local/lib/ruby/2.6.0/monitor.rb:235
c:0030 p:0024 s:0161 e:000160 METHOD /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:199
c:0029 p:0033 s:0154 e:000153 METHOD /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:188
c:0028 p:0030 s:0148 e:000147 METHOD /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:160
c:0027 p:0007 s:0140 e:000139 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116 [FINISH]
c:0026 p:---- s:0136 e:000135 CFUNC  :each
c:0025 p:0037 s:0132 e:000131 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116
c:0024 p:0024 s:0129 e:000128 METHOD /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:125
c:0023 p:0005 s:0124 e:000123 METHOD /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:110
c:0022 p:0019 s:0120 e:000119 BLOCK  /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:83
c:0021 p:0002 s:0117 e:000116 METHOD /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:186
c:0020 p:0014 s:0112 e:000111 METHOD /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:80
c:0019 p:0020 s:0107 e:000106 TOP    /usr/local/bundle/ruby/2.6.0/gems/rake-13.0.3/exe/rake:27 [FINISH]
c:0018 p:---- s:0104 e:000103 CFUNC  :load
c:0017 p:0120 s:0099 e:000098 TOP    /usr/local/bundle/ruby/2.6.0/bin/rake:25 [FINISH]
c:0016 p:---- s:0094 e:000093 CFUNC  :load
c:0015 p:0105 s:0089 e:000088 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/cli/exec.rb:58
c:0014 p:0075 s:0083 e:000082 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/cli/exec.rb:23
c:0013 p:0055 s:0078 e:000077 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/cli.rb:484
c:0012 p:0064 s:0073 e:000072 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/vendor/thor/lib/thor/command.rb:27
c:0011 p:0047 s:0065 e:000064 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/vendor/thor/lib/thor/invocation.rb:127
c:0010 p:0261 s:0058 e:000057 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/vendor/thor/lib/thor.rb:392
c:0009 p:0009 s:0045 e:000044 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/cli.rb:31
c:0008 p:0064 s:0040 e:000039 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/vendor/thor/lib/thor/base.rb:485
c:0007 p:0009 s:0033 e:000032 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/cli.rb:25
c:0006 p:0099 s:0028 e:000027 BLOCK  /usr/local/bundle/gems/bundler-2.3.8/exe/bundle:48
c:0005 p:0013 s:0022 e:000021 METHOD /usr/local/bundle/gems/bundler-2.3.8/lib/bundler/friendly_errors.rb:103
c:0004 p:0265 s:0017 E:0009b8 TOP    /usr/local/bundle/gems/bundler-2.3.8/exe/bundle:36 [FINISH]
c:0003 p:---- s:0013 e:000012 CFUNC  :load
c:0002 p:0123 s:0008 E:000860 EVAL   /usr/local/bundle/bin/bundle:25 [FINISH]
c:0001 p:0000 s:0003 E:002390 (none) [FINISH]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions