From 6dfb8ab03ed05747941a89b4079ff23d25f4d8fd Mon Sep 17 00:00:00 2001 From: Koushik Das Date: Wed, 29 Apr 2015 11:10:48 +0530 Subject: [PATCH] CLOUDSTACK-8425: Job framework: Same internal job can execute simultaneously The same internal job was simultaneously getting executed by 2 worked threads. The fix is to ensure that job gets scheduled for execution from a single place. --- .../cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java | 4 ++-- .../cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java | 1 - .../cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java index 167d9f511ed..29c3f1b289f 100644 --- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java +++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java @@ -116,9 +116,9 @@ public class SyncQueueItemDaoImpl extends GenericDaoBase l.add(item); } } catch (SQLException e) { - s_logger.error("Unexpected sql excetpion, ", e); + s_logger.error("Unexpected sql exception, ", e); } catch (Throwable e) { - s_logger.error("Unexpected excetpion, ", e); + s_logger.error("Unexpected exception, ", e); } return l; } 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 6d20445848d..10a10b2b8c5 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 @@ -554,7 +554,6 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, if (job.getSyncSource() != null) { // here check queue item one more time to double make sure that queue item is removed in case of any uncaught exception _queueMgr.purgeItem(job.getSyncSource().getId()); - checkQueue(job.getSyncSource().getQueueId()); } try { diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java index 65351634bcb..c17c5812f03 100644 --- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java +++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java @@ -160,7 +160,7 @@ public class SyncQueueManagerImpl extends ManagerBase implements SyncQueueManage itemVO.setLastProcessTime(dt); _syncQueueItemDao.update(item.getId(), itemVO); - resultList.add(item); + resultList.add(itemVO); } } }