I'm occasionally seeing my beanstalkd tube "clog up" because a job in
the delayed state never transitions to the ready state.

This appears to be an integer overflow issue; the time-left parameter
in the stats of the stalled job is a value near 2^64:

> stats-job 152
> OK 173
> ---
> id: 152
> tube: default
> state: delayed
> pri: 2147483648
> age: 16299
> delay: 15881
> ttr: 60
> time-left: 18446744073291
> reserves: 0
> timeouts: 0
> releases: 0
> buries: 0
> kicks: 0

(Note age > delay, which to me indicates that the job should be ready,
not delayed.)

When this happens, restarting beanstalkd solves the problem and
unclogs the tube.

I'm running beanstalkd 1.4.6 on Ubuntu oneiric, with binlog enabled.
I'm inserting a few hundred jobs with delays ranging from 10 minutes
to 24 hours, then doing a reserve-with-timeout 0 at about five minute
intervals, and occasionally peeking at the previously-scheduled jobs.
The problem will consistently appear within an hour or two of
operation.

Any ideas how to troubleshoot this further?  I assume others running
delayed jobs with no issues, so is there something in my code that
could possibly setting the time-left parameter to a bogus value?  Or
is time-left a red herring and there's some other reason why the job
wouldn't transition to ready after the delay expires?

-- 
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.

Reply via email to