Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1389996

Summary: It's impossible to suspend VM
Product: [oVirt] ovirt-engine Reporter: Ori Ben Sasson <obensass>
Component: BLL.VirtAssignee: Allon Mureinik <amureini>
Status: CLOSED CURRENTRELEASE QA Contact: Israel Pinto <ipinto>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 4.1.0CC: amureini, bugs, gklein, slitmano
Target Milestone: ovirt-4.1.0-alphaKeywords: Automation, Regression
Target Release: 4.1.0.2Flags: rule-engine: ovirt-4.1+
rule-engine: blocker+
rule-engine: planning_ack+
rule-engine: devel_ack+
mavital: testing_ack+
Hardware: x86_64   
OS: Linux   
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:40:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Virt RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
engine log
none
server log
none
vdsm log
none
supervdsm log none

Description Ori Ben Sasson 2016-10-30 13:01:43 UTC
Created attachment 1215561 [details]
engine log

Description of problem:
When we try to suspend Vm, we get an error:
"Error while executing action: A Request to the Server failed with the following Status Code: 500"
by looking at server log side we get "java.lang.StackOverflowError"
 

Version-Release number of selected component (if applicable):
ovirt-engine-4.1.0-0.0.master.20161029211316.git1d74709.el7.centos.noarch

How reproducible:
100

Steps to Reproduce:
1. Run VM
2. Suspend VM

Actual results:
It's impossible to suspend VM, 
Error message: "Error while executing action: A Request to the Server failed with the following Status Code: 500"

Expected results:
VM should be suspend.

Additional info:

Comment 1 Ori Ben Sasson 2016-10-30 13:02:59 UTC
Created attachment 1215562 [details]
server log

Comment 2 Ori Ben Sasson 2016-10-30 13:04:21 UTC
Created attachment 1215563 [details]
vdsm log

Comment 3 Ori Ben Sasson 2016-10-30 13:05:30 UTC
Created attachment 1215564 [details]
supervdsm log

Comment 4 Yaniv Kaul 2016-10-31 06:26:52 UTC
1. Please compress logs.
2. Please copy-paste relevant exception (so in the future, it'll be easier to search for dups in Bugzilla). In this case, I believe this is:
2016-10-30 12:48:43,829 ERROR [org.ovirt.engine.api.restapi.resource.AbstractBackendResource] (default task-6) [] Operation Failed: WFLYEJB0442: Unexpected Error
2016-10-30 12:48:43,829 ERROR [org.ovirt.engine.api.restapi.resource.AbstractBackendResource] (default task-6) [] Exception: javax.ejb.EJBException: WFLYEJB0442: Unexpected Error
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInNoTx(CMTTxInterceptor.java:210) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:265) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.supports(CMTTxInterceptor.java:374) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:243) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67) [wildfly-ejb3-10.1.0.Final.jar:10.1.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
	at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
	at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
	at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
	at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
	at org.ovirt.engine.core.common.interfaces.BackendLocal$$$view3.runAction(Unknown Source)
	at org.ovirt.engine.api.restapi.resource.BackendResource.doAction(BackendResource.java:250) [restapi-jaxrs.jar:]
	at org.ovirt.engine.api.restapi.resource.AbstractBackendActionableResource.doAction(AbstractBackendActionableResource.java:78) [restapi-jaxrs.jar:]
	at org.ovirt.engine.api.restapi.resource.AbstractBackendActionableResource.doAction(AbstractBackendActionableResource.java:119) [restapi-jaxrs.jar:]
	at org.ovirt.engine.api.restapi.resource.BackendVmResource.suspend(BackendVmResource.java:459) [restapi-jaxrs.jar:]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_102]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_102]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_102]
	at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_102]
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:138) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:107) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:133) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:101) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) [resteasy-jaxrs-3.0.19.Final.jar:3.0.19.Final]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:81) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:274) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:209) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:221) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at org.ovirt.engine.api.restapi.invocation.VersionFilter.doFilter(VersionFilter.java:139) [restapi-jaxrs.jar:]
	at org.ovirt.engine.api.restapi.invocation.VersionFilter.doFilter(VersionFilter.java:68) [restapi-jaxrs.jar:]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at org.ovirt.engine.api.restapi.invocation.CurrentFilter.doFilter(CurrentFilter.java:84) [restapi-jaxrs.jar:]
	at org.ovirt.engine.api.restapi.invocation.CurrentFilter.doFilter(CurrentFilter.java:63) [restapi-jaxrs.jar:]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at org.ovirt.engine.core.aaa.filters.RestApiSessionMgmtFilter.doFilter(RestApiSessionMgmtFilter.java:78) [aaa.jar:]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at org.ovirt.engine.core.aaa.filters.EnforceAuthFilter.doFilter(EnforceAuthFilter.java:39) [aaa.jar:]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) [undertow-servlet-1.4.0.Final.jar:1.4.0.Final]
	at org.ovirt.engine.core.aaa.filters.SsoRestApiNegotiationFilter.doFilter(SsoRestApiNegotiationFilter.java:91) [aaa.jar:]

