Bug 1389996 - It's impossible to suspend VM
Summary: It's impossible to suspend VM
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: BLL.Virt
Version: 4.1.0
Hardware: x86_64
OS: Linux
unspecified
urgent
Target Milestone: ovirt-4.1.0-alpha
: 4.1.0.2
Assignee: Allon Mureinik
QA Contact: Israel Pinto
URL:
Whiteboard:
: 1391112 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-10-30 13:01 UTC by Ori Ben Sasson
Modified: 2017-02-01 14:40 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-02-01 14:40:58 UTC
oVirt Team: Virt
Embargoed:
rule-engine: ovirt-4.1+
rule-engine: blocker+
rule-engine: planning_ack+
rule-engine: devel_ack+
mavital: testing_ack+


Attachments (Terms of Use)
engine log (4.42 MB, text/plain)
2016-10-30 13:01 UTC, Ori Ben Sasson
no flags Details
server log (4.93 MB, text/plain)
2016-10-30 13:02 UTC, Ori Ben Sasson
no flags Details
vdsm log (6.32 MB, text/plain)
2016-10-30 13:04 UTC, Ori Ben Sasson
no flags Details
supervdsm log (2.15 MB, text/plain)
2016-10-30 13:05 UTC, Ori Ben Sasson
no flags Details


Links
System ID Private Priority Status Summary Last Updated
oVirt gerrit 65948 0 master POST core: HibernateVmCommand#init() 2016-11-01 22:27:47 UTC

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


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