I think we've got this figured out. It looks like what probably happened was
the job timed out so it went back on the queue.
On Apr 2, 2012, at 9:38 AM, Roy Smith wrote:
> We're using pybeanstalk 0.11.1, python 2.6.5, Ubuntu 10.04.3 LTS. The main
> loop of our multi-threaded beanstalk client looks like:
>
> while True:
> m = mq.reserve()
> jid = m['jid']
> try:
> # process job
>
>
> except Exception:
> logger.error("skipped job %d" % jid)
> finally:
> logger.info("deleted job %d" % jid)
> mq.delete(jid)
>
> Every once in a while (yesterday it happened once in 60k jobs processed), the
> delete() call in the finally block raises a NotFound exception. I've
> included a stack dump below.
>
> 2012-04-02T04:56:57+00:00 cluster1.songza.com 2012-04-02 04:56:57,497 -
> scrobble_mill - Caught NotFound('Server returned: NOT_FOUND',) in
> <Thread(Thread-9, started 139969929115392)>
> Traceback (most recent call last):
> File "/home/songza/deploy/current/scrobble/scrobble_mill.py", line 98, in
> listen_wrapper
> listen(host, port)
> File "/home/songza/deploy/current/scrobble/scrobble_mill.py", line 162, in
> listen
> mq.delete(jid)
> File "/usr/lib/pymodules/python2.6/beanstalk/serverconn.py", line 94, in
> caller
> *getattr(protohandler, 'process_%s' % attr)(*args, **kw))
> File "/usr/lib/pymodules/python2.6/beanstalk/serverconn.py", line 68, in
> _do_interaction
> return self._get_response(handler)
> File "/usr/lib/pymodules/python2.6/beanstalk/serverconn.py", line 58, in
> _get_response
> res = handler(recv)
> File "/usr/lib/pymodules/python2.6/beanstalk/protohandler.py", line 56, in
> __call__
> return self.__h(val)
> File "/usr/lib/pymodules/python2.6/beanstalk/protohandler.py", line 68, in
> handler
> checkError(response)
> File "/usr/lib/pymodules/python2.6/beanstalk/errors.py", line 35, in
> checkError
> raise err
> NotFound: Server returned: NOT_FOUND
>
> Looking over the logs, it appears that two different threads got the same job
> in their reserve() calls. Is this a bug? I was assuming that beanstalk was
> thread safe, but maybe not?
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "beanstalk-talk" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/beanstalk-talk/-/GMkJoHdsoOgJ.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/beanstalk-talk?hl=en.
---
Roy Smith
[email protected]
--
You received this message because you are subscribed to the Google Groups
"beanstalk-talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/beanstalk-talk?hl=en.