2016-04-07 27 views
6

Utilizzo Rails 4.2.6 e Ruby 2.3.0 e Puma 3.3.0 Durante gli ultimi due giorni ho eseguito un aggiornamento del bundle e dopo aver trovato tutti i browser per il stesso URL localhost: 3000 stanno visualizzando la stessa pagina vuota. Questo è coerente per tutte le 6-7 applicazioni con cui sto giocando. Tuttavia, tutti lavorano in "produzione" quando schierati su Heroku. Sembra essere solo una questione relativa al mio dev env.Impossibile eseguire localhost: 3000: il rendering della pagina vuota bianca è

Non so come risolvere questo. Qualsiasi aiuto sarà molto apprezzato. Impossibile continuare lo sviluppo se non è possibile eseguire unit test sul codice che sto sviluppando.

Tuttavia, tutto funziona correttamente quando utilizzo un'altra porta. Ad esempio, quando si avvia il server dell'app con le guide di comando s -p 3001 o la porta 3002 non ho problemi a eseguire le app in alcun browser utilizzando l'URL localhost: 3001 o localhost: 3002.

Cosa c'è di sbagliato con la mia porta 3000 o Puma o entrambi?

+0

Avete avvisi in esecuzione sulla porta 3000? Ci sono altre app (istanze del server) che potrebbero utilizzare questa porta? –

+0

Nessun avviso, i registri dicono solo il codice 200, successo durante il rendering della pagina principale. Tuttavia la pagina arriva vuota nel browser. Non ho altri server o app in esecuzione sulla porta 3000. Per essere sicuro di aver riavviato il mio Mac prima di tutto. Controllo sempre con il comando ps -ef | grep rails per vedere quali server sono in esecuzione. –

+1

OK, ho usato questo e ho trovato due (2) processi parassitari. lsof -i tcp: 3000 comando utente PID FD tipo di dispositivo SIZE/OFF nome del nodo rubino 1014 Liviu-mac 11U IPv6 0x9df9befdd9c36123 0T0 TCP localhost: HBCI (LISTEN) rubino 1015 Liviu-mac 11U IPv6 0x9df9befdd9c36123 0T0 TCP localhost: hbci (LISTEN) Dopo averli uccisi con kill -9 PID il problema sembra essere risolto ora. –

risposta

12

Può accadere localmente in dev e mai in "prod", ad esempio Heroku a causa di un bug durante l'arresto di Puma. Alcune volte alcuni processi non vengono uccisi a causa di:

levi-test-01 liviu-mac $ rails s 
=> Booting Puma 
=> Rails 4.2.6 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
[4589] Puma starting in cluster mode... 
[4589] * Version 3.3.0 (ruby 2.3.0-p0), codename: Jovial Platypus 
[4589] * Min threads: 5, max threads: 5 
[4589] * Environment: development 
[4589] * Process workers: 2 
[4589] * Preloading application 
[4589] * Listening on tcp://localhost:3000 
[4589] Use Ctrl-C to stop 
[4589] - Worker 1 (pid: 4603) booted, phase: 0 
[4589] - Worker 0 (pid: 4602) booted, phase: 0 
^C[4589] - Gracefully shutting down workers... 
/Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/server.rb:355:in `delete': No such file or directory @ unlink_internal - /Users/liviu-mac/ror/levi-test-01/tmp/pids/server.pid (Errno::ENOENT) 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/server.rb:355:in `block in write_pid' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/puma-3.3.0/lib/puma/cluster.rb:120:in `fork' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/puma-3.3.0/lib/puma/cluster.rb:120:in `block in spawn_workers' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/puma-3.3.0/lib/puma/cluster.rb:116:in `times' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/puma-3.3.0/lib/puma/cluster.rb:116:in `spawn_workers' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/puma-3.3.0/lib/puma/cluster.rb:418:in `run' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/puma-3.3.0/lib/puma/launcher.rb:172:in `run' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/puma-3.3.0/lib/rack/handler/puma.rb:51:in `run' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/server.rb:286:in `start' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands/server.rb:80:in `start' 
    from /Users/liviu-mac/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:80:in `block in server' 

L'esecuzione di un comando come questo:

levi-test-01 liviu-mac $ lsof -i :3000 

elenca tutti i processi rimanenti utilizzando port 3000.

Un comando come

levi-test-01 liviu-mac $ kill -9 PID 

risolve il problema.