#Job that fails because of time out does not post said failure to the failed_jobs table

5 messages · Page 1 of 1 (latest)

obsidian vigil
#

We have a dev server where we're testing a new job and it ran up against a timeout encoded on the job. The job was marked as "FAIL" in the queue worker's output but we didn't get a new entry in the failed_jobs table. I'm curious if this is expected behavior or if I should investigate if something is wrong with our configuration. It seems like a MaxAttemptsExceededException should be thrown based on the wording of that message.

#

Job that fails because of time out does not post said failure to the failed_jobs table

obsidian vigil
#

This is the relevant part of the job in question:

class LaborDataLoader implements ShouldQueue, ShouldBeUnique
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * The number of times the job may be attempted.
     *
     * @var int
     */
    public $tries = 1;

    /**
     * This job should take no longer than 14 minutes (840 seconds) to run.
     *
     * @var int
     */
    public $timeout = 840;

    /**
     * Indicate if the job should be marked as failed on timeout.
     *
     * @var bool
     */
    public $failOnTimeout = true;
#

Based on the pcntl_signal portion in the Worker class it seems like it should go into Worker::markJobAsFailedIfItShouldFailOnTimeout and then call failJob with the MaxAttemptsExceededException? The only thing I can think of is if the job is already deleted? then it just returns instantly from the fail method?

obsidian vigil
#

bump