We are hitting an issue where truncated data was found to be
present in Beanstalk under scale scenario. The version of Beanstalkd
that we use is 1.10. There were no transmit errors on the client
producer for these put requests, therefore, one may assume the jobs were
enqueued correctly. We are using ruby client, Beaneater, version 0.3.3,
for the put operation.
The larger problem is that a reserve on
these truncated jobs fails to return any response, and was stuck
executing the reserve command. As seen in this telnet session logs, the
message data seems truncated. Therefore, though the queue has somehow
enqueued a deformed message, it does not allow the dequeuer client to
reserve the same.
A delete operation works on this partial data and the job is deleted.
Therefore -
1.
Why would Beanstalk ever get into this scenario of enqueuing a
truncated data? Are there known issues where jobs are overwritten or
truncated in v1.10?
2. How may such jobs be reserved? Is this also a
feature bug, or is it by design? It seems that anything that gets
enqueued should be reserved as well.
Logs from telnet session -
//
peek-ready
FOUND 52549446 96
{"from":"097040414
delete 52549446
DELETED
peek-ready
FOUND 52549447 96
{"from":"09542448606","to":"04030911057","time":"1469428490","direction":"inbound","type":"poi"}
//
Appreciate your feedback in the matter.
Thanks,
Smita