Project

General

Profile

Bug #17213

Rails CI against Ruby 3.0.0dev fails likely since a53e2850c572135ed657144bc14e47b29c64fa94

Added by yahonda (Yasuo Honda) about 2 months ago. Updated about 1 month ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.8.0dev (2020-05-21T19:08:38Z v3_0_0_preview1~1778 a53e2850c5) [x86_64-linux]
[ruby-core:100290]

Description

Rails CI against Ruby 3.0.0dev fails likely since a53e2850c572135ed657144bc14e47b29c64fa94 . This is the oldest failure https://buildkite.com/rails/rails/builds/69461#777c707f-7056-4959-9924-36dac592b737

Steps to reproduce

  1. Install Docker
  2. Install Ruby 2.7.1 (or whatever Ruby version to run rake)
  3. Create Ruby docker image for a53e2850c572135ed657144bc14e47b29c64fa94
git clone https://github.com/ruby/ruby-docker-images.git
cd ruby-docker-images
rake docker:build ruby_version=master:a53e2850c572135ed657144bc14e47b29c64fa94
  1. Run Rails CI using the Docker image created in step 3
cd ~
git clone https://github.com/rails/rails.git
cd rails
git clone https://github.com/rails/buildkite-config .buildkite/
RUBY_IMAGE=rubylang/ruby:master-a53e2850c572135ed657144bc14e47b29c64fa94-bionic docker-compose -f .buildkite/docker-compose.yml build base &&  CI=1 docker-compose -f .buildkite/docker-compose.yml run default runner railties 'ruby -v ; ruby -w -Itest -Ilib -I../activesupport/lib -I../actionpack/lib -I../actionview/lib -I../activemodel/lib test/railties/engine_test.rb --seed 31510'

Actual result

$ RUBY_IMAGE=rubylang/ruby:master-a53e2850c572135ed657144bc14e47b29c64fa94-bionic docker-compose -f .buildkite/docker-compose.yml build base &&  CI=1 docker-compose -f .buildkite/docker-compose.yml run default runner railties 'ruby -v ; ruby -w -Itest -Ilib -I../activesupport/lib -I../actionpack/lib -I../actionview/lib -I../activemodel/lib test/railties/engine_test.rb --seed 31510'
... snip ...
+++ railties: ruby -v ; ruby -w -Itest -Ilib -I../activesupport/lib -I../actionpack/lib -I../actionview/lib -I../activemodel/lib test/railties/engine_test.rb --seed 31510
ruby 2.8.0dev (2020-05-21T19:08:38Z v3_0_0_preview1~1778 a53e2850c5) [x86_64-linux]
warning @rails/webpacker > webpack > watchpack > watchpack-chokidar2 > chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
warning @rails/webpacker > webpack > watchpack > watchpack-chokidar2 > chokidar > fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
warning @rails/webpacker > webpack > micromatch > snapdragon > source-map-resolve > resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
warning @rails/webpacker > webpack > micromatch > snapdragon > source-map-resolve > urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32454: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32615: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32651: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32740: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32756: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32822: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32863: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32888: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:31984: warning: assigned but unused variable - testEof
Run options: --seed 31510

# Running:

/usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34: [BUG] Segmentation fault at 0x0000000000000000
ruby 2.8.0dev (2020-05-21T19:08:38Z v3_0_0_preview1~1778 a53e2850c5) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0047 p:---- s:0255 e:000254 CFUNC  :require
c:0046 p:0052 s:0250 e:000249 METHOD /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34 [FINISH]
c:0045 p:0447 s:0244 e:000240 CLASS  /rails/activerecord/lib/active_record/base.rb:300
c:0044 p:0007 s:0238 e:000237 CLASS  /rails/activerecord/lib/active_record/base.rb:265
c:0043 p:0073 s:0235 e:000234 TOP    /rails/activerecord/lib/active_record/base.rb:15 [FINISH]
c:0042 p:---- s:0232 e:000231 CFUNC  :require
c:0041 p:0052 s:0227 e:000226 METHOD /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34 [FINISH]
c:0040 p:0023 s:0221 e:000218 METHOD /rails/activerecord/lib/active_record/railties/controller_runtime.rb:31
c:0039 p:0008 s:0212 e:000210 METHOD /rails/actionpack/lib/action_controller/metal/instrumentation.rb:45
c:0038 p:0021 s:0205 e:000204 METHOD /rails/actionpack/lib/action_controller/metal/implicit_render.rb:35
c:0037 p:0011 s:0200 e:000199 BLOCK  /rails/actionpack/lib/action_controller/metal/basic_implicit_render.rb:6 [FINISH]
c:0036 p:---- s:0197 e:000196 CFUNC  :tap
c:0035 p:0013 s:0193 e:000192 METHOD /rails/actionpack/lib/action_controller/metal/basic_implicit_render.rb:6
c:0034 p:0009 s:0187 e:000186 METHOD /rails/actionpack/lib/abstract_controller/base.rb:228
c:0033 p:0024 s:0181 e:000180 METHOD /rails/actionpack/lib/action_controller/metal/rendering.rb:30
c:0032 p:0009 s:0176 e:000175 BLOCK  /rails/actionpack/lib/abstract_controller/callbacks.rb:42
c:0031 p:0090 s:0173 e:000171 METHOD /rails/activesupport/lib/active_support/callbacks.rb:106
c:0030 p:0006 s:0163 e:000162 METHOD /rails/actionpack/lib/abstract_controller/callbacks.rb:41
c:0029 p:0008 s:0158 e:000157 METHOD /rails/actionpack/lib/action_controller/metal/rescue.rb:22
c:0028 p:0009 s:0152 e:000151 BLOCK  /rails/actionpack/lib/action_controller/metal/instrumentation.rb:34
c:0027 p:0010 s:0147 e:000146 BLOCK  /rails/activesupport/lib/active_support/notifications.rb:203
c:0026 p:0022 s:0144 e:000143 METHOD /rails/activesupport/lib/active_support/notifications/instrumenter.rb:24
c:0025 p:0023 s:0136 e:000135 METHOD /rails/activesupport/lib/active_support/notifications.rb:203
c:0024 p:0098 s:0130 e:000129 METHOD /rails/actionpack/lib/action_controller/metal/instrumentation.rb:33
c:0023 p:0017 s:0124 e:000123 METHOD /rails/actionpack/lib/action_controller/metal/params_wrapper.rb:245
c:0022 p:0026 s:0119 e:000118 METHOD /rails/activerecord/lib/active_record/railties/controller_runtime.rb:27
c:0021 p:0082 s:0113 e:000112 METHOD /rails/actionpack/lib/abstract_controller/base.rb:165
c:0020 p:0062 s:0106 e:000105 METHOD /rails/actionview/lib/action_view/rendering.rb:39
c:0019 p:0017 s:0100 e:000099 METHOD /rails/actionpack/lib/action_controller/metal.rb:190
#<Thread:0x0000563ba506efc8 /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/parallel.rb:28 run> terminated with exception (report_on_exception is true):
/rails/activesupport/lib/active_support/testing/isolation.rb:23:in `load': marshal data too short (ArgumentError)
    from /rails/activesupport/lib/active_support/testing/isolation.rb:23:in `run'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest.rb:1029:in `run_one_method'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/parallel.rb:33:in `block (2 levels) in start'
/rails/activesupport/lib/active_support/testing/isolation.rb:23:in `load': marshal data too short (ArgumentError)
    from /rails/activesupport/lib/active_support/testing/isolation.rb:23:in `run'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest.rb:1029:in `run_one_method'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/parallel.rb:33:in `block (2 levels) in start'
$

Expected result

It should not cause segmentation fault as the previous commit ba7f4bb0af82bc9a7e392608fd7f6a316bec7c9f

$ RUBY_IMAGE=rubylang/ruby:master-ba7f4bb0af82bc9a7e392608fd7f6a316bec7c9f-bionic docker-compose -f .buildkite/docker-compose.yml build base && 
CI=1 docker-compose -f .buildkite/docker-compose.yml run default runner railties 'ruby -v ; ruby -w -Itest -Ilib -I../activesupport/lib -I../actionpack/lib -I../actionview/lib -I../activemodel/lib test/railties/engine_test.rb --seed 31510'
... snip ...
+++ railties: ruby -v ; ruby -w -Itest -Ilib -I../activesupport/lib -I../actionpack/lib -I../actionview/lib -I../activemodel/lib test/railties/engine_test.rb --seed 31510
ruby 2.8.0dev (2020-05-21T04:31:36Z v3_0_0_preview1~1779 ba7f4bb0af) [x86_64-linux]
warning @rails/webpacker > webpack > watchpack > watchpack-chokidar2 > chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
warning @rails/webpacker > webpack > watchpack > watchpack-chokidar2 > chokidar > fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
warning @rails/webpacker > webpack > micromatch > snapdragon > source-map-resolve > resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
warning @rails/webpacker > webpack > micromatch > snapdragon > source-map-resolve > urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32454: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32615: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32651: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32740: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32756: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32822: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32863: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32888: warning: statement not reached
/usr/local/lib/ruby/gems/2.8.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:31984: warning: assigned but unused variable - testEof
Run options: --seed 31510

