Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm testing Gearman on a dedicated job-server (Ubuntu 12.04) for my PHP project (using pecl/gearman as the PHP impementation).

Manually this works fine: starting up the client, adding jobs and running one or more workers in separate shells works as intended. Now I want to run the workers using Supervisord, but this generates a lot of the following errors in the Gearman log:

WARNING [     4 ] lost connection to client recv(peer has closed connection) 127.0.0.1:37126 -> libgearman-server/io.cc:608
  ERROR [     4 ] Failed while in _connection_read() -> libgearman-server/io.cc:489

The supervisor conf is default, I just added a program:

[program:migration]
command=/path/to/script
process_name=%(program_name)s_%(process_num)02d
numprocs=10
stdout_logfile=/var/log/gearman.log
stderr_logfile=/var/log/gearman-error.log
stdout_logfile_maxbytes=1MB
environment=GEARMAN_USER=gearman
autostart=true
autorestart=true
user=gearman
stopsignal=KILL

Gearman process information:

gearman   9802  0.0  0.0 476116  1780 ?        Ssl  12:18   0:00 /usr/sbin/gearmand --pid-file=/var/run/gearman/gearmand.pid --user=gearman --daemon --log-file=/var/log/gearman-job-server/gearman.log --listen=127.0.0.1

When testing supervisor:

supervisord -n -c /etc/supervisor/supervisord.conf 

I'm kind of stuck here, since the error message doesn't really return results on Google. Any help is appreciated.

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

Ran into the same error in almost exactly the same server stack, and found a solution. The warning and error are thrown because your trying to send a job to a non registered worker. Check the name of your worker and check with ps -ax on the command line if its running.

Sending a job to a non existing worker on the command line using gearmand -f will give you no feedback. Doing it using the pecl module results in an error.

PS: I know you already jumped ship and moved along with Beanstalkd but maybe it can help someone else.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.