2017-04-06 11 views
1

내가 AWS에 Heroku가 마이그레이션을 시도하고있다,하지만 내 Sidekiq 작업이 다음 오류와 함께 실패 계속 :Sidekiq 깨진 파이프 오류

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

내가 성공적으로 perform_now를 사용하여 콘솔에서 작업을 실행할 수있는 모든 것을 Heroku에서 잘 작동하므로 AWS 설정 어딘가에 문제가 있다고 생각합니다. Stack Overflow 및 Github 주위의 부적절한 대몬 화에 대한 언급을 보았지만 문제를 해결하는 방법을 모르겠습니다.

는 지금은 다음과 같은 명령을 내 프로세스를 시작하고 있습니다 :

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

와 나는 함께하고 마지막에 &없이 모두 명령을 시도했습니다.

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

와 나는 또한 (https://github.com/mperham/sidekiq/wiki/Logging#syslog) 여기의 지침에 따라, 다음과 같이 그것을 시도했다 :

내 Procfile은 다음과 같습니다

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

sidekiq.ymllogfile 세트가 있습니다 어쨌든 STDOUT에서 로그를 리디렉션해야한다고 생각하는 ./log/sidekiq.log으로 변경하십시오.

여기서 (https://github.com/mperham/sidekiq/issues/3188) 토론을 보았고 rails12factor 보석이 내 Gemfile에 없음을 확인할 수 있습니다.

그래도 오류가 지속됩니다 ... 누구든지 손을 빌려줄 수 있습니까?

업데이트 : 마지막으로 스택 추적을 얻고는 Neo4j.rb 보석의 내부 puts 문에서 오는 볼 수 있습니다 여전히

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'

하지만이 문제를 완화 할 수 방법을 잘합니다. 나는 RAILS_LOG_TO_STDOUT=enabled로 설정하고 설정을 해제했다.

답변

0

나는 보석 관리자들과 이야기를 나누었고 v8.0.13에 puts 문을 제거했습니다. 그것은 나를 위해 문제를 해결했습니다!