The use of dsdb_replace() in dsdb_schema_set_indices_and_attributes() was corrected by ec9b1e881c3eef503d6b4b311594113acf7d47d8 but this did not consider removal of attributes. It also did not assume a global read lock, which we now have. The impact is that an attribute like @IDXGUID or @INDEXVERSION is not removed despite being detected as needing removal, causing a reindex on every db load.
Created attachment 13580 [details] proposed patch for master Here is what I proposed for master. I've tested this backported to 4.7.
Can you send the patch for master to the list?
Done. https://lists.samba.org/archive/samba-technical/2017-September/122867.html
Created attachment 13604 [details] patch for 4.7 cherry-picked from master Sorry for the delay in proposing the backport before 4.7
I've just pushed to fix without the test with the review from slow@samba.org. We can push the test later, but it's not critical for 4.7.0. But we need to remove the knownfail hunk.
Pushed to autobuild-v4-7-test
I did actually check it with the tests, but either way I'm sure we can sort the rest out after 4.7.
Test pushed to autobuild-v4-7-test
(In reply to Stefan Metzmacher from comment #8) Pushed to v4-7-test