See <http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/196/> ------------------------------------------ [...truncated 4347 lines...] suites/plugins/accpol_test.py::test_inact_local PASSED suites/plugins/attr_uniqueness_test.py::test_attr_uniqueness_init PASSED suites/plugins/attr_uniqueness_test.py::test_attr_uniqueness PASSED suites/plugins/dna_test.py::test_basic PASSED suites/plugins/memberof_test.py::test_memberof_setloging PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_001 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_003 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_004 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_005 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_006 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_007 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_008 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_009 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_010 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_011 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_012 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_013 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_014 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_015 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_016 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_017 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_018 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_019 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_020 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_021 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_022 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_023 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_024 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_025 PASSED suites/plugins/memberof_test.py::test_memberof_auto_add_oc PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_init PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_specific_time PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_day_of_week PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_denied_ip PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_denied_host PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_allowed_ip PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_allowed_host PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_config_validate PASSED suites/replication/acceptance_test.py::test_add_entry PASSED suites/replication/acceptance_test.py::test_modify_entry PASSED suites/replication/acceptance_test.py::test_delete_entry PASSED suites/replication/acceptance_test.py::test_modrdn_entry[0] PASSED suites/replication/acceptance_test.py::test_modrdn_entry[1] PASSED suites/replication/cleanallruv_test.py::test_cleanallruv_init PASSED suites/replication/cleanallruv_test.py::test_cleanallruv_clean PASSED suites/replication/cleanallruv_test.py::test_cleanallruv_clean_restart PASSED suites/replication/cleanallruv_test.py::test_cleanallruv_clean_force PASSED suites/replication/cleanallruv_test.py::test_cleanallruv_abort PASSED suites/replication/cleanallruv_test.py::test_cleanallruv_abort_restart PASSED suites/replication/cleanallruv_test.py::test_cleanallruv_abort_certify PASSED suites/replication/cleanallruv_test.py::test_cleanallruv_stress_clean 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/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_ticket47973 _______________________________ topology_st = <lib389.topologies.TopologyMain object at 0x7f9689650250> def test_ticket47973(topology_st): """ During the schema reload task there is a small window where the new schema is not loaded into the asi hashtables - this results in searches not returning entries. """ log.info('\''Testing Ticket 47973 - Test the searches still work as expected during schema reload tasks'\'') # # Add a user # try: topology_st.standalone.add_s(Entry((USER_DN, { '\''objectclass'\'': '\''top extensibleObject'\''.split(), '\''uid'\'': '\''user1'\'' }))) except ldap.LDAPError as e: log.error('\''Failed to add user1: error '\'' + e.message['\''desc'\'']) assert False # # Run a series of schema_reload tasks while searching for our user. Since # this is a race condition, run it several times. # task_count = 0 while task_count < SCHEMA_RELOAD_COUNT: # # Add a schema reload task # TASK_DN = '\''cn=task-'\'' + str(task_count) + '\'',cn=schema reload task, cn=tasks, cn=config'\'' try: topology_st.standalone.add_s(Entry((TASK_DN, { '\''objectclass'\'': '\''top extensibleObject'\''.split(), '\''cn'\'': '\''task-'\'' + str(task_count) }))) except ldap.LDAPError as e: log.error('\''Failed to add task entry: error '\'' + e.message['\''desc'\'']) assert False # # While we wait for the task to complete keep searching for our user # search_count = 0 while search_count < 100: # # Now check the user is still being returned # try: entries = topology_st.standalone.search_s(DEFAULT_SUFFIX, ldap.SCOPE_SUBTREE, '\''(uid=user1)'\'') if not entries or not entries[0]: log.fatal('\''User was not returned from search!'\'') assert False except ldap.LDAPError as e: log.fatal('\''Unable to search for entry %s: error %s'\'' % (USER_DN, e.message['\''desc'\''])) assert False # # Check if task is complete # > if task_complete(topology_st.standalone, TASK_DN): tickets/ticket47973_test.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ conn = <lib389.DirSrv object at 0x7f9689df7850> task_dn = '\''cn=task-8,cn=schema reload task, cn=tasks, cn=config'\'' def task_complete(conn, task_dn): finished = False try: task_entry = conn.search_s(task_dn, ldap.SCOPE_BASE, '\''objectclass=*'\'') if not task_entry: log.fatal('\''wait_for_task: Search failed to find task: '\'' + task_dn) assert False if task_entry[0].hasAttr('\''nstaskexitcode'\''): # task is done finished = True except ldap.LDAPError as e: log.fatal('\''wait_for_task: Search failed: '\'' + e.message['\''desc'\'']) > assert False E assert False tickets/ticket47973_test.py:36: AssertionError ---------------------------- Captured stdout setup ----------------------------- OK group dirsrv exists OK user dirsrv exists ----------------------------- Captured stderr call ----------------------------- INFO:dirsrvtests.tests.tickets.ticket47973_test:Testing Ticket 47973 - Test the searches still work as expected during schema reload tasks CRITICAL:dirsrvtests.tests.tickets.ticket47973_test:wait_for_task: Search failed: Can'\''t contact LDAP server ____________________________ test_ticket47973_case _____________________________ topology_st = <lib389.topologies.TopologyMain object at 0x7f9689650250> def test_ticket47973_case(topology_st): log.info('\''Testing Ticket 47973 (case) - Test the cases in the original schema are preserved.'\'') log.info('\''case 1 - Test the cases in the original schema are preserved.'\'') tsfile = topology_st.standalone.schemadir + '\''/98test.ldif'\'' tsfd = open(tsfile, "w") Mozattr0 = "MoZiLLaaTTRiBuTe" testschema = "dn: cn=schema\nattributetypes: ( 8.9.10.11.12.13.14 NAME '\''" + Mozattr0 + "'\'' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN '\''Mozilla Dummy Schema'\'' )\nobjectclasses: ( 1.2.3.4.5.6.7 NAME '\''MozillaObject'\'' SUP top MUST ( objectclass $ cn ) MAY ( " + Mozattr0 + " ) X-ORIGIN '\''user defined'\'' )" tsfd.write(testschema) tsfd.close() try: # run the schema reload task with the default schemadir topology_st.standalone.tasks.schemaReload(schemadir=topology_st.standalone.schemadir, > args={TASK_WAIT: False}) tickets/ticket47973_test.py:126: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../../lib389/lib389/tasks.py:758: in schemaReload self.conn.add_s(entry) ../../../lib389/lib389/__init__.py:157: in inner return f(ent.dn, ent.toTupleList(), *args[2:]) /usr/lib64/python2.7/site-packages/ldap/ldapobject.py:209: in add_s msgid = self.add(dn,modlist) ../../../lib389/lib389/__init__.py:159: in inner return f(*args, **kwargs) /usr/lib64/python2.7/site-packages/ldap/ldapobject.py:206: in add return self.add_ext(dn,modlist,None,None) ../../../lib389/lib389/__init__.py:159: in inner return f(*args, **kwargs) /usr/lib64/python2.7/site-packages/ldap/ldapobject.py:191: in add_ext return self._ldap_call(self._l.add_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls)) ../../../lib389/lib389/__init__.py:161: in inner return f(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <lib389.DirSrv object at 0x7f9689df7850> func = <built-in method add_ext of LDAP object at 0x7f968a010170> args = ('\''cn=task-04022017_012514,cn=schema reload task,cn=tasks,cn=config'\'', [('\''objectclass'\'', ('\''top'\'', '\''extensibleObject'\'')), ('\''cn'\'', ('\''task-04022017_012514'\'',)), ('\''schemadir'\'', ('\''/etc/dirsrv/slapd-standalone_1/schema'\'',))], None, None) kwargs = {}, diagnostic_message_success = None e = SERVER_DOWN({'\''desc'\'': "Can'\''t contact LDAP server"},) def _ldap_call(self,func,*args,**kwargs): """ Wrapper method mainly for serializing calls into OpenLDAP libs and trace logs """ self._ldap_object_lock.acquire() if __debug__: if self._trace_level>=1: self._trace_file.write('\''*** %s %s - %s\n%s\n'\'' % ( repr(self), self._uri, '\''.'\''.join((self.__class__.__name__,func.__name__)), pprint.pformat((args,kwargs)) )) if self._trace_level>=9: traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file) diagnostic_message_success = None try: try: > result = func(*args,**kwargs) E SERVER_DOWN: {'\''desc'\'': "Can'\''t contact LDAP server"} /usr/lib64/python2.7/site-packages/ldap/ldapobject.py:106: SERVER_DOWN ----------------------------- Captured stderr call ----------------------------- INFO:dirsrvtests.tests.tickets.ticket47973_test:Testing Ticket 47973 (case) - Test the cases in the original schema are preserved. INFO:dirsrvtests.tests.tickets.ticket47973_test:case 1 - Test the cases in the original schema are preserved. =================== 2 failed, 501 passed in 10374.31 seconds ===================' + '[' 1 -ne 0 ']' + echo CI Tests 'FAILED!' CI Tests FAILED! + MSG=FAILED + RC=1 + sudo /usr/sbin/sendmail mreynolds@xxxxxxxxxx firstyear@xxxxxxxxxx + sudo rm -rf /var/tmp/slapd.vg.121506 /var/tmp/slapd.vg.12483 /var/tmp/slapd.vg.12578 /var/tmp/slapd.vg.21021 + exit 1 Build step 'Execute shell' marked build as failure _______________________________________________ 389-devel mailing list -- 389-devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to 389-devel-leave@xxxxxxxxxxxxxxxxxxxxxxx