Repository: cloudstack Updated Branches: refs/heads/master 95daa14e2 -> 6df38427c
CLOUDSTACK-7566:Many jobs getting stuck in pending state and cloud is unusable. (cherry picked from commit a2d85c8cae5f603bbcfcd3659c1207f0bfe461a7) Signed-off-by: Rohit Yadav <rohit.ya...@shapeblue.com> Conflicts: framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6df38427 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6df38427 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6df38427 Branch: refs/heads/master Commit: 6df38427cffe9cab5a2a842571941a97a3a07b52 Parents: 95daa14 Author: Min Chen <min.c...@citrix.com> Authored: Tue Sep 16 15:14:08 2014 -0700 Committer: Rohit Yadav <rohit.ya...@shapeblue.com> Committed: Wed Nov 12 21:28:31 2014 +0530 ---------------------------------------------------------------------- .../cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6df38427/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java ---------------------------------------------------------------------- diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java index 2ba5d1e..3e26fc1 100644 --- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java +++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java @@ -255,14 +255,17 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, s_logger.debug("Publish async job-" + jobId + " complete on message bus"); } + publishOnEventBus(job, "complete"); // publish before the instance type and ID are wiped out + if (s_logger.isDebugEnabled()) { - s_logger.debug("Wake up jobs related to job-" + jobId); + s_logger.debug("Wake up jobs related to job- " + jobId); } + List<Long> wakeupList = Transaction.execute(new TransactionCallback<List<Long>>() { @Override public List<Long> doInTransaction(TransactionStatus status) { if (s_logger.isDebugEnabled()) { - s_logger.debug("Update db status for job-" + jobId); + s_logger.debug("Update db status for job- " + jobId); } job.setCompleteMsid(getMsid()); job.setStatus(jobStatus); @@ -279,7 +282,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, _jobDao.update(jobId, job); if (s_logger.isDebugEnabled()) { - s_logger.debug("Wake up jobs joined with job-" + jobId + " and disjoin all subjobs created from job- " + jobId); + s_logger.debug("Wake up jobs joined with job- " + jobId + " and disjoin all subjobs created from job- " + jobId); } List<Long> wakeupList = wakeupByJoinedJobCompletion(jobId); _joinMapDao.disjoinAllJobs(jobId);