2011-09-25 23 views
30

Ho schierato una rotaie 3.1 app per stack di Heroku Cedar, e sto cercando di eseguire un:Heroku console corsa torna

heroku run rake db:migrate 

restituisce:

Running console attached to terminal... 
Error connecting to process 

I provare anche a lanciare semplicemente la console:

heroku run console 

Qualsiasi comando di esecuzione restituisce lo stesso errore.

Running console attached to terminal... 
Error connecting to process 

Guardando i log ottengo il codice di errore:

2011-09-25T16:04:52+00:00 app[run.2]: Error R13 (Attach error) -> Failed to attach to process 

Quando ho heroku ps per vedere i processi in corso, posso vedere i miei tentativi sono in esecuzione:

Process  State    Command 
------------ ------------------ ------------------------------ 
run.2   complete for 26m bundle exec rails console 
run.3   up for 27s   bundle exec rails console 
run.4   up for 3s   bundle exec rake db:create 
web.1   up for 46s   bundle exec thin start -p $PORT -e.. 

Ma ancora una volta ognuna di esse sta sollevando eccezioni:

2011-09-25T16:31:47+00:00 app[run.3]: Error R13 (Attach error) -> Failed to attach to process 
2011-09-25T16:31:47+00:00 heroku[run.3]: Process exited 
2011-09-25T16:31:48+00:00 heroku[run.3]: State changed from up to complete 
2011-09-25T16:32:11+00:00 app[run.4]: Error R13 (Attach error) -> Failed to attach to process 
2011-09-25T16:32:11+00:00 heroku[run.4]: Process exited 
2011-09-25T16:32:12+00:00 heroku[run.4]: State changed from up to complete 

Admin server non è la mia tazza di tè, da qui la decisione di usare Heroku.

Entrambi i documenti di Heroku e Google non mi hanno portato lungo un percorso che mi dà molto da fare.

Qualche idea? Questa non è stata la mia esperienza sullo stack di bambù.

Gli altri miei errori sono ovviamente correlati alle migrazioni di DB non eseguite. Finché non posso eseguire i compiti del rake, sono bloccato ad andare avanti.

+0

Interessante .. Ho anche questo problema. – dmonopoly

risposta

81

Ho avuto lo stesso problema e, anche se non ho risolto il problema, ho trovato una soluzione alternativa.

Invece di usare:

Heroku run rake db: migrate

È possibile utilizzare:

Heroku run: separato rake db: migrate

Questo esegue il comando in background, scrivendo l'output su il ceppo. Al termine è possibile visualizzare il registro per il risultato.

Non è l'ideale, ma quando si è su una rete inadeguata, che ti porterà fuori da un buco :)

+0

Impressionante! Sai se esiste un modo per eseguire un comando dopo aver eseguito le rotaie in questo modo? –

+0

Perfetto! grazie! –

+0

run: detached rake db: migrate ha funzionato per me !! Ciao grazie amico .. :) –

0

Sembra un problema con un Heroku - Ricevo errori di connessione alla console su applicazioni mie che funzionano su Cedar. Certamente non stai facendo nulla di sbagliato con i comandi che stai digitando.

1

Provare a installare l'ultima versione della gemma heroku e quindi eseguire nuovamente questi comandi "heroku run".

+0

Yup l'ha provato, continuando a ricevere gli stessi errori? – jdcravens

+0

Sto usando heroku-gem/2.11.0 – jdcravens

17

Questo problema è in genere causato da un problema di connettività o firewall. È possibile verificare la connessione ai server heroku run e heroku console eseguendo i seguenti comandi:

$ telnet rendezvous.heroku.com 5000 
$ telnet s1.runtime.heroku.com 5000 

(Se si è con successo in grado di connettersi, premere Ctrl +] quindi digitare quit per uscire dalla sessione telnet.)

Alcuni utenti hanno successo dopo aver whitelist queste combinazioni di hostname + porte nel loro firewall.

Heroku menziona questo nella sezione di risoluzione dei problemi dei processi una tantum: http://devcenter.heroku.com/articles/oneoff-admin-ps

Una domanda che richiede molto tempo per l'avvio può anche esasperare problemi di connettività. Se il server non risponde abbastanza velocemente, la connessione locale scadrà prima che l'app possa essere avviata.

+0

restituzioni lista ipfw -> 65535 consenti ip da qualsiasi a qualsiasi – jdcravens

+0

risolto - testato con tether 3G e risposte ricevute, non sembra essere il firewall; forse proxy o ISP. – jdcravens

+2

Sfortuna di Heroku che utilizza un porto comunemente bandito dagli ISP aziendali, ecc. Http://www.linklogger.com/TCP5000.htm – robermorales

0

Risolto - testato con tether 3G e risposte ricevute, non sembra essere il firewall; forse proxy o ISP.

4

Sembra che questo accade per motivi diversi. Per me è risultato che avevo installato una versione precedente della cintura di sicurezza di Heroku. Era precedente alla versione autoaggiornante e avevo anche vecchie versioni delle gemme di heroku installate. Quelli dovevano essere rimossi prima di aggiornare il cinturino heroku ha avuto alcun effetto.

Questa pagina è stata utile. Leggetelo prima: https://devcenter.heroku.com/articles/heroku-command#staying-up-to-date

scoprire quale versione Heroku toolbelt (se presente) si utilizza in questo modo:

$ heroku version 
heroku-toolbelt/2.xx.x 

Se è precedente alla versione 2.32.0 quindi ha bisogno di essere aggiornato. Se non vedi "heroku-toolbelt" nella risposta, devi installarlo.

Assicurati di disinstallare prima le vecchie gemme di heroku. L'esecuzione del comando seguente mi ha chiesto se volevo rimuovere anche gli eseguibili. La risposta corretta è SÌ! Puoi sempre raggruppare/installare in seguito se hai bisogno della gemma per app specifiche.

$ gem uninstall heroku --all 

Se si utilizza rbenv, potrebbe essere necessario rivangare:

$ rbenv rehash 

Una volta che si pulisce le vecchie gemme, scaricare il toolbelt Heroku corrente e installarlo. Tutto dovrebbe funzionare dopo il riavvio del terminale.

EDIT:

ho dovuto assicurarsi che il mio percorso rbenv non ha ottenuto una posizione fronte del percorso di Heroku cli. Altrimenti qualsiasi pacchetto/installazione della vecchia gemma di heroku avrebbe di nuovo dirottato il comando heroku. Ho aggiunto la riga del percorso di esportazione alla fine del mio file ~/.profile in modo che fosse aggiunta prima di qualsiasi percorso rbenv.

$ vi ~/.profile 
export PATH=/usr/local/heroku/bin:$PATH 

Ricaricare il terminale mostrato questo ha funzionato eseguendo e il percorso non essere in/usr/local/Heroku

$ which heroku 
/usr/local/heroku/bin/heroku 
+0

Sì, l'aggiornamento del CLI heroku era la soluzione per me. Anche se i documenti di heroku dicono che il cli si aggiornerà automaticamente, dovrò eseguire "heroku update' per forzare un aggiornamento. – Marcus

0

Per me, aggiornare il mio Heroku toolbelt cli funzionato. Io uso brew così assomiglia a questo:

brew upgrade heroku-toolbelt