Errno::EIO: Bład wejścia / wynik

class FaxFetchWorker
include Sidekiq::Worker
sidekiq_options :retry => false

def perform/job_id=0/
logger.warn "perform is invoked."

FaxSource.all.each do |source|
...
end
end
end


Popełnienie błędu
Errno::EIO: Input/output error - <stdout>

w linii # 6
</stdout>
Zaproszony:

Zdzisław

Potwierdzenie od:

Linia #6 W swoim kodzie takim


logger.warn "perform is invoked."


Ten kod wymaga otwarcia

Wątek STDOUT, i błąd twojego nazwiska

Errno::EIO

.

In linux EIO oznacza, że ​​dokonano próby odczytu/Wpisy do strumienia, który jest obecnie niedostępny. Może się to zdarzyć z powodu błędu fizycznego lub gdy proces sierocy /Którego rodzic umarł/ Próbować dostać stdio Z procesu macierzystego lub gdy strumień jest zamknięty.

Wiesław

Potwierdzenie od:

Pracownicy nadal mogą pracować w tle, ale już nie ma dostępu STDOUT.

I.e. Ci pracownicy nadal nadal obsługiwać zadania, ale jeśli chodzi o drukowanie, narzekają EIO.

/W moim przypadku był spowodowany morderstwem serwera tmux WITHOUT, Zabijanie pracowników. Robić
ps -ef | grep resque

, I tutaj są./

Decyzja:

Zabij tych pracowników i nowych.

na przykład,
pkill resque-1.25.2

/lub jaka jest nazwa pracowników/

Robert

Potwierdzenie od:

Dla mnie restart. redis Zdecydowałem ten problem:

service redis restart

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się