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

Bug 921462

Summary: [TEXT][engine] CancellationException is logged as ERROR even though it is expected
Product: Red Hat Enterprise Virtualization Manager Reporter: Gadi Ickowicz <gickowic>
Component: ovirt-engineAssignee: Ravi Nori <rnori>
Status: CLOSED UPSTREAM QA Contact: Haim <hateya>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 3.2.0CC: abaron, acathrow, amureini, bazulay, iheim, jkt, laravot, lpeer, nlevinki, Rhev-m-bugs, scohen, yeylon, yzaslavs
Target Milestone: ---Keywords: Triaged
Target Release: 3.3.0Flags: abaron: Triaged+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: infra
Fixed In Version: is14 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-12 06:05:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Infra RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
engine logs
none
engine logs none

Description Gadi Ickowicz 2013-03-14 09:24:01 UTC
Created attachment 709932 [details]
engine logs

Description of problem:
Cancellation exception occurs during autorecovery process if reconstruct master domain is currently running.

Version-Release number of selected component (if applicable):
rhevm-3.2.0-10.10.beta1.el6ev.noarch

How reproducible:
100%

Steps to Reproduce:
1. Create pool with 1 storage domain
2. manually delete storage domain data
3. Reconstruct should be called, but never completes. 
4. every time autorecovery runs now exception should be visible in the logs
  
Actual results:
Cancellation exception in logs

Comment 2 Liron Aravot 2013-03-18 08:50:59 UTC
Gadi, the exception that you mentioned doesn't appear on the log- can you add the right logs?

Comment 3 Gadi Ickowicz 2013-03-18 10:38:11 UTC
Created attachment 711878 [details]
engine logs

New log attached

Comment 4 Liron Aravot 2013-03-18 14:28:33 UTC
After reconstruct runs other events that were "added" to the queue are being cancelled, thus the cancellation exception -in this case the domain monitoring (not auto recovery).

after the attempt to reconstruct ends- we clear other events from the queue (reconstruct and domain monitoring)

because the exception is being logged in ERROR log level it's shown in the logs - we can reduce the severity to prevent it from reoccurring in the logs.

allon, how do we want to proceed with it? 

******************************************************************************
2013-03-14 11:05:12,588 ERROR [org.ovirt.engine.core.bll.eventqueue.EventQueueMonitor] (QuartzScheduler_Worker-39) [50fe5b84] Failed at submitEventSync, for pool 61a1cd37-ed
09-4b5e-9217-e5e132875b08 with exception java.util.concurrent.CancellationException: java.util.concurrent.CancellationException
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:250) [rt.jar:1.7.0_09-icedtea]
        at java.util.concurrent.FutureTask.get(FutureTask.java:111) [rt.jar:1.7.0_09-icedtea]
....
        at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:72) [jboss-as-ee.jar:7.1.3.Final-redhat-4]
        at org.ovirt.engine.core.common.eventqueue.EventQueue$$$view5.submitEventSync(Unknown Source) [engine-common.jar:]
        at org.ovirt.engine.core.vdsbroker.irsbroker.IrsBrokerCommand$IrsProxyData.updateDomainInProblem(IrsBrokerCommand.java:1075) [engine-vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.irsbroker.IrsBrokerCommand$IrsProxyData.UpdateVdsDomainsData(IrsBrokerCommand.java:1070) [engine-vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.irsbroker.IrsBrokerCommand.UpdateVdsDomainsData(IrsBrokerCommand.java:91) [engine-vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.VdsManager.OnTimer(VdsManager.java:273) [engine-vdsbroker.jar:]
        at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source) [:1.7.0_09-icedtea]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_09-icedtea]
        at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_09-icedtea]
        at org.ovirt.engine.core.utils.timer.JobWrapper.execute(JobWrapper.java:60) [engine-scheduler.jar:]
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [quartz-2.1.2.jar:]
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) [quartz-2.1.2.jar:]



*************************************************************************

Comment 5 Ayal Baron 2013-03-20 09:47:27 UTC
Liron we need to reduce severity of message and make sure no stack trace appears in the log.

Comment 6 Ayal Baron 2013-03-21 13:46:55 UTC
After discussing further, we need the stack trace since the mechanism is new and it contains valuable data for debugging issues.

Comment 7 mkublin 2013-03-27 14:45:35 UTC
(In reply to comment #6)
> After discussing further, we need the stack trace since the mechanism is new
> and it contains valuable data for debugging issues.

It is not contains any valuable data, message should be in debug level.
If you will need some data for some reason a debug level of appropriate component should be switched, this is a standard way for debugging customer J2EE application

Comment 13 yeylon@redhat.com 2013-09-12 06:05:08 UTC
This bug was fixed and is slated to be in the upcoming version. As we
are focusing our testing at this phase on severe bugs, this bug was
closed without going through its verification step. If you think this
bug should be verified by QE, please set its severity to high and move
it back to ON_QA