Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
snf-ganeti
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
itminedu
snf-ganeti
Commits
16714921
Commit
16714921
authored
16 years ago
by
Michael Hanselmann
Browse files
Options
Downloads
Patches
Plain Diff
jqueue: Shutdown workerpool in case of a problem
Reviewed-by: ultrotter
parent
21f04e5e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
lib/jqueue.py
+25
-22
25 additions, 22 deletions
lib/jqueue.py
with
25 additions
and
22 deletions
lib/jqueue.py
+
25
−
22
View file @
16714921
...
...
@@ -506,32 +506,35 @@ class JobQueue(object):
# Setup worker pool
self
.
_wpool
=
_JobQueueWorkerPool
(
self
)
# We need to lock here because WorkerPool.AddTask() may start a job while
# we're still doing our work.
self
.
acquire
()
try
:
for
job
in
self
.
_GetJobsUnlocked
(
None
):
# a failure in loading the job can cause 'None' to be returned
if
job
is
None
:
continue
# We need to lock here because WorkerPool.AddTask() may start a job while
# we're still doing our work.
self
.
acquire
()
try
:
for
job
in
self
.
_GetJobsUnlocked
(
None
):
# a failure in loading the job can cause 'None' to be returned
if
job
is
None
:
continue
status
=
job
.
CalcStatus
()
status
=
job
.
CalcStatus
()
if
status
in
(
constants
.
JOB_STATUS_QUEUED
,
):
self
.
_wpool
.
AddTask
(
job
)
if
status
in
(
constants
.
JOB_STATUS_QUEUED
,
):
self
.
_wpool
.
AddTask
(
job
)
elif
status
in
(
constants
.
JOB_STATUS_RUNNING
,
constants
.
JOB_STATUS_WAITLOCK
):
logging
.
warning
(
"
Unfinished job %s found: %s
"
,
job
.
id
,
job
)
try
:
for
op
in
job
.
ops
:
op
.
status
=
constants
.
OP_STATUS_ERROR
op
.
result
=
"
Unclean master daemon shutdown
"
finally
:
self
.
UpdateJobUnlocked
(
job
)
finally
:
self
.
release
()
elif
status
in
(
constants
.
JOB_STATUS_RUNNING
,
constants
.
JOB_STATUS_WAITLOCK
):
logging
.
warning
(
"
Unfinished job %s found: %s
"
,
job
.
id
,
job
)
try
:
for
op
in
job
.
ops
:
op
.
status
=
constants
.
OP_STATUS_ERROR
op
.
result
=
"
Unclean master daemon shutdown
"
finally
:
self
.
UpdateJobUnlocked
(
job
)
finally
:
self
.
release
()
except
:
self
.
_wpool
.
TerminateWorkers
()
raise
@utils.LockedMethod
@_RequireOpenQueue
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment