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

ruby-2.1.2/gems/eventmachine-1.0.3/lib/eventmachine.rb:187: [BUG] Segmentation fault at 0x00000000000000 #511

Closed
ioquatix opened this issue May 16, 2014 · 11 comments
Milestone

Comments

@ioquatix
Copy link

When creating a large number of UDP sockets:

/Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/eventmachine.rb:187: [BUG] Segmentation fault at 0x00000000000000
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/CrashReporter
     * /Library/Logs/CrashReporter
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.

-- Control frame information -----------------------------------------------
c:0033 p:---- s:0156 e:000155 CFUNC  :run_machine
c:0032 p:0267 s:0153 e:000152 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/eventmachine.rb:187
c:0031 p:0051 s:0146 E:000628 BLOCK  /Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb:122
c:0030 p:0034 s:0142 e:000141 METHOD /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:279
c:0029 p:0039 s:0134 e:000132 METHOD /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:361
c:0028 p:0010 s:0126 E:0004e8 BLOCK  /Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb:116 [FINISH]
c:0027 p:---- s:0122 e:000121 CFUNC  :each
c:0026 p:0009 s:0119 E:000480 BLOCK  /Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb:115
c:0025 p:0133 s:0116 e:000115 METHOD /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:172
c:0024 p:0030 s:0106 e:000105 METHOD /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:204
c:0023 p:0030 s:0100 E:0003d0 METHOD /Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb:114
c:0022 p:0028 s:0096 e:000095 BLOCK  /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:106
c:0021 p:0008 s:0094 e:000093 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:204
c:0020 p:0007 s:0090 e:000089 BLOCK  /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:103
c:0019 p:0019 s:0088 e:000087 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:256
c:0018 p:0007 s:0084 e:000083 BLOCK  /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:102
c:0017 p:0036 s:0082 E:0020d8 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:317
c:0016 p:0035 s:0075 E:0018f0 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:276
c:0015 p:0007 s:0069 E:0017c8 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:101
c:0014 p:0012 s:0066 e:000065 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:759
c:0013 p:0019 s:0060 e:000058 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:293
c:0012 p:0013 s:0053 e:000052 BLOCK  /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:287 [FINISH]
c:0011 p:---- s:0050 e:000049 CFUNC  :each
c:0010 p:0008 s:0047 e:000046 BLOCK  /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:286
c:0009 p:0036 s:0045 E:001658 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:317
c:0008 p:0020 s:0038 E:0006f0 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:306
c:0007 p:0062 s:0032 E:000e28 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:285
c:0006 p:0012 s:0025 e:000024 BLOCK  /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:149 [FINISH]
c:0005 p:---- s:0022 e:000021 CFUNC  :map
c:0004 p:0034 s:0019 e:000018 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:149
c:0003 p:0121 s:0011 e:000010 METHOD /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:126
c:0002 p:0065 s:0005 E:000f30 BLOCK  /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:55 [FINISH]
c:0001 p:0000 s:0002 E:001478 TOP    [FINISH]

/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:55:in `block in autorun'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:126:in `run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:149:in `__run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:149:in `map'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:149:in `block in __run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:285:in `run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:306:in `with_info_handler'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:317:in `on_signal'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:286:in `block in run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:286:in `each'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:287:in `block (2 levels) in run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:293:in `run_one_method'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:759:in `run_one_method'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:101:in `run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:276:in `with_info_handler'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb:317:in `on_signal'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:102:in `block in run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:256:in `time_it'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:103:in `block (2 levels) in run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:204:in `capture_exceptions'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb:106:in `block (3 levels) in run'
/Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb:114:in `test_server_performance'
/Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:204:in `bm'
/Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:172:in `benchmark'
/Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb:115:in `block in test_server_performance'
/Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb:115:in `each'
/Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb:116:in `block (2 levels) in test_server_performance'
/Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:361:in `item'
/Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
/Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb:122:in `block (3 levels) in test_server_performance'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
/Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'

-- C level backtrace information -------------------------------------------
0   ruby                                0x00000001002860c6 rb_vm_bugreport + 134
1   ruby                                0x000000010013c683 report_bug + 307
2   ruby                                0x000000010013c544 rb_bug + 180
3   ruby                                0x0000000100209439 sigsegv + 153
4   libsystem_platform.dylib            0x00007fff8c9b75aa _sigtramp + 26
5   ???                                 0x0000000000000000 0x0 + 0
6   ???                                 0x0000000000000000 0x0 + 0

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

