Full_Name: Howard Chu Version: 2.4.35 OS: URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (18.104.22.168) Submitted by: hyc
We've discussed this on -devel a few times in the past. Sometimes it would be desirable to prevent a consumer from answering client requests if it has just started up and needs to perform an lengthy refresh.
In prior discussions, there was a concern that in an MMR situation, two servers coming up at the same time would deadlock waiting for each other. We can avoid this problem by allowing any search request with a Sync control to proceed as normal. Or, any search request with a Sync control and a non-empty, valid cookie.
Implementation can be done using an overlay hook. Note that syncrepl already installs an overlay hook now for delta-mmr, this would just expand the scope of that internal overlay.
I was considering returning LDAP_BUSY for this case, but it may make more sense to return a REFERRAL to the provider instead. (Although again, if we have two MMR servers pointed at each other starting at the same time, they would just refer to each other and clients would get nowhere until one of them finishes its refresh.)