mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-10123: Entity should use GMT TZ for timestamp values (#2303)
Depending on the timezone you're running CS (before GMT timezones) you could experience that some jobs are marked as failed since the parent job got a null result despite its child job having successfully done the job. The child job got deleted by the CleanupTask ahead of time, due to a missing datetime conversion to GMT timezone. Jobs are failing with this message: Job failed with un-handled exception The fix intends to correct any datetime used in the code that should be using the GMT timezone instead of the local one since all DB datetime should be stored at GMT.
This commit is contained in:
parent
cd6288ecfb
commit
421f1072d5
@ -2608,9 +2608,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
||||
s_logger.trace("VM Operation Thread Running");
|
||||
try {
|
||||
_workDao.cleanup(VmOpCleanupWait.value());
|
||||
|
||||
// TODO. hard-coded to one hour after job has been completed
|
||||
final Date cutDate = new Date(new Date().getTime() - 3600000);
|
||||
final Date cutDate = new Date(DateUtil.currentGMTTime().getTime() - VmOpCleanupInterval.value() * 1000);
|
||||
_workJobDao.expungeCompletedWorkJobs(cutDate);
|
||||
} catch (final Exception e) {
|
||||
s_logger.error("VM Operations failed due to ", e);
|
||||
@ -2980,7 +2978,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
||||
try {
|
||||
scanStalledVMInTransitionStateOnDisconnectedHosts();
|
||||
|
||||
final List<VMInstanceVO> instances = _vmDao.findVMInTransition(new Date(new Date().getTime() - AgentManager.Wait.value() * 1000), State.Starting, State.Stopping);
|
||||
final List<VMInstanceVO> instances = _vmDao.findVMInTransition(new Date(DateUtil.currentGMTTime().getTime() - AgentManager.Wait.value() * 1000), State.Starting, State.Stopping);
|
||||
for (final VMInstanceVO instance : instances) {
|
||||
final State state = instance.getState();
|
||||
if (state == State.Stopping) {
|
||||
|
||||
@ -43,6 +43,7 @@ import com.cloud.service.dao.ServiceOfferingDaoImpl;
|
||||
import com.cloud.storage.DiskOfferingVO;
|
||||
import com.cloud.storage.Storage.ProvisioningType;
|
||||
import com.cloud.storage.dao.DiskOfferingDaoImpl;
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.PropertiesUtil;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.db.DB;
|
||||
@ -639,7 +640,7 @@ public class DatabaseConfig {
|
||||
stmt.setLong(8, 0);
|
||||
stmt.setString(9, hostAddress);
|
||||
stmt.setString(10, hostPath);
|
||||
stmt.setDate(11, new Date(new java.util.Date().getTime()));
|
||||
stmt.setDate(11, new Date(DateUtil.currentGMTTime().getTime()));
|
||||
stmt.setLong(12, podId);
|
||||
stmt.setString(13, Status.Up.toString());
|
||||
stmt.setLong(14, clusterId);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user