* Loaded script: /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/rake_test_loader.rb

* Loaded features:

    0 enumerator.so
    1 enc/encdb.so
    2 enc/trans/transdb.so
    3 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/rbconfig.rb
    4 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/compatibility.rb
    5 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/defaults.rb
    6 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/deprecate.rb
    7 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/errors.rb
    8 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/version.rb
    9 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/requirement.rb
   10 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/platform.rb
   11 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/basic_specification.rb
   12 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/stub_specification.rb
   13 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/util/stringio.rb
   14 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/specification.rb
   15 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/exceptions.rb
   16 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb
   17 thread.rb
   18 thread.so
   19 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/monitor.rb
   20 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb
   21 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems.rb
   22 pathname.so
   23 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/pathname.rb
   24 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/constants.rb
   25 io/console.so
   26 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/user_interaction.rb
   27 etc.so
   28 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/config_file.rb
   29 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/rubygems_integration.rb
   30 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/current_ruby.rb
   31 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/dependency.rb
   32 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/shared_helpers.rb
   33 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb
   34 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/gem_path_manipulation.rb
   35 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/gem_helpers.rb
   36 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/match_platform.rb
   37 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/rubygems_ext.rb
   38 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/version.rb
   39 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler.rb
   40 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/settings.rb
   41 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/path_support.rb
   42 digest.so
   43 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/digest.rb
   44 digest/sha1.so
   45 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/set.rb
   46 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/definition.rb
   47 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/dependency.rb
   48 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/ruby_dsl.rb
   49 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/dsl.rb
   50 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/source.rb
   51 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/common.rb
   52 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/generic.rb
   53 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/ftp.rb
   54 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/http.rb
   55 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/https.rb
   56 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/ldap.rb
   57 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/ldaps.rb
   58 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/mailto.rb
   59 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri.rb
   60 socket.so
   61 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/socket.rb
   62 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/timeout.rb
   63 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/protocol.rb
   64 zlib.so
   65 stringio.so
   66 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/exceptions.rb
   67 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/header.rb
   68 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/generic_request.rb
   69 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/request.rb
   70 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/requests.rb
   71 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/response.rb
   72 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/responses.rb
   73 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/proxy_delta.rb
   74 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/backward.rb
   75 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http.rb
   76 date_core.so
   77 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/date/format.rb
   78 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/date.rb
   79 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/time.rb
   80 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/request.rb
   81 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/cgi/core.rb
   82 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/cgi/util.rb
   83 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/cgi/cookie.rb
   84 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/cgi.rb
   85 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/uri_formatter.rb
   86 fcntl.so
   87 openssl.so
   88 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl/bn.rb
   89 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl/cipher.rb
   90 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl/config.rb
   91 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl/digest.rb
   92 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl/x509.rb
   93 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl/buffering.rb
   94 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl/ssl.rb
   95 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl.rb
   96 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/securerandom.rb
   97 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/resolv.rb
   98 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/remote_fetcher.rb
   99 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/text.rb
  100 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/name_tuple.rb
  101 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/spec_fetcher.rb
  102 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/source/rubygems.rb
  103 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/version.rb
  104 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/source/path.rb
  105 strscan.so
  106 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/source/git.rb
  107 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/lockfile_parser.rb
  108 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/lazy_specification.rb
  109 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb
  110 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/forwardable.rb
  111 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/spec_set.rb
  112 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/index.rb
  113 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/environment.rb
  114 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/runtime.rb
  115 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/remote_specification.rb
  116 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/dep_proxy.rb
  117 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/resolver.rb
  118 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/ui.rb
  119 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/ui/silent.rb
  120 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/endpoint_specification.rb
  121 /Users/samuel/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/setup.rb
  122 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/version.rb
  123 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/singleton.rb
  124 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/optparse.rb
  125 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/ostruct.rb
  126 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/ext/module.rb
  127 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/ext/core.rb
  128 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/ext/string.rb
  129 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/early_time.rb
  130 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/ext/time.rb
  131 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/alt_system.rb
  132 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/win32.rb
  133 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/linked_list.rb
  134 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/scope.rb
  135 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/task_argument_error.rb
  136 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/rule_recursion_overflow_error.rb
  137 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/shellwords.rb
  138 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/task_manager.rb
  139 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/cloneable.rb
  140 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/file_utils.rb
  141 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/file_utils_ext.rb
  142 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/pathmap.rb
  143 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/file_list.rb
  144 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/promise.rb
  145 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/thread_pool.rb
  146 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/private_reader.rb
  147 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/thread_history_display.rb
  148 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/trace_output.rb
  149 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/application.rb
  150 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/rake_module.rb
  151 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/pseudo_status.rb
  152 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/task_arguments.rb
  153 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/invocation_chain.rb
  154 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/invocation_exception_mixin.rb
  155 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/task.rb
  156 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/file_task.rb
  157 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/file_creation_task.rb
  158 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/multi_task.rb
  159 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/dsl_definition.rb
  160 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/default_loader.rb
  161 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/name_space.rb
  162 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake/backtrace.rb
  163 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rake-10.1.1/lib/rake.rb
  164 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/mutex_m.rb
  165 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/parallel.rb
  166 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/assertions.rb
  167 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/test.rb
  168 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/unit.rb
  169 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest.rb
  170 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/expectations.rb
  171 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/spec.rb
  172 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/mock.rb
  173 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/autorun.rb
  174 /Users/samuel/.rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/eventmachine-1.0.3/rubyeventmachine.bundle
  175 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/version.rb
  176 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/pool.rb
  177 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/deferrable.rb
  178 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/future.rb
  179 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/streamer.rb
  180 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/spawnable.rb
  181 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/processes.rb
  182 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/iterator.rb
  183 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/buftok.rb
  184 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/timers.rb
  185 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/protocols.rb
  186 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/connection.rb
  187 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/callback.rb
  188 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/queue.rb
  189 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/channel.rb
  190 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/file_watch.rb
  191 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/process_watch.rb
  192 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/tick_loop.rb
  193 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/resolver.rb
  194 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/completion.rb
  195 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/threaded_resource.rb
  196 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/eventmachine.rb
  197 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/base64.rb
  198 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/logger.rb
  199 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/logger.rb
  200 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/extensions/resolv.rb
  201 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/message.rb
  202 fiber.so
  203 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/transaction.rb
  204 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/server.rb
  205 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/binary_string.rb
  206 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/resolver.rb
  207 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/handler.rb
  208 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns.rb
  209 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rainbow-2.0.0/lib/rainbow/string_utils.rb
  210 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rainbow-2.0.0/lib/rainbow/color.rb
  211 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rainbow-2.0.0/lib/rainbow/presenter.rb
  212 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rainbow-2.0.0/lib/rainbow/null_presenter.rb
  213 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rainbow-2.0.0/lib/rainbow/wrapper.rb
  214 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rainbow-2.0.0/lib/rainbow/global.rb
  215 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rainbow-2.0.0/lib/rainbow/legacy.rb
  216 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/rainbow-2.0.0/lib/rainbow.rb
  217 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/process-daemon-0.5.3/lib/process/daemon/controller.rb
  218 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/process-daemon-0.5.3/lib/process/daemon/log_file.rb
  219 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/process-daemon-0.5.3/lib/process/daemon/process_file.rb
  220 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/process-daemon-0.5.3/lib/process/daemon.rb
  221 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_daemon.rb
  222 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_message.rb
  223 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_passthrough.rb
  224 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_resolver.rb
  225 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/system.rb
  226 /Users/samuel/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb
  227 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_resolver_performance.rb
  228 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_rules.rb
  229 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_server_performance.rb
  230 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_slow_server.rb
  231 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_system.rb
  232 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/chunked.rb
  233 /Users/samuel/Documents/Programming/Internet/rubydns/lib/rubydns/extensions/string.rb
  234 /Users/samuel/Documents/Programming/Internet/rubydns/test/test_truncation.rb
  235 /Users/samuel/.rvm/gems/ruby-2.1.2/gems/minitest-5.3.2/lib/minitest/pride_plugin.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

