2017-04-06 4 views
1

Ich versuche, von Heroku auf AWS zu migrieren, aber meine Sidekiq Jobs mit dem folgenden Fehler immer wieder Fehler:Sidekiq Rohrbruch Fehler

Errno::EPIPE: Broken pipe @ io_write - <STDOUT>

ich Aufträge aus der Konsole erfolgreich ausführen kann perform_now verwenden und alles funktioniert gut in Heroku, also gehe ich davon aus, dass das Problem irgendwo bei meinem AWS-Setup liegt. Ich habe Hinweise auf unkorrekte Daemonisierung um Stack Overflow und Github gesehen, bin mir aber nicht sicher, wie ich das Problem lösen könnte.

Im Moment bin starte ich meine Prozesse mit dem folgenden Befehl:

foreman start -f Procfile -p 3000 -e $VAR_FILES &

und ich habe den Befehl sowohl mit als auch ohne die & am Ende versucht.

Mein procfile sieht wie folgt aus:

web: bundle exec puma -t 1:2 -p ${PORT:-3000} -e ${RACK_ENV:-production} worker: bundle exec sidekiq -C config/sidekiq.yml log: tail -f log/production.log

und ich habe auch versucht, wie diese es, folgen Sie den Anweisungen hier (https://github.com/mperham/sidekiq/wiki/Logging#syslog):

worker: bundle exec sidekiq -C config/sidekiq.yml 2>&1 | logger -t sidekiq

Mein sidekiq.yml hat logfile Set zu ./log/sidekiq.log, die ich glaube, dass Protokolle von STDOUT sowieso umleiten sollen.

Ich habe die Diskussion hier gesehen (https://github.com/mperham/sidekiq/issues/3188) und kann bestätigen, dass die rails12factor Edelstein ist nicht in meinem Gemfile.

Aber immer noch besteht der Fehler ... Kann jemand eine Hand leihen?

UPDATE: Ich kann endlich eine Stack-Trace und sehe, es wird von einer puts Aussage kommt innerhalb des Neo4j.rb gem:

2017-04-07T15:46:53.553Z 697 TID-12a6r4 WARN: Errno::EPIPE: Broken pipe @ io_write - <STDOUT> 2017-04-07T15:46:53.553Z 697 TID-12a6r4 WARN: /var/lib/gems/2.3.0/bundler/gems/neo4j-c804cb33bef8/lib/neo4j/session_manager.rb:60:in `write' /var/lib/gems/2.3.0/bundler/gems/neo4j-c804cb33bef8/lib/neo4j/session_manager.rb:60:in `puts' /var/lib/gems/2.3.0/bundler/gems/neo4j-c804cb33bef8/lib/neo4j/session_manager.rb:60:in `puts'

aber noch nicht sicher, wie ich das Problem mildern. Ich habe versucht mit RAILS_LOG_TO_STDOUT=enabled beide gesetzt und nicht gesetzt.

Antwort

0

Ich sprach mit den Edelstein Betreuer und sie entfernt die Puts-Anweisungen in v 8.0.13. Es hat das Problem für mich behoben!