Perl client issue and questions

24 views
Skip to first unread message

James Bearden

unread,
Apr 20, 2020, 10:55:26 AM4/20/20
to Gearman
1) I have been using gearman (and the perl client) on Ubuntu for about 6 years now  but I recently had some time to research an issue and I need some help. I like to use the stock Ubuntu packages as much as possible and up until Ubuntu 18.04 that was fine. But at some point a new version of the perl gearman client came out (libgearman-client-perl 1.11 -> 2.00) and started immediately throwing errors and randomly failing jobs. I downgraded to the old version and it's been stable ever since, but I just tried using the newer version again and it still breaks my system. The error I get is "unexpected packet type: error [not_worker -- ]". This happens with both the perl and C server.I figured that it was just some sort of a version mismatch and eventually there would be a 2.00 version of the server but now I think something else is going on. In particular I am hoping that it is something simple I am missing, like the old version was just ignoring exceptions that I have to handle myself now, or something like that. I can't even figure out how to contact the perl client maintainer to ask, though, so if anybody has any suggestions I would greatly appreciate it.

2) In Ubuntu there are also gearman-job-server and gearman-server packages, which after a bit of research are apparently the C and perl based servers. Bonus points if somebody could tell me why I might want to use one over the other. Right now I'm using the C server but only because I only recently figured out you have to tweak the perl server config to actually get it working where as the C server works out of the box.

3) Long story short with my application I have many separate databases and sometime soon I am going to need to add a second server for capacity. I would like to have half the databases on one server and the other half on the other server, dedicate some workers to each server, and based on an identifier have jobs performed by a particular server. So for example the client would know the name of the database it needs, and based on that it would pick the "right" gearman server to submit the job to. Is that possible and if so what would be the best way to do that?

James

Алексей Пастухов

unread,
Apr 20, 2020, 11:12:48 AM4/20/20
to gea...@googlegroups.com
On Mon, 20 Apr 2020 at 16:55, James Bearden <nontriv...@gmail.com> wrote:
1) I have been using gearman (and the perl client) on Ubuntu for about 6 years now  but I recently had some time to research an issue and I need some help. I like to use the stock Ubuntu packages as much as possible and up until Ubuntu 18.04 that was fine. But at some point a new version of the perl gearman client came out (libgearman-client-perl 1.11 -> 2.00) and started immediately throwing errors and randomly failing jobs. I downgraded to the old version and it's been stable ever since, but I just tried using the newer version again and it still breaks my system. The error I get is "unexpected packet type: error [not_worker -- ]". This happens with both the perl and C server.I figured that it was just some sort of a version mismatch and eventually there would be a 2.00 version of the server but now I think something else is going on. In particular I am hoping that it is something simple I am missing, like the old version was just ignoring exceptions that I have to handle myself now, or something like that. I can't even figure out how to contact the perl client maintainer to ask, though, so if anybody has any suggestions I would greatly appreciate it.


Your worker throws exception for some reason. See [1]. Please provide more details (code snippet) in an issue[2] for reproduction purpose. 

 
2) In Ubuntu there are also gearman-job-server and gearman-server packages, which after a bit of research are apparently the C and perl based servers. Bonus points if somebody could tell me why I might want to use one over the other. Right now I'm using the C server but only because I only recently figured out you have to tweak the perl server config to actually get it working where as the C server works out of the box.

Reply all
Reply to author
Forward
0 new messages