rake aborted!
SIGABRT
/Users/samuel/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `eval'
/Users/samuel/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => default => test
(See full trace by running task with --trace)
@ioquatix
Copy link
Author

Here is how to reproduce the crash:

$ ulimit -n 10000
$ git clone -b eventmachine-segfault https://github.com/ioquatix/rubydns
$ cd rubydns
$ bundle install
$ rake test

The output can be seen on travis:

https://travis-ci.org/ioquatix/rubydns/jobs/25378050

@ikataitsev
Copy link

I got pretty much the same segfault with eventmachine 1.0.3 on ruby 2.1.2: https://gist.github.com/ikataitsev/9a9c13d7d494ee27d780

EM process (which fetches a message from RabbitMQ using ruby-amqp gem, does some processing and writes it to the TCP socket) works fine for a few hours and then crashes with a segfault.

I'd be happy to provide more details if needed.

@ioquatix
Copy link
Author

From what others have said, EventMachine is dead. So, I'm experimenting with Celluloid::IO. So far it's been a bit difficult to migrate the code but generally it seems more robust. Will be interesting to see how it scales.

ioquatix referenced this issue in swrobel/invoker Oct 27, 2014
Invoker currently does not start on a new install because it will use RubyDNS 0.9.0 which was released on 10/23/14. This took an exceptionally long time to troubleshoot because of celluloid, but I finally tracked it down! Invoker's gemspec locks RubyDNS to `~> 0.7`, however [the author states](socketry/rubydns#28) that `0.x` releases are incompatible, but minor versions should be compatible. Here is the [offending change](socketry/rubydns@v0.8.5...v0.9.0#diff-d86035f01d9c6b072797c19b43eb736aL116) in 0.9.0.
For the time being you can add the following to your own `Gemfile`:

`gem 'rubydns', '~> 0.8.5'`

Here is a trace of what happens when you run with RubyDNS 0.9.0:
```
→ invoker start Procfile 
D, [2014-10-26T09:45:30.515304 #59891] DEBUG -- : Terminating 1 actor...
vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:39:in `check': wrong number of arguments (1 for 0) (ArgumentError)
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:24:in `dispatch'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
	from (celluloid):0:in `remote procedure call'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:92:in `value'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:17:in `block in run'
	from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `call'
	from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run_machine'
	from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:13:in `run'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `block in fork_and_start'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork_and_start'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/process_manager.rb:72:in `run_power_server'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/commander.rb:39:in `start_manager'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:46:in `start'
	from vendor/bundle/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
	from vendor/bundle/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
	from vendor/bundle/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
	from vendor/bundle/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:12:in `start'
	from vendor/bundle/gems/invoker-1.3.0/bin/invoker:7:in `<top (required)>'
	from ./bin/invoker:16:in `load'
	from ./bin/invoker:16:in `<main>'
```
@sodabrew
Copy link
Contributor

@ioquatix @ikataitsev That's a handy Travis job to repro this! Could I ask you to re-run it with eventmachine 1.0.4 and Ruby 2.1.5 to see if the situation persists? The eventmachine-segfault branch doesn't seem to be available anymore in your repo.

@sodabrew
Copy link
Contributor

Sidenote, I'm here to make eventmachine not dead:
https://github.com/ioquatix/rubydns#migrating-from-rubydns-08x-to-09x

@ioquatix
Copy link
Author

@sodabrew Sorry, that branch is long since gone.

@sodabrew
Copy link
Contributor

RubyDNS looks like a neat project. I'm sorry that eventmachine lagged long enough to push you away. Do you recall enough of the problem to describe how I could set up a repro?

@ioquatix
Copy link
Author

@sodabrew here it is https://github.com/ValiMail/rubydns/tree/eventmachine-segfault

btw. I found Celluloid a much better platform for scalability and other reasons, it has it's problems too but in general feels like a much better platform for building highly concurrent systems. Even if EventMachine was fixed, I wouldn't consider moving back.

Best of luck.

@sodabrew
Copy link
Contributor

Good news! This is resolved by #502!

@sodabrew sodabrew added this to the v1.0.5 milestone Feb 2, 2015
@hsmade
Copy link

hsmade commented Jun 8, 2015

And it seems back in 1.0.7:
/opt/synclog/gems/eventmachine-1.0.7/lib/eventmachine.rb:187: [BUG] Segmentation fault at 0x00000000000018
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]

This happens, again, when opening a lot of connections at the same time.

@sodabrew
Copy link
Contributor

@hsmade Could you open a new issue and include a C backtrace if you can get one?

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

4 participants