rubyjs / therubyracer

Embed the V8 Javascript Interpreter into Ruby
1.66k stars 191 forks source link

Segfault with Musl-LibC on MRI inside of Alpine Linux. #378

Closed envygeeks closed 8 months ago

envygeeks commented 9 years ago
[BUG] Segmentation fault at 0x00000000000000
discourse_1  | ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-musl]
discourse_1  | 
discourse_1  | -- Control frame information -----------------------------------------------
discourse_1  | c:0102 p:---- s:0399 e:000398 CFUNC  :RunWithTimeout
discourse_1  | c:0101 p:0011 s:0395 e:000394 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2/lib/v8/context.rb:97
discourse_1  | c:0100 p:0006 s:0393 e:000392 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2/lib/v8/error.rb:84 [FINISH]
discourse_1  | c:0099 p:---- s:0389 e:000388 CFUNC  :call
discourse_1  | c:0098 p:---- s:0387 e:000386 CFUNC  :TryCatch
discourse_1  | c:0097 p:0015 s:0384 E:0006c0 METHOD /usr/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2/lib/v8/error.rb:83
discourse_1  | c:0096 p:0022 s:0381 E:002138 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2/lib/v8/context.rb:97
discourse_1  | c:0095 p:0021 s:0377 e:000376 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2/lib/v8/context.rb:248 [FINISH]
discourse_1  | c:0094 p:---- s:0375 e:000374 CFUNC  :call
discourse_1  | c:0093 p:---- s:0373 e:000372 CFUNC  :HandleScope
discourse_1  | c:0092 p:0015 s:0370 E:001180 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2/lib/v8/context.rb:245 [FINISH]
discourse_1  | c:0091 p:---- s:0368 e:000367 CFUNC  :call
discourse_1  | c:0090 p:---- s:0366 e:000365 CFUNC  :Locker
discourse_1  | c:0089 p:0041 s:0363 E:0019d8 METHOD /usr/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2/lib/v8/context.rb:244
discourse_1  | c:0088 p:0018 s:0359 e:000358 METHOD /usr/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2/lib/v8/context.rb:204
discourse_1  | c:0087 p:0050 s:0355 E:000d38 METHOD /usr/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2/lib/v8/context.rb:94
discourse_1  | c:0086 p:0141 s:0349 e:000348 BLOCK  /opt/discourse/lib/pretty_text.rb:175
discourse_1  | c:0085 p:0008 s:0345 e:000344 BLOCK  /opt/discourse/lib/pretty_text.rb:357 [FINISH]
discourse_1  | c:0084 p:---- s:0342 e:000341 CFUNC  :synchronize
discourse_1  | c:0083 p:0014 s:0339 e:000338 METHOD /opt/discourse/lib/pretty_text.rb:355
discourse_1  | c:0082 p:0015 s:0335 e:000334 METHOD /opt/discourse/lib/pretty_text.rb:152
discourse_1  | c:0081 p:0040 s:0328 e:000327 METHOD /opt/discourse/lib/pretty_text.rb:210
discourse_1  | c:0080 p:0017 s:0320 e:000319 METHOD /opt/discourse/app/models/post_analyzer.rb:12
discourse_1  | c:0079 p:0187 s:0314 e:000313 METHOD /opt/discourse/app/models/post.rb:176
discourse_1  | c:0078 p:0115 s:0307 e:000305 METHOD /opt/discourse/lib/post_creator.rb:161
discourse_1  | c:0077 p:0014 s:0301 e:000300 BLOCK  /opt/discourse/app/models/post.rb:411 [FINISH]
discourse_1  | c:0076 p:---- s:0299 e:000298 CFUNC  :instance_exec
discourse_1  | c:0075 p:0010 s:0296 e:000295 LAMBDA /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/callbacks.rb:443 [FINISH]
discourse_1  | c:0074 p:---- s:0292 e:000291 CFUNC  :call
discourse_1  | c:0073 p:0042 s:0287 e:000286 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/callbacks.rb:161 [FINISH]
discourse_1  | c:0072 p:---- s:0280 e:000279 CFUNC  :call
discourse_1  | c:0071 p:0012 s:0276 e:000275 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/callbacks.rb:501 [FINISH]
discourse_1  | c:0070 p:---- s:0273 e:000272 CFUNC  :each
discourse_1  | c:0069 p:0009 s:0270 e:000269 METHOD /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/callbacks.rb:501
discourse_1  | c:0068 p:0077 s:0265 e:000264 METHOD /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/callbacks.rb:86
discourse_1  | c:0067 p:0009 s:0257 E:000440 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/callbacks.rb:306
discourse_1  | c:0066 p:0030 s:0254 e:000253 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/timestamp.rb:57
discourse_1  | c:0065 p:0030 s:0250 e:000249 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/persistence.rb:484
discourse_1  | c:0064 p:0008 s:0246 e:000245 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/callbacks.rb:302 [FINISH]
discourse_1  | c:0063 p:---- s:0244 e:000243 CFUNC  :call
discourse_1  | c:0062 p:0036 s:0241 e:000239 METHOD /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/callbacks.rb:113
discourse_1  | c:0061 p:0017 s:0235 e:000234 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/callbacks.rb:552 [FINISH]
discourse_1  | c:0060 p:---- s:0232 e:000231 CFUNC  :call
discourse_1  | c:0059 p:0021 s:0228 e:000227 METHOD /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/callbacks.rb:502
discourse_1  | c:0058 p:0077 s:0223 e:000222 METHOD /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/callbacks.rb:86
discourse_1  | c:0057 p:0009 s:0215 E:000890 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/callbacks.rb:302
discourse_1  | c:0056 p:0007 s:0212 e:000211 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/persistence.rb:103
discourse_1  | c:0055 p:0021 s:0208 e:000207 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/validations.rb:51
discourse_1  | c:0054 p:0010 s:0204 e:000203 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/attribute_methods/dirty.rb:21
discourse_1  | c:0053 p:0011 s:0199 e:000198 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/transactions.rb:268
discourse_1  | c:0052 p:0014 s:0197 e:000196 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/transactions.rb:329
discourse_1  | c:0051 p:0069 s:0195 e:000194 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/connection_adapters/abstract/database_statements.rb:199
discourse_1  | c:0050 p:0017 s:0191 e:000190 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/transactions.rb:208
discourse_1  | c:0049 p:0014 s:0186 E:0016b8 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/transactions.rb:326
discourse_1  | c:0048 p:0007 s:0182 E:002610 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/transactions.rb:268
discourse_1  | c:0047 p:0012 s:0180 e:000179 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/transactions.rb:283
discourse_1  | c:0046 p:0007 s:0177 E:001308 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/transactions.rb:267
discourse_1  | c:0045 p:0027 s:0173 e:000172 METHOD /opt/discourse/lib/post_creator.rb:281
discourse_1  | c:0044 p:0013 s:0169 e:000168 BLOCK  /opt/discourse/lib/post_creator.rb:116 [FINISH]
discourse_1  | c:0043 p:---- s:0167 e:000166 CFUNC  :call
discourse_1  | c:0042 p:0015 s:0164 e:000163 BLOCK  /opt/discourse/lib/post_creator.rb:182
discourse_1  | c:0041 p:0069 s:0162 e:000161 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/connection_adapters/abstract/database_statements.rb:199
discourse_1  | c:0040 p:0017 s:0158 e:000157 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/transactions.rb:208
discourse_1  | c:0039 p:0013 s:0153 E:001cc8 METHOD /opt/discourse/lib/post_creator.rb:180
discourse_1  | c:0038 p:0014 s:0149 E:000200 METHOD /opt/discourse/lib/post_creator.rb:114
discourse_1  | c:0037 p:0134 s:0146 e:000145 METHOD (eval):16
discourse_1  | c:0036 p:0145 s:0133 e:000132 EVAL   (eval):29 [FINISH]
discourse_1  | c:0035 p:---- s:0126 e:000125 CFUNC  :eval
discourse_1  | c:0034 p:0033 s:0122 e:000121 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/seed-fu-2.3.5/lib/seed-fu/runner.rb:46
discourse_1  | c:0033 p:0008 s:0118 e:000117 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/seed-fu-2.3.5/lib/seed-fu/runner.rb:58 [FINISH]
discourse_1  | c:0032 p:---- s:0115 e:000114 CFUNC  :open
discourse_1  | c:0031 p:0046 s:0111 e:000110 METHOD /usr/lib/ruby/gems/2.2.0/gems/seed-fu-2.3.5/lib/seed-fu/runner.rb:57
discourse_1  | c:0030 p:0009 s:0107 e:000106 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/seed-fu-2.3.5/lib/seed-fu/runner.rb:36
discourse_1  | c:0029 p:0006 s:0105 e:000104 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/connection_adapters/abstract/database_statements.rb:201
discourse_1  | c:0028 p:0019 s:0103 e:000102 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/connection_adapters/abstract/database_statements.rb:209
discourse_1  | c:0027 p:0078 s:0097 e:000096 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/connection_adapters/abstract/database_statements.rb:201
discourse_1  | c:0026 p:0017 s:0093 e:000092 METHOD /usr/lib/ruby/gems/2.2.0/gems/activerecord-4.1.10/lib/active_record/transactions.rb:208
discourse_1  | c:0025 p:0039 s:0088 E:0025c8 METHOD /usr/lib/ruby/gems/2.2.0/gems/seed-fu-2.3.5/lib/seed-fu/runner.rb:35
discourse_1  | c:0024 p:0009 s:0084 e:000083 BLOCK  /usr/lib/ruby/gems/2.2.0/gems/seed-fu-2.3.5/lib/seed-fu/runner.rb:26 [FINISH]
discourse_1  | c:0023 p:---- s:0081 e:000080 CFUNC  :each
discourse_1  | c:0022 p:0043 s:0078 e:000077 METHOD /usr/lib/ruby/gems/2.2.0/gems/seed-fu-2.3.5/lib/seed-fu/runner.rb:25
discourse_1  | c:0021 p:0033 s:0075 e:000074 METHOD /usr/lib/ruby/gems/2.2.0/gems/seed-fu-2.3.5/lib/seed-fu.rb:29
discourse_1  | c:0020 p:0013 s:0070 e:000069 BLOCK  /opt/discourse/lib/tasks/db.rake:8 [FINISH]
discourse_1  | c:0019 p:---- s:0067 e:000066 CFUNC  :call
discourse_1  | c:0018 p:0028 s:0062 e:000061 BLOCK  /usr/lib/ruby/2.2.0/rake/task.rb:240 [FINISH]
discourse_1  | c:0017 p:---- s:0059 e:000058 CFUNC  :each
discourse_1  | c:0016 p:0113 s:0056 e:000055 METHOD /usr/lib/ruby/2.2.0/rake/task.rb:235
discourse_1  | c:0015 p:0075 s:0052 e:000051 BLOCK  /usr/lib/ruby/2.2.0/rake/task.rb:179
discourse_1  | c:0014 p:0014 s:0050 e:000049 METHOD /usr/lib/ruby/2.2.0/monitor.rb:211
discourse_1  | c:0013 p:0025 s:0047 e:000046 METHOD /usr/lib/ruby/2.2.0/rake/task.rb:172
discourse_1  | c:0012 p:0036 s:0040 e:000039 METHOD /usr/lib/ruby/2.2.0/rake/task.rb:165
discourse_1  | c:0011 p:0035 s:0035 e:000034 METHOD /usr/lib/ruby/2.2.0/rake/application.rb:150
discourse_1  | c:0010 p:0009 s:0028 e:000027 BLOCK  /usr/lib/ruby/2.2.0/rake/application.rb:106 [FINISH]
discourse_1  | c:0009 p:---- s:0025 e:000024 CFUNC  :each
discourse_1  | c:0008 p:0039 s:0022 e:000021 BLOCK  /usr/lib/ruby/2.2.0/rake/application.rb:106
discourse_1  | c:0007 p:0025 s:0020 e:000019 METHOD /usr/lib/ruby/2.2.0/rake/application.rb:115
discourse_1  | c:0006 p:0007 s:0016 e:000015 METHOD /usr/lib/ruby/2.2.0/rake/application.rb:100
discourse_1  | c:0005 p:0019 s:0013 e:000012 BLOCK  /usr/lib/ruby/2.2.0/rake/application.rb:78
discourse_1  | c:0004 p:0006 s:0011 e:000010 METHOD /usr/lib/ruby/2.2.0/rake/application.rb:176
discourse_1  | c:0003 p:0007 s:0007 e:000006 METHOD /usr/lib/ruby/2.2.0/rake/application.rb:75
discourse_1  | c:0002 p:0040 s:0004 E:0021f0 EVAL   /usr/bin/rake:33 [FINISH]
discourse_1  | c:0001 p:0000 s:0002 E:000f10 TOP    [FINISH]
SamSaffron commented 6 years ago

@cowboyd I probably recommend for the time being just to close all the bugs on TRR and say it is no longer supported in the README, less work for everyone.

Its quite risky having this out there cause the v8 version it runs is so old and full of published security holes.

duaneking commented 1 year ago

Just want to point out that on Ubuntu 22.04.2 LTS, under WSL2 running on Win11 on an Intel CPU, all attempts to install therubyracer fail to compile, and this random segfualt when trying to compile is the core active blocker on the ability to upgrade to newer rails versions.

TheRubyRacer was core to rails at one point, so a lot of apps depend on getting a working install, even to upgrade them out of using it. If people are not able to install it, they cant update away from it. Congrats, You have broken the rails upgrade path.

Thing is, Ubuntu doesnt even use Muscl, so this issue is not just just a Muscl issue.