Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • B bull
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 175
    • Issues 175
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 9
    • Merge requests 9
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OptimalBits
  • bull
  • Issues
  • #447
Closed
Open
Issue created Feb 16, 2017 by Administrator@rootContributor

Jobs can sometimes be processed after a queue is paused locally.

Created by: josephwarrick

Jobs can sometimes be processed after a queue is paused locally.

This happens because we wait up to five seconds for a job to become available when we try to get the next job.

This is the sequence of events when this happens:

The queue does queue.bclient.brpoplpush to get the next job, but none are available yet.

We locally pause the queue; queue.bclient.brpoplpush is still pending. Since some jobs are still actively processing, we wait for them to finish before resolving the pause.

A new job is pushed to the queue.

queue.bclient.blpoprpush returns with the new job, and our queue starts processing it.

The original set of active jobs all complete and queue.pause(true) resolves. The new job is still processing.

So we think our queue is paused, but we're actually still processing a job.

If we kill the queue, the active job may be terminated before it can complete.

Assignee
Assign to
Time tracking