Created attachment 973986 [details] engine.log with the error Description of problem: Version-Release number of selected component (if applicable): Nightly engine+vdsm rpms vdsm-4.17.0-211.gite9e948b.el6.x86_64 ovirt-engine-3.6.0-0.0.master.20141228191127.git830baa2.el6 How reproducible: Steps to Reproduce: 1. Add a storage domain to cluster without any existing storage domains 2. Maintenance it 3. Actual results: Error Expected results: Storage domain is put into maintenance Additional info:
Created attachment 973987 [details] dump of the database
The bug seems to be cause by a different used version of spring jdbc. the implementation sometimes relies on that spring jdbc returns a arraylist (though it's not declared in the interface), while in other versions linkedlist is returned. we should fix all of those places regardless- but we should look into when and decide if we want to force a specific version that we know that works as the code expected. adding needinfo? on oved as this may occur in more places. i made a quick search on - instanceof ArrayList and found 12 occurrences.
I prefer we fix this based on documented behavior instead of blindly bump the spring-jdbc. These kind of issues are important enough to push it into 3.5.1. I guess what you seek is instance of collection?
I had local git branches problem, this bug could be easily caused by spring-jdbc changes (internal implementation), but specifically in our case it was caused by this patch - http://gerrit.ovirt.org/#/c/27578/ that always returns a linkedlist instead of an arraylist while the outer implemention relies on the concrete type. moving this one to infra, in the meanwhile i'm also fixing the storage related places that relied on the concrete return type.
Not sure why you fix only the storage related, someone should fix all violation of spring-jdbc usage within single commit. I also not sure why this kind of issue is postponed to 3.6.
Alon, I'm postponing it to 3.6 as the patch that changed the return value type was merged for 3.6. The code that relies on the concrete return type existed since version 3.0 there, while it should be fixed - it never caused issues, the issue was caused by the patch that i provided link to in my last comment. As the danger existed always but the actual issue is relevant only for 3.6 after this change, I changed the target. The relevant changes can be made and then it'll be decided if we want them for 3.5 or not.
ok, thanks for explaining! should this be moved to emesika?
Alon, np. emesika already opened a different bug for infra - so i'll use that one for the storage related fix. moving back to storage.
Can you please fix the subject to account for your latest findings? Thanks!
Tested using ovirt-engine-3.6.0-0.0.master.20150412172306.git55ba764
oVirt 3.6.0 has been released on November 4th, 2015 and should fix this issue. If problems still persist, please open a new BZ and reference this one.