Bug 1155084 - Fail to de-serialize task with user entity
Summary: Fail to de-serialize task with user entity
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: oVirt
Classification: Retired
Component: ovirt-engine-core
Version: 3.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: 3.5.1
Assignee: bugs@ovirt.org
QA Contact: Pavol Brilla
URL:
Whiteboard: infra
: 1155147 1158016 1160228 (view as bug list)
Depends On:
Blocks: oVirt-AAA-rewrite
TreeView+ depends on / blocked
 
Reported: 2014-10-21 11:13 UTC by Amit Aviram
Modified: 2016-02-10 19:32 UTC (History)
13 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-01-21 16:04:59 UTC
oVirt Team: Infra
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
oVirt gerrit 34360 0 master MERGED aaa: Change DbUser getters of group fields Never
oVirt gerrit 34386 0 ovirt-engine-3.5 MERGED aaa: Change DbUser getters of group fields Never

Description Amit Aviram 2014-10-21 11:13:14 UTC
Description of problem:
When restarting the engine during cloning of a VM, engine will not restart correctly

Version-Release number of selected component (if applicable):


How reproducible:
100%

Steps to Reproduce:
1.In the webadmin, clone a VM and restart engine during the operation
2.
3.

Actual results:
Engine starts with an exception, could not login anymore to webadmin

Expected results:
Engine will start correctly

Additional info:

Exception shown in engine log:

2014-10-21 13:30:28,103 ERROR [org.ovirt.engine.core.bll.InitBackendServicesOnStartupBean] (MSC service thread 1-6) [] Failed to initialize backend: org.apache.commons.lang.SerializationException: org.codehaus.jackson.map.JsonMappingException: No default constructor for [collection type; class java.util.Collections$UnmodifiableCollection, contains [simple type, class java.lang.String]] (through reference chain: org.ovirt.engine.core.common.action.CloneVmParameters["parametersCurrentUser"]->org.ovirt.engine.core.common.businessentities.aaa.DbUser["groupNames"])
	at org.ovirt.engine.core.utils.serialization.json.JsonObjectDeserializer.readJsonString(JsonObjectDeserializer.java:91) [utils.jar:]
	at org.ovirt.engine.core.utils.serialization.json.JsonObjectDeserializer.deserialize(JsonObjectDeserializer.java:60) [utils.jar:]
	at org.ovirt.engine.core.dao.CommandEntityDaoDbFacadeImpl.deserializeParameters(CommandEntityDaoDbFacadeImpl.java:97) [dal.jar:]
	at org.ovirt.engine.core.dao.CommandEntityDaoDbFacadeImpl.access$000(CommandEntityDaoDbFacadeImpl.java:21) [dal.jar:]
	at org.ovirt.engine.core.dao.CommandEntityDaoDbFacadeImpl$1.mapRow(CommandEntityDaoDbFacadeImpl.java:34) [dal.jar:]
	at org.ovirt.engine.core.dao.CommandEntityDaoDbFacadeImpl$1.mapRow(CommandEntityDaoDbFacadeImpl.java:23) [dal.jar:]
	at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:92) [spring-jdbc.jar:3.1.1.RELEASE]
	at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:1) [spring-jdbc.jar:3.1.1.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:649) [spring-jdbc.jar:3.1.1.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587) [spring-jdbc.jar:3.1.1.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637) [spring-jdbc.jar:3.1.1.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666) [spring-jdbc.jar:3.1.1.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:706) [spring-jdbc.jar:3.1.1.RELEASE]
	at org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresSimpleJdbcCall.executeCallInternal(PostgresDbEngineDialect.java:154) [dal.jar:]
	at org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresSimpleJdbcCall.doExecute(PostgresDbEngineDialect.java:120) [dal.jar:]
	at org.springframework.jdbc.core.simple.SimpleJdbcCall.execute(SimpleJdbcCall.java:181) [spring-jdbc.jar:3.1.1.RELEASE]
	at org.ovirt.engine.core.dal.dbbroker.SimpleJdbcCallsHandler.executeImpl(SimpleJdbcCallsHandler.java:141) [dal.jar:]
	at org.ovirt.engine.core.dal.dbbroker.SimpleJdbcCallsHandler.executeReadList(SimpleJdbcCallsHandler.java:103) [dal.jar:]
	at org.ovirt.engine.core.dao.DefaultReadDaoDbFacade.getAll(DefaultReadDaoDbFacade.java:77) [dal.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandsCacheImpl.initializeCache(CommandsCacheImpl.java:30) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandsCacheImpl.get(CommandsCacheImpl.java:47) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandCoordinatorImpl.getCommandEntity(CommandCoordinatorImpl.java:115) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CoCoAsyncTaskHelper.getCommandEntity(CoCoAsyncTaskHelper.java:160) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CoCoAsyncTaskHelper.getAllAsyncTasksFromDb(CoCoAsyncTaskHelper.java:153) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandCoordinatorImpl.getAllAsyncTasksFromDb(CommandCoordinatorImpl.java:267) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.AsyncTaskManager.initAsyncTaskManager(AsyncTaskManager.java:110) [bll.jar:]
	at org.ovirt.engine.core.bll.tasks.CommandCoordinatorUtil.initAsyncTaskManager(CommandCoordinatorUtil.java:46) [bll.jar:]
	at org.ovirt.engine.core.bll.InitBackendServicesOnStartupBean.create(InitBackendServicesOnStartupBean.java:65) [bll.jar:]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_65]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_65]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_65]
	at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_65]
	at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptorFactory$ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptorFactory.java:130) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:73) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.as.ee.component.ManagedReferenceInterceptorFactory$ManagedReferenceInterceptor.processInvocation(ManagedReferenceInterceptorFactory.java:95) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:333) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.ejb3.tx.SingletonLifecycleCMTTxInterceptor.processInvocation(SingletonLifecycleCMTTxInterceptor.java:56) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:85) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:116) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:130) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.ee.component.ComponentStartService.start(ComponentStartService.java:44) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_65]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_65]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_65]

Comment 1 Amit Aviram 2014-10-21 11:14:53 UTC
This bug was placed on virt since cloning a VM is virt's responsibility, this might have a connection to the command coordination infra so it might be moved to infra

Comment 2 Yair Zaslavsky 2014-10-22 11:15:43 UTC
Moving bug to infra, 
This has to do with user entity.
User entity contains a collection of groups, which was probably initialized using Collections.emptyList which proviees an unmodifiable collection.
I guess there is no default ctor for it, hence when trying to deserialize we get this exception.

Comment 3 Oved Ourfali 2014-10-23 08:40:11 UTC
*** Bug 1155147 has been marked as a duplicate of this bug. ***

Comment 4 Oved Ourfali 2014-11-05 12:02:26 UTC
*** Bug 1160228 has been marked as a duplicate of this bug. ***

Comment 5 Yair Zaslavsky 2014-11-05 20:27:16 UTC
*** Bug 1158016 has been marked as a duplicate of this bug. ***

Comment 6 Eldad Marciano 2014-12-23 15:53:15 UTC
verified on VT13.1

Comment 7 Sandro Bonazzola 2015-01-21 16:04:59 UTC
oVirt 3.5.1 has been released. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.