Issue #8551 has been updated by zzak (Zachary Scott).

Status changed from Open to Closed

See ruby-core:55575
----------------------------------------
Bug #8551: rake 10.0.4 regression from 0.9.6 - prints verbose stacktrace 
https://bugs.ruby-lang.org/issues/8551#change-40398

Author: townsen (Nick Townsend)
Status: Closed
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


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 `<main>'
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 `<main>'
Tasks: TOP => default
(See full trace by running task with --trace)


Note this happens under Centos linux too - it's not a platform issue



-- 
http://bugs.ruby-lang.org/