2011-12-13 10 views
10

supporto Heroku dice che questo ha a che fare con la loro versione di libssl sul database condivisi, ma abbiamo incontrato su un progetto anche su un database dedicato.Su Heroku, cedro, con Unicorn: Ottenere ActiveRecord :: StatementInvalid: PGError: SSL errore SYSCALL: EOF rilevato

Fondamentalmente questo errore si verifica di tanto in tanto (più vicino a subito dopo una Deploy) su ogni progetto ci siamo spostati alla nuova Cedar impilare con Unicorn configurato per 3 lavoratori:

messaggio di errore:

ActiveRecord::StatementInvalid: PGError: SSL SYSCALL error: EOF detected : SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.at 

Where: 
some_controller#index 
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/connection_adapters/postgresql_adapter.rb, line 505 

Nessuna risposta da parte di heroku, tuttavia, potrebbe anche aspettare chissà quanto tempo ci permetterà di aggiornare i nostri server di database condivisi * e non ho trovato nulla su google.

Hanno anche suggerito che ha a che fare con i lavoratori di unicorno che si sovrappongono e che dovremmo passare a Thin ma il guadagno in termini di prestazioni merita l'errore occasionale (credo!). Spero che ci sia un modo per configurare Unicorn per prevenire la sovrapposizione.

Qualcuno ha riscontrato questo e, in caso affermativo, cosa avete fatto per risolverlo? Grazie!

* Non le loro parole effettive, proprio come mi sono sentito dopo la loro risposta.

+0

erano quelle le parole esatte dal loro team di supporto? Se è così, è molto poco professionale ... – leonardoborges

+0

Ho gli stessi errori. Sto usando unicorno con 3 lavoratori. – soulnafein

+0

No, non erano le loro parole reali, solo come mi hanno fatto sentire: non so QUANDO si aggiornerà e potrebbe non risolvere il problema. Hanno detto che dovremmo provare un DB dedicato, ma vediamo gli stessi errori su un'app che abbiamo/ho/ho dedicato. –

risposta

24

supporto Heroku suggerito che aggiungo questo al mio config Unicorn:

Append al config/unicorn.rb:

after_fork do |server, worker| 
    if defined?(ActiveRecord::Base) 
    ActiveRecord::Base.establish_connection 
    end 
end 

ho aggiunto e non abbiamo visto un solo errore PGError: SSL SYSCALL tutto il giorno.

+0

Ho intenzione di provare questo. – soulnafein

+0

Andando il giorno 2, nessun errore –

+0

Funziona così lontano! – soulnafein