# Running:

.............../usr/local/lib/ruby/gems/2.8.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:288: warning: method redefined; discarding old max_attempts
/usr/local/lib/ruby/gems/2.8.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:22: warning: previous definition of max_attempts was here
/usr/local/lib/ruby/gems/2.8.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:292: warning: method redefined; discarding old max_run_time
/usr/local/lib/ruby/gems/2.8.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:22: warning: previous definition of max_run_time was here
/usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34: warning: /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34: warning: loading in progress, circular require considered harmful - /usr/local/lib/ruby/gems/2.8.0/gems/delayed_job-4.1.8/lib/delayed_job.rb
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/parallel.rb:33:in  `block (2 levels) in start'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest.rb:1029:in  `run_one_method'
    from /rails/activesupport/lib/active_support/testing/isolation.rb:19:in  `run'
    from /rails/activesupport/lib/active_support/testing/isolation.rb:32:in  `run_in_isolation'
    from /rails/activesupport/lib/active_support/testing/isolation.rb:32:in  `fork'
    from /rails/activesupport/lib/active_support/testing/isolation.rb:34:in  `block in run_in_isolation'
    from /rails/activesupport/lib/active_support/testing/isolation.rb:20:in  `block in run'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/test.rb:93:in  `run'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/test.rb:211:in  `with_info_handler'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest.rb:367:in  `on_signal'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/test.rb:94:in  `block in run'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest.rb:272:in  `time_it'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/test.rb:95:in  `block (2 levels) in run'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/test.rb:195:in  `capture_exceptions'
    from /usr/local/lib/ruby/gems/2.8.0/gems/minitest-5.14.2/lib/minitest/test.rb:98:in  `block (3 levels) in run'
    from test/railties/engine_test.rb:901:in  `block in <class:EngineTest>'
    from /rails/railties/lib/rails/engine.rb:560:in  `load_seed'
    from /rails/railties/lib/rails/engine.rb:560:in  `load'
    from /rails/tmp/d20201003-137-ay5nkq/app/db/seeds.rb:1:in  `<top (required)>'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'
    from /rails/activejob/lib/active_job/base.rb:17:in  `<top (required)>'
    from /rails/activejob/lib/active_job/base.rb:63:in  `<module:ActiveJob>'
    from /rails/activejob/lib/active_job/base.rb:77:in  `<class:Base>'
    from /rails/activesupport/lib/active_support/lazy_load_hooks.rb:51:in  `run_load_hooks'
    from /rails/activesupport/lib/active_support/lazy_load_hooks.rb:51:in  `each'
    from /rails/activesupport/lib/active_support/lazy_load_hooks.rb:52:in  `block in run_load_hooks'
    from /rails/activesupport/lib/active_support/lazy_load_hooks.rb:66:in  `execute_hook'
    from /rails/activesupport/lib/active_support/lazy_load_hooks.rb:61:in  `with_execution_control'
    from /rails/activesupport/lib/active_support/lazy_load_hooks.rb:71:in  `block in execute_hook'
    from /rails/activesupport/lib/active_support/lazy_load_hooks.rb:71:in  `class_eval'
    from /rails/activejob/lib/active_job/railtie.rb:28:in  `block (2 levels) in <class:Railtie>'
    from /rails/activejob/lib/active_job/railtie.rb:28:in  `each'
    from /rails/activejob/lib/active_job/railtie.rb:30:in  `block (3 levels) in <class:Railtie>'
    from /rails/activejob/lib/active_job/queue_adapter.rb:40:in  `queue_adapter='
    from /rails/activejob/lib/active_job/queue_adapters.rb:137:in  `lookup'
    from /rails/activejob/lib/active_job/queue_adapters.rb:137:in  `const_get'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'
    from /rails/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb:3:in  `<top (required)>'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'
    from /usr/local/lib/ruby/gems/2.8.0/gems/delayed_job-4.1.8/lib/delayed_job.rb:14:in  `<top (required)>'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'
    from /usr/local/lib/ruby/gems/2.8.0/gems/delayed_job-4.1.8/lib/delayed/railtie.rb:1:in  `<top (required)>'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'
    from /usr/local/lib/ruby/gems/2.8.0/gems/zeitwerk-2.4.0/lib/zeitwerk/kernel.rb:34:in  `require'

......................../usr/local/lib/ruby/gems/2.8.0/gems/semantic_range-2.3.0/lib/semantic_range/range.rb:194: warning: assigned but unused variable - pr
/usr/local/lib/ruby/gems/2.8.0/gems/semantic_range-2.3.0/lib/semantic_range/range.rb:252: warning: assigned but unused variable - fpr
/usr/local/lib/ruby/gems/2.8.0/gems/semantic_range-2.3.0/lib/semantic_range/range.rb:253: warning: assigned but unused variable - fb
/usr/local/lib/ruby/gems/2.8.0/gems/semantic_range-2.3.0/lib/semantic_range/range.rb:259: warning: assigned but unused variable - tb
.........../usr/local/lib/ruby/gems/2.8.0/gems/semantic_range-2.3.0/lib/semantic_range/range.rb:194: warning: assigned but unused variable - pr
/usr/local/lib/ruby/gems/2.8.0/gems/semantic_range-2.3.0/lib/semantic_range/range.rb:252: warning: assigned but unused variable - fpr
/usr/local/lib/ruby/gems/2.8.0/gems/semantic_range-2.3.0/lib/semantic_range/range.rb:253: warning: assigned but unused variable - fb
/usr/local/lib/ruby/gems/2.8.0/gems/semantic_range-2.3.0/lib/semantic_range/range.rb:259: warning: assigned but unused variable - tb
.

Finished in 34.113826s, 1.4950 runs/s, 3.4883 assertions/s.
51 runs, 119 assertions, 0 failures, 0 errors, 0 skips
$

Files

log.log.gz (60.8 KB) log.log.gz gzipped log file yahonda (Yasuo Honda), 10/27/2020 12:48 PM

Updated by yahonda (Yasuo Honda) about 2 months ago

Rails CI against Ruby 3.0.0-dev (or 2.8.0dev) had been failing because sprockets and sprockets-rails gem did not support Ruby 3 keyword arguments then I (at least) had overlooked this segmentation fault. Recently, both sprockets and sprockets-rails gem supports Ruby 3 keyword arguments then failures due to them were resolved.

Updated by yahonda (Yasuo Honda) about 2 months ago

It has not reproduced since https://buildkite.com/rails/rails/builds/71832#5716101b-5e5b-49f8-90c4-4b359c8b1f96 . The last failed one is https://buildkite.com/rails/rails/builds/71830#2476cfb2-dc3b-4e4e-a891-7a62ecf42ec9

  • The last failed Ruby version 3.0.0p-1 (2020-09-27 revision 9a951c09317032fd1c2a3b5506f70b5e83e0464b) [x86_64-linux]
  • The first succeeded Ruby version 3.0.0p-1 (2020-09-29 revision 0555bd8435d352a24bab1e03a7879b9abcc34b88) [x86_64-linux]

Some of these commits https://github.com/ruby/ruby/compare/9a951c09317032fd1c2a3b5506f70b5e83e0464b...0555bd8435d352a24bab1e03a7879b9abcc34b88 may have addressed this segmentation failt.

I think this issue can be closed. Thank you.

#3

Updated by jeremyevans0 (Jeremy Evans) about 2 months ago

  • Status changed from Open to Closed

Updated by yahonda (Yasuo Honda) about 2 months ago

It reproduced again with this newer version of Ruby 3.0.0p-1.

https://buildkite.com/rails/rails/builds/71972#920c6233-8bd8-4af9-8375-8df0ebbf0956

Ruby 3.0.0p-1 (2020-10-07 revision 260322fbc58a225d1c0323d53698ff62a31cf552) [x86_64-linux]

Would someone reopen this issue?

#5

Updated by shyouhei (Shyouhei Urabe) about 2 months ago

  • Status changed from Closed to Open

Updated by yahonda (Yasuo Honda) about 1 month ago

It also reproduces with the latest rubylang/ruby:master-debug-nightly-bionic which generate large log file like assetions. Attached the gzipped log file to this ticket.

  • Reproduced with rubylang/ruby:master-debug-nightly-bionic
git clone https://github.com/rails/rails.git
cd rails
git clone https://github.com/rails/buildkite-config .buildkite/
RUBY_IMAGE=rubylang/ruby:master-debug-nightly-bionic docker-compose -f .buildkite/docker-compose.yml build base &&  CI=1 docker-compose -f .buildkite/docker-compose.yml run default runner railties 'ruby -v ; ruby -w -Itest -Ilib -I../activesupport/lib -I../actionpack/lib -I../actionview/lib -I../activemodel/lib test/railties/engine_test.rb --seed 31510' | tee log.log 2>&1

Also available in: Atom PDF