Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1063925 - Network QoS class cast exception
Summary: Network QoS class cast exception
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: oVirt
Classification: Retired
Component: ovirt-engine-core
Version: 3.4
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ---
: 3.4.0
Assignee: Lior Vernia
QA Contact: bugs@ovirt.org
URL:
Whiteboard: network
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-02-11 16:14 UTC by Doron Fediuck
Modified: 2015-05-05 01:44 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-02-23 10:33:43 UTC
oVirt Team: ---


Attachments (Terms of Use)

Description Doron Fediuck 2014-02-11 16:14:16 UTC
Description of problem:
After adding an older host, the host moved to 'connecting' and class cast appears in the engine log.

Version-Release number of selected component (if applicable):
vdsm-4.13.0-0.9.beta1.el6ev.x86_64
ovirt-engine-3.4.0-0.7.beta2.el6.noarch

Actual results:
2014-02-11 11:08:51,964 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetCapabilitiesVDSCommand] (DefaultQuartzScheduler_Worker-39) Command GetCapabilitiesVDSCommand(HostName = XXXXXX.YYY.com, HostId = 90314e6d-0731-4d28-91b8-a2f0ac6b3a33, vds=Host[XXXXXX.YYY.com]) execution failed. Exception: ClassCastException: java.lang.String cannot be cast to java.util.Map
2014-02-11 11:08:51,966 WARN  [org.ovirt.engine.core.vdsbroker.VdsManager] (DefaultQuartzScheduler_Worker-39) Failed to refresh VDS , vds = 90314e6d-0731-4d28-91b8-a2f0ac6b3a33 : XXXXXX.YYY.com, error = java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map, continuing.: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
        at org.ovirt.engine.core.vdsbroker.vdsbroker.NetworkQosMapper.deserialize(NetworkQosMapper.java:31) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerObjectsBuilder.updateNetworkDetailsInInterface(VdsBrokerObjectsBuilder.java:1271) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerObjectsBuilder.addHostNetworksAndUpdateInterfaces(VdsBrokerObjectsBuilder.java:980) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerObjectsBuilder.updateNetworkData(VdsBrokerObjectsBuilder.java:950) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerObjectsBuilder.updateVDSDynamicData(VdsBrokerObjectsBuilder.java:337) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.vdsbroker.GetCapabilitiesVDSCommand.executeVdsBrokerCommand(GetCapabilitiesVDSCommand.java:17) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand.executeVDSCommand(VdsBrokerCommand.java:96) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.VDSCommandBase.executeCommand(VDSCommandBase.java:56) [vdsbroker.jar:]
        at org.ovirt.engine.core.dal.VdcCommandBase.execute(VdcCommandBase.java:28) [dal.jar:]
        at org.ovirt.engine.core.vdsbroker.VdsManager.refreshCapabilities(VdsManager.java:537) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.refreshVdsRunTimeInfo(VdsUpdateRunTimeInfo.java:485) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.refresh(VdsUpdateRunTimeInfo.java:335) [vdsbroker.jar:]
        at org.ovirt.engine.core.vdsbroker.VdsManager.onTimer(VdsManager.java:236) [vdsbroker.jar:]
        at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source) [:1.7.0_51]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
        at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
        at org.ovirt.engine.core.utils.timer.JobWrapper.execute(JobWrapper.java:60) [scheduler.jar:]
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [quartz.jar:]
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) [quartz.jar:]
Expected results:


Additional info:

Comment 1 Moti Asayag 2014-02-11 20:55:20 UTC
What were the supported cluster levels by the host ? 
Is that host installed without any manual change to its cluster levels (by modifying dsaversion.py to report 3.4 cluster level as well) ?

Comment 2 Itamar Heim 2014-02-16 08:23:46 UTC
Setting target release to current version for consideration and review. please
do not push non-RFE bugs to an undefined target release to make sure bugs are
reviewed for relevancy, fix, closure, etc.

Comment 3 Doron Fediuck 2014-02-17 09:42:48 UTC
VDSM version modified, and I'd not open this BZ if the behavior is that 'bad'.
Note that this is the only code part that has issues in this case.
So I'd catch the problem and throw a proper exception to handle it.

Comment 4 Lior Vernia 2014-02-17 12:46:23 UTC
For me this is not a bug. There is no "legitimate" way to get to this situation. You could also get class cast exceptions by putting arbitrary strings in DB columns where serialized collections are expected. It could be mitigated, but I don't think it's worth the attention.


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