See
<
http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/107/display...
------------------------------------------
[...truncated 4664 lines...]
suites/replication/acceptance_test.py::test_modify_stripattrs PASSED
suites/replication/acceptance_test.py::test_new_suffix PASSED
suites/replication/acceptance_test.py::test_many_attrs PASSED
suites/replication/acceptance_test.py::test_double_delete PASSED
suites/replication/acceptance_test.py::test_password_repl_error PASSED
suites/replication/acceptance_test.py::test_invalid_agmt PASSED
suites/replication/changelog_test.py::test_verify_changelog PASSED
suites/replication/changelog_test.py::test_verify_changelog_online_backup PASSED
suites/replication/changelog_test.py::test_verify_changelog_offline_backup PASSED
suites/replication/cleanallruv_test.py::test_clean PASSED
suites/replication/cleanallruv_test.py::test_clean_restart PASSED
suites/replication/cleanallruv_test.py::test_clean_force PASSED
suites/replication/cleanallruv_test.py::test_abort PASSED
suites/replication/cleanallruv_test.py::test_abort_restart PASSED
suites/replication/cleanallruv_test.py::test_abort_certify PASSED
suites/replication/cleanallruv_test.py::test_stress_clean PASSED
suites/replication/cleanallruv_test.py::test_multiple_tasks_with_force PASSED
suites/replication/ruvstore_test.py::test_ruv_entry_backup PASSED
suites/replication/ruvstore_test.py::test_memoryruv_sync_with_databaseruv PASSED
suites/replication/single_master_test.py::test_mail_attr_repl PASSED
suites/replication/single_master_test.py::test_lastupdate_attr_before_init PASSED
suites/replication/tombstone_test.py::test_purge_success PASSED
suites/replication/wait_for_async_feature_test.py::test_not_int_value PASSED
suites/replication/wait_for_async_feature_test.py::test_multi_value PASSED
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr0]
PASSED
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr1]
PASSED
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr2]
PASSED
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr3]
PASSED
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr0]
PASSED
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr1]
PASSED
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr2]
PASSED
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr3]
PASSED
suites/schema/schema_reload_test.py::test_valid_schema PASSED
suites/schema/schema_reload_test.py::test_invalid_schema PASSED
suites/schema/test_eduperson.py::test_account_locking PASSED
suites/schema/test_schema.py::test_schema_comparewithfiles PASSED
suites/setup_ds/setup_ds_test.py::test_slapd_InstScriptsEnabled[true] PASSED
suites/setup_ds/setup_ds_test.py::test_slapd_InstScriptsEnabled[false] PASSED
=================================== FAILURES ===================================
______________________________ test_ticket48226_1 ______________________________
topology_m2 = <lib389.topologies.TopologyMain object at 0x7febd44a4250>
def test_ticket48226_1(topology_m2):
name = '\''test_entry'\''
dn = "cn=%s,%s" % (name, SUFFIX)
topology_m2.ms["master1"].add_s(Entry((dn,
{'\''objectclass'\'': "top person".split(),
'\''sn'\'':
name,
'\''cn'\'':
name})))
# First do an update that is replicated
mods = [(ldap.MOD_ADD, '\''description'\'',
'\''5'\'')]
topology_m2.ms["master1"].modify_s(dn, mods)
nbtry = 0
while (nbtry <= 10):
try:
ent = topology_m2.ms["master2"].getEntry(dn, ldap.SCOPE_BASE,
"(objectclass=*)", ['\''description'\''])
if ent.hasAttr('\''description'\'') and
ent.getValue('\''description'\'') ==
'\''5'\'':
break
except ldap.NO_SUCH_OBJECT:
pass
nbtry = nbtry + 1
time.sleep(1)
assert nbtry <= 10
# Stop M2 so that it will not receive the next update
topology_m2.ms["master2"].stop(10)
# ADD a new value that is not replicated
mods = [(ldap.MOD_DELETE, '\''description'\'',
'\''5'\'')]
topology_m2.ms["master1"].modify_s(dn, mods)
# Stop M1 so that it will keep del '\''5'\'' that is
unknown from master2
topology_m2.ms["master1"].stop(10)
# Get the sbin directory so we know where to replace
'\''ns-slapd'\''
sbin_dir = topology_m2.ms["master2"].get_sbin_dir()
# Wrap valgrind in the try-finally block to make sure it is teared down
try:
if not topology_m2.ms["master2"].has_asan():
valgrind_enable(sbin_dir)
# start M2 to do the next updates
topology_m2.ms["master2"].start()
# ADD '\''description'\'' by
'\''5'\''
mods = [(ldap.MOD_DELETE, '\''description'\'',
'\''5'\'')]
topology_m2.ms["master2"].modify_s(dn, mods)
# DEL '\''description'\'' by
'\''5'\''
mods = [(ldap.MOD_ADD, '\''description'\'',
'\''5'\'')]
topology_m2.ms["master2"].modify_s(dn, mods)
# sleep of purge delay so that the next update will purge the CSN_7
time.sleep(6)
# ADD '\''description'\'' by
'\''6'\'' that purge the state info
mods = [(ldap.MOD_ADD, '\''description'\'',
'\''6'\'')]
topology_m2.ms["master2"].modify_s(dn, mods)
# Restart master1
# topology_m2.ms["master1"].start(30)
if not topology_m2.ms["master2"].has_asan():
results_file =
valgrind_get_results_file(topology_m2.ms["master2"])
# Stop master2
topology_m2.ms["master2"].stop(30)
# Check for leak
if not topology_m2.ms["master2"].has_asan():
if valgrind_check_file(results_file, VALGRIND_LEAK_STR,
'\''csnset_dup'\''):
<
http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/ws/source/3...:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
results_file = '\''valgrind'\''
patterns = ('\'' blocks are definitely lost in loss record '\'',
'\''csnset_dup'\'')
found = False, pattern_count = 2, matched_count = 0
def valgrind_check_file(results_file, *patterns):
'\'''\'''\''
Check the valgrind results file for the all the patterns
@param result_file - valgrind results file (must be read after server is
stopped)
@param patterns - A plain text or regex pattern string args that should
be searched for
@return True/False - Return true if one if the patterns match a stack
trace
@raise IOError
'\'''\'''\''
# Verify results file
if not results_file:
assert False
# Check the result file fo the leak text
results_file = results_file.replace('\''\n'\'',
'\'''\'')
found = False
pattern_count = len(patterns)
matched_count = 0
vlog = open(results_file)
E IOError: [Errno 2] No
such file or directory: '\''valgrind'\''
<
http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/ws/source/l...:
IOError
----------------------------- Captured stderr call -----------------------------
INFO:lib389.utils:Valgrind is already enabled.
INFO:lib389.utils:Valgrind is now disabled.
____________________ test_entry_has_no_restrictions[off-on] ____________________
topology_st = <lib389.topologies.TopologyMain object at 0x7febcb8c3ad0>
password_policy = None, test_user = None, inherit_value =
'\''off'\''
checksyntax_value = '\''on'\''
@pytest.mark.parametrize('\''inherit_value,checksyntax_value'\'',
[('\''off'\'',
'\''off'\''), ('\''on'\'',
'\''off'\''), ('\''off'\'',
'\''on'\'')])
def test_entry_has_no_restrictions(topology_st, password_policy, test_user,
inherit_value, checksyntax_value):
"""Make sure an entry added to ou=people
has no password syntax restrictions when:
- '\''passwordCheckSyntax'\'' is
'\''off'\'' for
'\''nsslapd-pwpolicy-inherit-global'\''
equaled '\''off'\'' and
'\''on'\''
- '\''passwordCheckSyntax'\'' is
'\''on'\'' for
'\''nsslapd-pwpolicy-inherit-global'\''
equaled '\''off'\''
:ID: 2f07ff40-76ca-45a9-a556-331c94084945
:feature: Password policy
:setup: Standalone instance, test user,
password policy entries for a subtree
:steps: 1. Bind as test user
2. Set '\''nsslapd-pwpolicy-inherit-global'\''
and
'\''passwordCheckSyntax'\'' accordingly:
a) '\''off'\'' and
'\''off'\''
b) '\''on'\'' and
'\''off'\''
c) '\''off'\'' and
'\''on'\''
3. Try to add user with a short password
:expectedresults: No exception should occure
"""
log.info('\''Set {} to {}'\''.format(ATTR_INHERIT_GLOBAL,
inherit_value))
log.info('\''Set {} to {}'\''.format(ATTR_CHECK_SYNTAX,
checksyntax_value))
topology_st.standalone.modify_s(CONFIG_DN, [(ldap.MOD_REPLACE,
ATTR_INHERIT_GLOBAL,
inherit_value)])
topology_st.standalone.modify_s(CONFIG_DN, [(ldap.MOD_REPLACE,
ATTR_CHECK_SYNTAX,
checksyntax_value)])
# Wait a second for cn=config to apply
time.sleep(1)
check_attr_val(topology_st, CONFIG_DN, ATTR_INHERIT_GLOBAL, inherit_value)
check_attr_val(topology_st, CONFIG_DN, ATTR_CHECK_SYNTAX, checksyntax_value)
log.info('\''Bind as test user'\'')
topology_st.standalone.simple_bind_s(BN, PASSWORD)
log.info('\''Make sure an entry added to ou=people has
'\''
'\''no password syntax restrictions.'\'')
try:
topology_st.standalone.add_s(Entry((TEMP_USER_DN.format('\''0'\''),
{'\''objectclass'\'': ['\''top'\'',
'\''person'\'',
'\''organizationalPerson'\'',
'\''inetOrgPerson'\''],
'\''cn'\'':
TEMP_USER.format('\''0'\''),
'\''sn'\'':
TEMP_USER.format('\''0'\''),
'\''userPassword'\'': '\''short'\''})))
except ldap.LDAPError as e:
log.fatal('\''Failed to add cn=test0 with userPassword: short:
'\'' +
e.message['\''desc'\''])
raise e
finally:
log.info('\''Bind as DM user'\'')
topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
log.info('\''Remove
{}'\''.format(TEMP_USER_DN.format('\''0'\'')))
try:
topology_st.standalone.delete_s(TEMP_USER_DN.format('\''0'\''))
except ldap.NO_SUCH_OBJECT as e:
log.fatal('\''There is no {}, it is a
problem'\''.format(TEMP_USER_DN.format('\''0'\'')))
raise e
E NO_SUCH_OBJECT:
{'\''matched'\'':
'\''ou=People,dc=example,dc=com'\'',
'\''desc'\'': '\''No such object'\''}
<
http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/ws/source/3...:
NO_SUCH_OBJECT
----------------------------- Captured stderr call -----------------------------
INFO:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:Set
nsslapd-pwpolicy-inherit-global to off
INFO:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:Set
passwordCheckSyntax to on
INFO:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:Default value of
nsslapd-pwpolicy-inherit-global is off
INFO:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:Default value of
passwordCheckSyntax is on
INFO:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:Bind as test user
INFO:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:Make sure an entry
added to ou=people has no password syntax restrictions.
CRITICAL:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:Failed to add
cn=test0 with userPassword: short: Constraint violation
INFO:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:Bind as DM user
INFO:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:Remove
cn=test0,ou=People,dc=example,dc=com
CRITICAL:dirsrvtests.tests.suites.password.pwdPolicy_inherit_global_test:There is no
cn=test0,ou=People,dc=example,dc=com, it is a problem
============== 2 failed, 620 passed, 1 skipped in 9208.84 seconds =============='
+ '[' 1 -ne 0 ']'
+ echo CI Tests 'FAILED!'
CI Tests FAILED!
+ MSG=FAILED
+ RC=1
+ sudo /usr/sbin/sendmail mreynolds(a)redhat.com firstyear(a)redhat.com
+ sudo rm -rf /var/tmp/slapd.vg.47075 /var/tmp/slapd.vg.47188 /var/tmp/slapd.vg.64217
+ exit 1
Build step 'Execute shell' marked build as failure
[locks-and-latches] Releasing all the locks
[locks-and-latches] All the locks released