Comment 5 Yaniv Kaul 2016-10-31 06:35:41 UTC
Allon, I missed the issue - I think there are some circular calls - specifically, the interesting part is actually at the bottom of the stack:


Caused by: java.lang.StackOverflowError
	at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:322) [jboss-logmanager-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:322) [jboss-logmanager-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:322) [jboss-logmanager-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:322) [jboss-logmanager-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:322) [jboss-logmanager-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:322) [jboss-logmanager-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.logmanager.Logger.logRaw(Logger.java:850) [jboss-logmanager-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.logmanager.Logger.log(Logger.java:802) [jboss-logmanager-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.logging.JBossLogManagerLogger.doLogf(JBossLogManagerLogger.java:53) [jboss-logging-3.3.0.Final.jar:3.3.0.Final]
	at org.jboss.logging.Logger.logf(Logger.java:2398) [jboss-logging-3.3.0.Final.jar:3.3.0.Final]
	at org.jboss.jca.core.CoreLogger_$logger.throwableWhileTryingMatchManagedConnectionThenDestroyingConnection(CoreLogger_$logger.java:292)
	at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:456)
	at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:617)
	at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:589)
	at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:590)
	at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:429)
	at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:747)
	at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:138)
	at org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:66)
	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:615)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:680)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:712)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:762)
	at org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresSimpleJdbcCall.executeCallInternal(PostgresDbEngineDialect.java:152)
	at org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresSimpleJdbcCall.doExecute(PostgresDbEngineDialect.java:118)
	at org.springframework.jdbc.core.simple.SimpleJdbcCall.execute(SimpleJdbcCall.java:198)
	at org.ovirt.engine.core.dal.dbbroker.SimpleJdbcCallsHandler.executeImpl(SimpleJdbcCallsHandler.java:135)
	at org.ovirt.engine.core.dal.dbbroker.SimpleJdbcCallsHandler.executeReadList(SimpleJdbcCallsHandler.java:105)
	at org.ovirt.engine.core.dal.dbbroker.SimpleJdbcCallsHandler.executeRead(SimpleJdbcCallsHandler.java:97)
	at org.ovirt.engine.core.dao.ClusterDaoImpl.get(ClusterDaoImpl.java:46)
	at org.ovirt.engine.core.dao.ClusterDaoImpl.get(ClusterDaoImpl.java:38)
	at org.ovirt.engine.core.bll.utils.ClusterUtils.getCompatibilityVersion(ClusterUtils.java:49)
	at org.ovirt.engine.core.bll.utils.VideoDeviceSettings.lambda$getVideoDeviceSettings$0(VideoDeviceSettings.java:98)
	at org.ovirt.engine.core.common.utils.CompatibilityVersionUtils.getEffective(CompatibilityVersionUtils.java:18)
	at org.ovirt.engine.core.bll.utils.VideoDeviceSettings.getVideoDeviceSettings(VideoDeviceSettings.java:99)
	at org.ovirt.engine.core.bll.utils.VideoDeviceSettings.totalVideoRAMSizeMb(VideoDeviceSettings.java:127)
	at org.ovirt.engine.core.bll.utils.VmOverheadCalculatorImpl.getSnapshotMemorySizeInBytes(VmOverheadCalculatorImpl.java:108)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:80)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)
	at org.ovirt.engine.core.bll.VmCommand.getStoragePoolId(VmCommand.java:84)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:83)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)
	at org.ovirt.engine.core.bll.VmCommand.getStoragePoolId(VmCommand.java:84)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:83)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)
	at org.ovirt.engine.core.bll.VmCommand.getStoragePoolId(VmCommand.java:84)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:83)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)
	at org.ovirt.engine.core.bll.VmCommand.getStoragePoolId(VmCommand.java:84)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:83)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)
	at org.ovirt.engine.core.bll.VmCommand.getStoragePoolId(VmCommand.java:84)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:83)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)
	at org.ovirt.engine.core.bll.VmCommand.getStoragePoolId(VmCommand.java:84)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:83)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)
	at org.ovirt.engine.core.bll.VmCommand.getStoragePoolId(VmCommand.java:84)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:83)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)
	at org.ovirt.engine.core.bll.VmCommand.getStoragePoolId(VmCommand.java:84)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:83)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)
	at org.ovirt.engine.core.bll.VmCommand.getStoragePoolId(VmCommand.java:84)
	at org.ovirt.engine.core.bll.HibernateVmCommand.getStorageDomainId(HibernateVmCommand.java:83)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStorageDomain(AuditLogableBase.java:523)
	at org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase.getStoragePoolId(AuditLogableBase.java:584)

