Bug 1161131

Summary: Deadlock in schema compat plugin
Product: Red Hat Enterprise Linux 7 Reporter: Martin Kosek <mkosek>
Component: ipaAssignee: IPA Maintainers <ipa-maint>
Status: CLOSED ERRATA QA Contact: Namita Soman <nsoman>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 7.0CC: rcritten, spoore
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ipa-4.1.0-4.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 10:14:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Martin Kosek 2014-11-06 13:06:43 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/freeipa/ticket/4635

The deadlock occurs while testing freeipa unit-test (make-tests) in particular in test_automember).

freeipa 4.0.3 branch and 389-ds master branch (CI tests).


{{{
repoquery -i freeipa-server

Name        : freeipa-server
Version     : 4.0.3GITb89c184
Release     : 0.fc20
Architecture: x86_64
Size        : 4036345
Packager    : None
Group       : System Environment/Base
URL         : http://www.freeipa.org/
License     : GPLv3+
Repository  : tbordaz-freeIPA_40
Summary     : The IPA authentication server
Source      : freeipa-4.0.3GITb89c184-0.fc20.src.rpm
Description :
IPA is an integrated solution to provide centrally managed Identity (machine,
user, virtual machines, groups, authentication credentials), Policy
(configuration settings, access control information) and Audit (events,
logs, analysis thereof). If you are installing an IPA server you need
to install this package (in other words, most people should NOT install
this package).
[root@vm-043 db]# repoquery -i 389-ds-base

Name        : 389-ds-base
Version     : 2014_10_16
Release     : 1.fc20
Architecture: x86_64
Size        : 5489313
Packager    : None
Group       : System Environment/Daemons
URL         : http://port389.org/
License     : GPLv2 with exceptions
Repository  : mreynolds-389-ds-base
Summary     : 389 Directory Server (base)
Source      : 389-ds-base-2014_10_16-1.fc20.src.rpm
Description :
389 Directory Server is an LDAPv3 compliant server.  The base package includes
the LDAP server and command line utilities for server administration.

}}}

The deadlock occurs twice during the tests.

Comment 1 Martin Kosek 2014-11-06 13:08:38 UTC
master:
85eb17553f46bfb4446279037e324f825d3389bd Deadlock in schema compat plugin (between automember_update_membership task and dse update)

ipa-4-1:
f0bcf2b29553003af3e5dd35fb6c73752fc95e21 Deadlock in schema compat plugin (between automember_update_membership task and dse update)

So far, this was only reproducible by upstream test suite. It can be tested as SanityOnly.

Comment 3 Scott Poore 2015-01-23 01:48:07 UTC
Verified.

Version ::

ipa-server-4.1.0-16.el7.x86_64

Results ::

Tested sanity only by running the automember tests.

+-----------------------------------------------------------------------------------------+
     Test:[/ipa-server/rhel71/ipa-automember-cli/root]: [ Pass(119/119): 100% ] 
 +-----------------------------------------------------------------------------------------+
