Bug #8551
closedrake 10.0.4 regression from 0.9.6 - prints verbose stacktrace
Description
When a sh command exits with a non-zero return code in a rake task, a full stacktrace is displayed in 10.0.4
This issue was discussed extensively in https://gist.github.com/coldnebo/1003628 and was largely fixed. Using ruby 2.0.0-p195 and rake 10.0.4 this has regressed.
Here's the failure:
nixmbp:test ntownsend$ ruby -v
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0]
nixmbp:test ntownsend$ rake --version
rake, version 10.0.4
nixmbp:test ntownsend$ cat Rakefile
desc "A sample task"
task :default do
sh('exit 1')
end
nixmbp:test ntownsend$ rake
exit 1
rake aborted!
Command failed with status (1): [exit 1...]
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/file_utils.rb:53:in block in create_shell_runner' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/file_utils.rb:45:in
call'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/file_utils.rb:45:in sh' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/file_utils_ext.rb:37:in
sh'
/Users/ntownsend/test/Rakefile:3:in block in <top (required)>' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:246:in
call'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:246:in block in execute' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:241:in
each'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:241:in execute' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:184:in
block in invoke_with_call_chain'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:177:in invoke_with_call_chain' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:170:in
invoke'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:143:in invoke_task' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:101:in
block (2 levels) in top_level'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:101:in each' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:101:in
block in top_level'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:110:in run_with_threads' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:95:in
top_level'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:73:in block in run' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:160:in
standard_exception_handling'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:70:in run' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in
eval'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `'
Tasks: TOP => default
(See full trace by running task with --trace)
And here's the same thing with rake 0.9.6
nixmbp:test ntownsend$ rake --version
rake, version 0.9.6
nixmbp:test ntownsend$ cat Rakefile
desc "A sample task"
task :default do
sh('exit 1')
end
nixmbp:test ntownsend$ rake
exit 1
rake aborted!
Command failed with status (1): [exit 1...]
/Users/ntownsend/test/Rakefile:3:in block in <top (required)>' /Users/ntownsend/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in
eval'
/Users/ntownsend/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `'
Tasks: TOP => default
(See full trace by running task with --trace)
Note this happens under Centos linux too - it's not a platform issue
Updated by jimweirich (Jim Weirich) over 11 years ago
This is fixed in version 10.1.0 (see https://github.com/jimweirich/rake/issues/198 ).
Not sure why this bug is reported here. Its not a Ruby issue and Rake 10.0.4 isn't currently packaged with ruby.