Comment 6 Allon Mureinik 2016-11-01 17:33:06 UTC
(In reply to Yaniv Kaul from comment #5)
> Allon, I missed the issue - I think there are some circular calls -
> specifically, the interesting part is actually at the bottom of the stack:

IIUC, the circular call is a symptom of the problem, not the root cause.
The constructor attempts to initialize the storagePoolID, and if it were to succeed this entire issue would have been avoided.

The first problem is that it calls getVM() in the constructor. However, this method depends on a DAO call, so using it in a constructor just won't work now that the DAOs are injected (not that it was a particularly great idea to begin with, mind you).
Even worse is the fact that getVM() doesn't just fail when it attempts to use a null vmDao, it CATCHES THE EXCEPTION AND HIDES IT (which is an awful idea), thus obscuring the root cause from us.

If this theory is correct, patch https://gerrit.ovirt.org/65948 should address this issue. I'll build it locally and see if it resolves the issue on my setup. If it does, I'll merge. If it doesn't, this patch should probably still be merged, but we're back to the drawing board with this BZ.

Comment 7 Allon Mureinik 2016-11-01 22:31:56 UTC
(In reply to Allon Mureinik from comment #6)
> If this theory is correct, patch https://gerrit.ovirt.org/65948 should
> address this issue. I'll build it locally and see if it resolves the issue
> on my setup. If it does, I'll merge. If it doesn't, this patch should
> probably still be merged, but we're back to the drawing board with this BZ.
That did the trick. Patch was merged, and should be available to QA on the next nightly build.

Comment 8 Red Hat Bugzilla Rules Engine 2016-11-01 22:32:01 UTC
This bug report has Keywords: Regression or TestBlocker.
Since no regressions or test blockers are allowed between releases, it is also being identified as a blocker for this release. Please resolve ASAP.

Comment 9 sefi litmanovich 2016-11-02 15:15:09 UTC
*** Bug 1391112 has been marked as a duplicate of this bug. ***

Comment 10 Sandro Bonazzola 2016-12-12 13:59:33 UTC
The fix for this issue should be included in oVirt 4.1.0 beta 1 released on December 1st. If not included please move back to modified.

Comment 11 Ori Ben Sasson 2016-12-13 09:55:44 UTC
Verified on 4.1.0-0.2.master.20161212071212.git8a015dd.el7.centos