2011-10-02 10 views
33

Cercando di eseguire rake cucumber:ok e sto ottenendo questo errore:Rake "già inizializzato costante WFKV_" Attenzione

/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_

Poi:
Command failed with status (1): [/Users/dev/.rbenv/versions/1.9.2-p290/bin...]

Sono abbastanza nuovo a Rails e Google non ha fatto gira nulla per questo errore.

MODIFICA: Ho provato ad aggiungere bundle exec e questo non fa alcuna differenza.

Ecco quello che ho ottenuto con --trace:

/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:53:in `block in create_shell_runner' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:45:in `call' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:45:in `sh' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/file_utils_ext.rb:36:in `sh' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/cucumber-1.1.0/lib/cucumber/rake/task.rb:104:in `run' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/cucumber-1.1.0/lib/cucumber/rake/task.rb:193:in `block in define_task' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/bin/rake:32:in `<top (required)>' 
/Users/dev/.rbenv/versions/1.9.2-p290/bin/rake:19:in `load' 
/Users/dev/.rbenv/versions/1.9.2-p290/bin/rake:19:in `<main>' 
Tasks: TOP => cucumber:ok 

risposta

51

ho cominciato ad avere lo stesso problema di questa sera. Sembra essere correlato a Rack 1.3.4. Ho risolto con l'aggiunta di questo al mio Gemfile:

gem 'rack', '1.3.3' 

poi eseguire:

bundle update rack 

Per inciso, ho provato il suggerimento di Bozhidar prima di questo, ma senza alcun risultato.

+6

Grazie per averlo indicato. Allora rimuoverò la mia risposta. –

+14

Dai commenti in common_192.rb ("Rubati dal core di ruby ​​uri/common.rb @ 32618ba per risolvere i problemi di DoS in 1.9.2" e "Questo dovrebbe probabilmente essere rimosso una volta che c'è un livello di patch per Ruby 1.9.2 che include questo fix. ") sembra come se fosse stato aggiunto al rack per prevenire un attacco denial-of-service. Mette volutamente in monkeypatch una vulnerabilità in Ruby ma il monkeypatch genera l'avviso "costante già inizializzata". Quindi sembra che la scelta sia quella di ripristinare la 1.3.3 come suggerito da Daniel o di ottenere la correzione e sopportare l'avviso per un po '. –

+1

Nel mio caso, l'avvertimento stava impedendo la precompilazione della pipeline degli asset, quindi tornare alla 1.3.3 era l'unica opzione. –

-1

Quindi, ho incluso:

richiedono 'uri/comune'; :: URI.send: remove_const,: WFKV_

tuttavia il commento che dice "si funzionerà nel Gemfile", infatti, dovrebbe leggere "Deve essere nel Gemfile."

8

Il rack 1.3.5 è ora disponibile, che ha corretto questa avvertenza.

Problemi correlati