:: [   PASS   ]   ipa-automember-cli-startup: Check for admintools package.
:: [   PASS   ]   Setup
:: [   PASS   ]   ipa-automember-cli-1001: create rule for group
:: [   PASS   ]   ipa-automember-cli-1002: create rule for hostgroup
:: [   PASS   ]   ipa-automember-cli-1101: create rule for non-existent group
:: [   PASS   ]   ipa-automember-cli-1102: create rule for non-existent hostgroup
:: [   PASS   ]   ipa-automember-cli-1103: create rule for invalid type
:: [   PASS   ]   ipa-automember-cli-1104: create rule for group that already exists 
:: [   PASS   ]   ipa-automember-cli-1105: create rule for hostgroup that already exists
:: [   PASS   ]   ipa-automember-cli-1201: add inclusive regex to group
:: [   PASS   ]   ipa-automember-cli-1202: add exclusive regex to group
:: [   PASS   ]   ipa-automember-cli-1203: add inclusive regex to hostgroup
:: [   PASS   ]   ipa-automember-cli-1204: add exclusive regex to hostgroup
:: [   PASS   ]   ipa-automember-cli-1301: add inclusive regex to non-existent group
:: [   PASS   ]   ipa-automember-cli-1302: add exclusive regex to non-existent group
:: [   PASS   ]   ipa-automember-cli-1303: add inclusive regex to non-existent hostgroup
:: [   PASS   ]   ipa-automember-cli-1304: add exclusive regex to non-existent hostgroup
:: [   PASS   ]   ipa-automember-cli-1401: add inclusive regex to group with invalid type
:: [   PASS   ]   ipa-automember-cli-1402: add exclusive regex to group with invalid type
:: [   PASS   ]   ipa-automember-cli-1403: add inclusive regex to hostgroup with invalid type
:: [   PASS   ]   ipa-automember-cli-1404: add exclusive regex to hostgroup with invalid type
:: [   PASS   ]   ipa-automember-cli-1501: add inclusive regex to group with invalid key
:: [   PASS   ]   ipa-automember-cli-1502: add exclusive regex to group with invalid key
:: [   PASS   ]   ipa-automember-cli-1503: add inclusive regex to hostgroup with invalid key
:: [   PASS   ]   ipa-automember-cli-1504: add exclusive regex to hostgroup with invalid key
:: [   PASS   ]   ipa-automember-cli-1601: add regex to group with invalid regextype
:: [   PASS   ]   ipa-automember-cli-1602: add regex to hostgroup with invalid regextype
:: [   PASS   ]   ipa-automember-cli-1701: find existing group rule
:: [   PASS   ]   ipa-automember-cli-1702: find existing hostgroup rule
:: [   PASS   ]   ipa-automember-cli-1801: find non-existent group rule
:: [   PASS   ]   ipa-automember-cli-1802: find non-existent hostgroup rule
:: [   PASS   ]   ipa-automember-cli-1901: find existing group rule with invalid type
:: [   PASS   ]   ipa-automember-cli-1902: find existing hostgroup rule with invalid type
:: [   PASS   ]   ipa-automember-cli-2001: show existing group rule
:: [   PASS   ]   ipa-automember-cli-2002: show existing hostgroup rule
:: [   PASS   ]   ipa-automember-cli-2101: show non-existent group rule
:: [   PASS   ]   ipa-automember-cli-2102: show non-existent hostgroup rule
:: [   PASS   ]   ipa-automember-cli-2201: show existing group rule with invalid type
:: [   PASS   ]   ipa-automember-cli-2202: show existing hostgroup rule with invalid type
:: [   PASS   ]   ipa-automember-cli-2301: modify existing group rule
:: [   PASS   ]   ipa-automember-cli-2302: modify existing hostgroup rule
:: [   PASS   ]   ipa-automember-cli-2401: modify existing group rule with same value
:: [   PASS   ]   ipa-automember-cli-2402: modify existing hostgroup rule with same value
:: [   PASS   ]   ipa-automember-cli-2501: modify existing group rule with non-existent group
:: [   PASS   ]   ipa-automember-cli-2502: modify existing hostgroup rule with non-existent group
:: [   PASS   ]   ipa-automember-cli-2601: modify existing group rule with invalid type
:: [   PASS   ]   ipa-automember-cli-2602: modify existing hostgroup rule with invalid type
:: [   PASS   ]   ipa-automember-cli-2701: modify existing group rule with invalid attribute
:: [   PASS   ]   ipa-automember-cli-2702: modify existing hostgroup rule with invalid attribute
:: [   PASS   ]   ipa-automember-cli-2801: verify existing group rule
:: [   PASS   ]   ipa-automember-cli-2802: verify existing hostgroup rule
:: [   PASS   ]   ipa-automember-cli-2901: verify existing group rule with non-existent group
:: [   PASS   ]   ipa-automember-cli-2902: verify existing hostgroup rule with non-existent group
:: [   PASS   ]   ipa-automember-cli-3001: verify existing group rule with invalid type
:: [   PASS   ]   ipa-automember-cli-3002: verify existing hostgroup rule with invalid type
:: [   PASS   ]   ipa-automember-cli-3101: verify existing group rule with invalid attribute
:: [   PASS   ]   ipa-automember-cli-3102: verify existing hostgroup rule with invalid attribute
:: [   PASS   ]   ipa-automember-cli-3201: verify existing group rule with incorrect value
:: [   PASS   ]   ipa-automember-cli-3202: verify existing hostgroup rule with incorrect value
:: [   PASS   ]   ipa-automember-cli-3301: set default group
:: [   PASS   ]   ipa-automember-cli-3302: set default hostgroup
:: [   PASS   ]   ipa-automember-cli-3401: set default group with same value
:: [   PASS   ]   ipa-automember-cli-3402: set default hostgroup with same value
:: [   PASS   ]   ipa-automember-cli-3501: set default group with non-existent group
:: [   PASS   ]   ipa-automember-cli-3502: set default hostgroup with non-existent group
:: [   PASS   ]   ipa-automember-cli-3601: set default group with invalid type
:: [   PASS   ]   ipa-automember-cli-3602: set default hostgroup with invalid type
:: [   PASS   ]   ipa-automember-cli-3701: show default group
:: [   PASS   ]   ipa-automember-cli-3702: show default hostgroup
:: [   PASS   ]   ipa-automember-cli-3801: show default group for invalid type
:: [   PASS   ]   ipa-automember-cli-3901: remove default group
:: [   PASS   ]   ipa-automember-cli-3902: remove default hostgroup
:: [   PASS   ]   ipa-automember-cli-4001: remove default group for invalid type
:: [   PASS   ]   ipa-automember-cli-4101: remove default group for no default
:: [   PASS   ]   ipa-automember-cli-4102: remove default hostgroup for no default
:: [   PASS   ]   ipa-automember-cli-4201: show default group for no default
:: [   PASS   ]   ipa-automember-cli-4202: show default hostgroup for no default
:: [   PASS   ]   ipa-automember-cli-4801: remove group inclusive regex for non-existent regex
:: [   PASS   ]   ipa-automember-cli-4802: remove group exclusive regex for non-existent regex
:: [   PASS   ]   ipa-automember-cli-4803: remove hostgroup inclusive regex for non-existent regex
:: [   PASS   ]   ipa-automember-cli-4804: remove hostgroup exclusive regex for non-existent regex
:: [   PASS   ]   ipa-automember-cli-4301: remove group inclusive regex
:: [   PASS   ]   ipa-automember-cli-4302: remove group exclusive regex
:: [   PASS   ]   ipa-automember-cli-4303: remove hostgroup inclusive regex
:: [   PASS   ]   ipa-automember-cli-4304: remove hostgroup exclusive regex
:: [   PASS   ]   ipa-automember-cli-4401: remove inclusive regex for non-existent group
:: [   PASS   ]   ipa-automember-cli-4402: remove exclusive regex for non-existent group
:: [   PASS   ]   ipa-automember-cli-4403: remove inclusive regex for non-existent hostgroup
:: [   PASS   ]   ipa-automember-cli-4404: remove exclusive regex for non-existent hostgroup
:: [   PASS   ]   ipa-automember-cli-4501: remove inclusive regex from group with invalid type
:: [   PASS   ]   ipa-automember-cli-4502: remove exclusive regex from group with invalid type
:: [   PASS   ]   ipa-automember-cli-4503: remove inclusive regex from hostgroup with invalid type
:: [   PASS   ]   ipa-automember-cli-4504: remove exclusive regex from hostgroup with invalid type
:: [   PASS   ]   ipa-automember-cli-4601: remove inclusive regex from group with invalid key
:: [   PASS   ]   ipa-automember-cli-4602: remove exclusive regex from group with invalid key
:: [   PASS   ]   ipa-automember-cli-4603: remove inclusive regex from hostgroup with invalid key
:: [   PASS   ]   ipa-automember-cli-4604: remove exclusive regex from hostgroup with invalid key
:: [   PASS   ]   ipa-automember-cli-4701: remove regex from group with invalid regextype
:: [   PASS   ]   ipa-automember-cli-4702: remove regex from hostgroup with invalid regextype
:: [   PASS   ]   ipa-automember-cli-4901: delete existing group rule
:: [   PASS   ]   ipa-automember-cli-4902: delete existing hostgroup rule
:: [   PASS   ]   ipa-automember-cli-5001: delete existing hostgroup rule
:: [   PASS   ]   ipa-automember-cli-5002: delete existing hostgroup rule
:: [   PASS   ]   ipa-automember-cli-5101: delete existing group rule with invalid type
:: [   PASS   ]   ipa-automember-usertest-1000: Setup users/groups/rules for user tests
:: [   PASS   ]   ipa-automember-usertest-1101: add tests match manager
:: [   PASS   ]   ipa-automember-usertest-1102: user add tests match title
:: [   PASS   ]   ipa-automember-usertest-1103: user add tests match manager and title
:: [   PASS   ]   ipa-automember-usertest-cleanup delete groups, users, rules
:: [   PASS   ]   ipa-automember-hosttest-1000 Setup hostgroups/rules for user tests
:: [   PASS   ]   ipa-automember-hosttest-1101: add tests match description
:: [   PASS   ]   ipa-automember-hosttest-1102: add tests match fqdn
:: [   PASS   ]   ipa-automember-hosttest-1103: host add tests match description and fqdn
:: [   PASS   ]   ipa-automember-hostest-cleanup delete hosts, hostgroups, rules
:: [   PASS   ]   Cleanup
:: [   PASS   ]   ipa-automember-bugzilla-001: bz746589 automember functionality not available for upgraded IPA server
:: [   PASS   ]   ipa-automember-bugzilla-002: bz772659 bz782460 Typo in example description for automember-default-group-remove
:: [   PASS   ]   ipa-automember-bugzilla-003: bz1007451 schema-compat plugin should ignore slapi task entries to avoid possible DS deadlock
:: [   PASS   ]   /ipa-server/rhel71/ipa-automember-cli/root

Comment 5 errata-xmlrpc 2015-03-05 10:14:33 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-0442.html