Bug 1414288

Summary: DownloadImageCommandParameters fail to store to DB
Product: [oVirt] ovirt-engine Reporter: Piotr Kliczewski <pkliczew>
Component: GeneralAssignee: Tal Nisan <tnisan>
Status: CLOSED CURRENTRELEASE QA Contact: Raz Tamir <ratamir>
Severity: high Docs Contact:
Priority: unspecified    
Version: futureCC: bugs, gklein, mperina, oourfali, pkliczew, ratamir, tnisan
Target Milestone: ovirt-4.1.0-betaFlags: rule-engine: ovirt-4.1+
Target Release: 4.1.0.2   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-02-01 14:47:57 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Storage RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
logs none

Description Piotr Kliczewski 2017-01-18 09:10:21 UTC
Created attachment 1242090 [details]
logs

During recent test-repo_ovirt_experimental_master we saw:

2017-01-18 03:35:35,093-05 ERROR [org.ovirt.engine.core.bll.CommandEntityCleanupManager] (DefaultQuartzScheduler6) [36fb8916] deleteAgedOutCommandEntities failed with exception: org.apache.commons.lang.SerializationException: org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [simple type, class org.ovirt.engine.core.common.businessentities.HttpLocationInfo]: can not instantiate from JSON object (need to add/enable type information?)
 at [Source: java.io.StringReader@107c3be1; line: 55, column: 5] (through reference chain: org.ovirt.engine.core.common.action.DownloadImageCommandParameters["httpLocationInfo"])
	at org.ovirt.engine.core.utils.serialization.json.JsonObjectDeserializer.readJsonString(JsonObjectDeserializer.java:101) [utils.jar:]
	at org.ovirt.engine.core.utils.serialization.json.JsonObjectDeserializer.deserialize(JsonObjectDeserializer.java:58) [utils.jar:]
	at org.ovirt.engine.core.dao.CommandEntityDaoImpl.deserializeParameters(CommandEntityDaoImpl.java:131) [dal.jar:]
	at org.ovirt.engine.core.dao.CommandEntityDaoImpl.lambda$static$2(CommandEntityDaoImpl.java:55) [dal.jar:]
	at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:93) [spring-jdbc.jar:4.2.4.RELEASE]
	at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:60) [spring-jdbc.jar:4.2.4.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:693) [spring-jdbc.jar:4.2.4.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629) [spring-jdbc.jar:4.2.4.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:680) [spring-jdbc.jar:4.2.4.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:712) [spring-jdbc.jar:4.2.4.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:762) [spring-jdbc.jar:4.2.4.RELEASE]
	at org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresSimpleJdbcCall.executeCallInternal(PostgresDbEngineDialect.java:152) [dal.jar:]
	at org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresSimpleJdbcCall.doExecute(PostgresDbEngineDialect.java:118) [dal.jar:]
	at org.springframework.jdbc.core.simple.SimpleJdbcCall.execute(SimpleJdbcCall.java:198) [spring-jdbc.jar:4.2.4.RELEASE]
	at org.ovirt.engine.core.dal.dbbroker.SimpleJdbcCallsHandler.executeImpl(SimpleJdbcCallsHandler.java:135) [dal.jar:]
	at org.ovirt.engine.core.dal.dbbroker.SimpleJdbcCallsHandler.executeReadList(SimpleJdbcCallsHandler.java:105) [dal.jar:]
	at org.ovirt.engine.core.dao.DefaultReadDao.getAll(DefaultReadDao.java:77) [dal.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandsCacheImpl.initializeCache(CommandsCacheImpl.java:41) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandsCacheImpl.removeAllCommandsBeforeDate(CommandsCacheImpl.java:79) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandsRepository.removeAllCommandsBeforeDate(CommandsRepository.java:259) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandCoordinatorImpl.removeAllCommandsBeforeDate(CommandCoordinatorImpl.java:146) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandCoordinatorUtil.removeAllCommandsBeforeDate(CommandCoordinatorUtil.java:337) [bll.jar:]
	at org.ovirt.engine.core.bll.CommandEntityCleanupManager.onTimer(CommandEntityCleanupManager.java:51) [bll.jar:]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_111]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_111]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_111]
	at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_111]
	at org.ovirt.engine.core.utils.timer.JobWrapper.invokeMethod(JobWrapper.java:77) [scheduler.jar:]
	at org.ovirt.engine.core.utils.timer.JobWrapper.execute(JobWrapper.java:51) [scheduler.jar:]
	at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [quartz.jar:]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_111]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_111]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_111]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_111]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_111]
Caused by: org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [simple type, class org.ovirt.engine.core.common.businessentities.HttpLocationInfo]: can not instantiate from JSON object (need to add/enable type information?)
 at [Source: java.io.StringReader@107c3be1; line: 55, column: 5] (through reference chain: org.ovirt.engine.core.common.action.DownloadImageCommandParameters["httpLocationInfo"])
	at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObjectUsingNonDefault(BeanDeserializer.java:746) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:683) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:299) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:414) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:697) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:600) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:92) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeWithType(BeanDeserializer.java:664) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.deser.StdDeserializerProvider$WrappedDeserializer.deserialize(StdDeserializerProvider.java:461) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1863) [jackson-mapper-asl-1.9.13.jar:1.9.13]
	at org.ovirt.engine.core.utils.serialization.json.JsonObjectDeserializer.readJsonString(JsonObjectDeserializer.java:99) [utils.jar:]
	... 34 more

Comment 1 Martin Perina 2017-01-18 10:03:43 UTC
Tal, could you please take a look?

Comment 2 Raz Tamir 2017-01-22 09:59:46 UTC
Tal,
What are the steps to reproduce?

Comment 3 Tal Nisan 2017-01-23 10:09:04 UTC
The issue was encountered in oVirt system tests, Piotr, any idea how we can reproduce it manually? Starting a download and restarting Engine would do?

Comment 4 Piotr Kliczewski 2017-01-23 10:38:25 UTC
Tal, To be honest I am not sure which use case failed. I would suggest to run system tests and look for the stack trace.

Comment 5 Raz Tamir 2017-01-23 15:45:35 UTC
According to comment #4 moving to Piotr (the reporter of the bug) to run system tests

Comment 8 Raz Tamir 2017-01-24 22:41:44 UTC
Verified on ovirt-engine-4.1.0.3-0.0.master.20170122091652.gitc6fc2c2.el7.centos
Executed all our tier 1 and tier 2 and ovirt system tests and no trace for the error mentioned in the description