Bug 1313516

Summary: failover serverset don't work - getting null objects as addreses
Product: [oVirt] ovirt-engine-extension-aaa-ldap Reporter: Ondra Machacek <omachace>
Component: CoreAssignee: Ondra Machacek <omachace>
Status: CLOSED CURRENTRELEASE QA Contact: Gonza <grafuls>
Severity: medium Docs Contact:
Priority: medium    
Version: 1.1.2CC: bugs, mgoldboi, mperina, oourfali
Target Milestone: ovirt-3.6.5Flags: rule-engine: ovirt-3.6.z+
mgoldboi: planning_ack+
oourfali: devel_ack+
pstehlik: testing_ack+
Target Release: 1.1.3   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1321991 (view as bug list) Environment:
Last Closed: 2016-04-21 14:41:11 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:
Bug Depends On:    
Bug Blocks: 1321991    

Description Ondra Machacek 2016-03-01 18:22:15 UTC
Description of problem:
There is an issue getting serverset servers/ports.
When creating serversets in Framework.java, we get list of addresses from map which contain also ".port=xxxx",
which lead to having null in list. For most of the serversets it's not an issue, but FailoverServers must not contain null as address.


Version-Release number of selected component (if applicable):
1.1.2

How reproducible:
always

Comment 1 Ondra Machacek 2016-03-02 08:43:56 UTC
Example configuration:
pool.default.serverset.type = failover
pool.default.serverset.failover.00.server = server1
pool.default.serverset.failover.01.server = server2

Exception:
WARNING [ovirt-engine-extension-aaa-ldap.authn::ipa-authn] Cannot initialize LDAP framework, deferring initialization. Error: A null object was provided where a non-null object is required (non-null index 0).  Thread stack trace:  getStackTrace(Thread.java:1589) / ensureNotNull(Validator.java:60) / <init>(SingleServerSet.java:140) / <init>(FailoverServerSet.java:289) / createConnectionPool(Framework.java:549) / createConnectionPoolEntry(Framework.java:667) / getConnectionPoolEntry(Framework.java:782) / runSequence(Framework.java:1505) / open(Framework.java:719) / ensureFramework(AuthnExtension.java:49) / doAuthenticateCredentials(AuthnExtension.java:145) / invoke(AuthnExtension.java:70) / invoke(ExtensionProxy.java:49) / invoke(ExtensionProxy.java:73) / invoke(ExtensionProxy.java:109) / execute(AAAServiceImpl.java:160) / execute(AAAServiceImpl.java:423) / run(AAAServiceImpl.java:694) / main(ExtensionsToolExecutor.java:103) / invoke0(NativeMethodAccessorImpl.java) / invoke(NativeMethodAccessorImpl.java:57) / invoke(DelegatingMethodAccessorImpl.java:43) / invoke(Method.java:606) / run(Module.java:312) / main(Main.java:473)
2016-03-02 10:40:44 SEVERE  A null object was provided where a non-null object is required (non-null index 0).  Thread stack trace:  getStackTrace(Thread.java:1589) / ensureNotNull(Validator.java:60) / <init>(SingleServerSet.java:140) / <init>(FailoverServerSet.java:289) / createConnectionPool(Framework.java:549) / createConnectionPoolEntry(Framework.java:667) / getConnectionPoolEntry(Framework.java:782) / runSequence(Framework.java:1505) / open(Framework.java:719) / ensureFramework(AuthnExtension.java:49) / doAuthenticateCredentials(AuthnExtension.java:145) / invoke(AuthnExtension.java:70) / invoke(ExtensionProxy.java:49) / invoke(ExtensionProxy.java:73) / invoke(ExtensionProxy.java:109) / execute(AAAServiceImpl.java:160) / execute(AAAServiceImpl.java:423) / run(AAAServiceImpl.java:694) / main(ExtensionsToolExecutor.java:103) / invoke0(NativeMethodAccessorImpl.java) / invoke(NativeMethodAccessorImpl.java:57) / invoke(DelegatingMethodAccessorImpl.java:43) / invoke(Method.java:606) / run(Module.java:312) / main(Main.java:473)

Workaround:
In jar file:
/usr/share/ovirt-engine-extension-aaa-ldap/modules/org/ovirt/engine-extensions/aaa/ldap/main/ovirt-engine-extension-aaa-ldap.jar
Find file:
org/ovirt/engineextensions/aaa/ldap/profile-defaults.properties
There comment/remove line:
pool.default.serverset.failover.port = 389
Remember that in this case you have to always use 389 port.

Comment 2 Martin Perina 2016-03-24 15:37:55 UTC
Fix will be included in ovirt-engine-extension-aaa-ldap 1.1.3 package

Comment 3 Gonza 2016-04-06 10:08:39 UTC
Verified with:
ovirt-engine-extension-aaa-ldap-1.1.3-1.el6ev.noarch

[Conf values]
pool.default.serverset.type = failover
pool.default.serverset.failover.00.server = xxxlc.xxx.rhev.lab.eng.brq.redhat.com
pool.default.serverset.failover.01.server = xxxpc.xxx.rhev.lab.eng.brq.redhat.com
pool.default.serverset.failover.domain = ${global:vars.domain}

[Log]
2016-04-06 11:26:39,525 INFO  [org.ovirt.engineextensions.aaa.ldap.Framework] (ServerService Thread Pool -- 60) [] [ovirt-engine-extension-aaa-ldap.authn::ldap-auth-simple_ad] Creating LDAP pool 'authz'
2016-04-06 11:26:43,130 INFO  [org.ovirt.engineextensions.aaa.ldap.Framework] (ServerService Thread Pool -- 60) [] [ovirt-engine-extension-aaa-ldap.authn::ldap-auth-simple_ad] LDAP pool 'authz' information: vendor='null' version='null'
2016-04-06 11:26:43,134 INFO  [org.ovirt.engineextensions.aaa.ldap.Framework] (ServerService Thread Pool -- 60) [] [ovirt-engine-extension-aaa-ldap.authn::ldap-auth-simple_ad] Creating LDAP pool 'authn'
2016-04-06 11:26:43,494 INFO  [org.ovirt.engineextensions.aaa.ldap.Framework] (ServerService Thread Pool -- 60) [] [ovirt-engine-extension-aaa-ldap.authn::ldap-auth-simple_ad] LDAP pool 'authn' information: vendor='null' version='null'
2016-04-06 11:26:43,747 INFO  [org.ovirt.engineextensions.aaa.ldap.Framework] (ServerService Thread Pool -- 60) [] [ovirt-engine-extension-aaa-ldap.authn::ldap-auth-simple_ad] Creating LDAP pool 'xxx.rhev.lab.eng.brq.redhat.com'
2016-04-06 11:26:44,939 INFO  [org.ovirt.engineextensions.aaa.ldap.Framework] (ServerService Thread Pool -- 60) [] [ovirt-engine-extension-aaa-ldap.authn::ldap-auth-simple_ad] LDAP pool 'authz.lab.eng.brq.redhat.com' information: vendor='null' version='null'