This issue is to cleanup the bso_minimal_access_fallback feature flag, after the feature flag has been enabled by default for an appropriate amount of time in production.
The feature controls the behavior of falling back to Minimal Access when provisioning users through SAML, SCIM, or LDAP when Block Seat Overages (BSO) is enabled and no seats are available. The flag was enabled by default in 18.10 (!225777).
Related:
#g_seat_management
@paulobarros
@m_frankiewicz
The cleanup MR itself should be low-risk since the flag is already enabled by default. Removing the flag makes the behavior permanent. If an issue is discovered post-cleanup, the fix would require reverting the cleanup MR to re-introduce the flag.
bso_minimal_access_fallback feature flag. Ask for review and merge it.
/chatops run auto_deploy status <merge-commit-of-cleanup-mr>
#production channel: /chatops run feature delete bso_minimal_access_fallback --dev --pre --staging --staging-ref --production
@dzubova I had a look at the code and given the context shared by Vij and Aish above, I'd estimate this as a weight 3. The main investigation is whether there's been a regression in the members added event, or if seat assignment records are missing for another reason (e.g. members provisioned via SAML/SCIM perhaps?
@kategrechishkina Good news: the fix was merged yesterday and it seems it will be included in 18.10!
Be aware that the customer will have to enable the ldap_raise_on_search_error feature flag to use the improved logic.
Hey @karichards, could you review this follow-up?
Paulo Barros (cbc6b593) at 17 Mar 20:23
Improve LDAP search error logging and clean up response codes
81%
Needs attention
bso_minimal_access_fallback feature flag was enabled by default. BSO warnings for existing and new LDAP/SAML/SCIM configurations are now complete.
@karichards
@karichards
@paulobarros
@lwanko
@lwanko
Follow-up to !226913.
Fixes a logging gap where non-error LDAP response codes (10, 32) were silently returned without logging. All non-zero codes now log a warning before the allowlist check.
Removes codes 3 (TIMELIMIT_EXCEEDED) and 4 (SIZELIMIT_EXCEEDED) from
NON_ERROR_LDAP_RESPONSE_CODES. These codes are already handled by net-ldap
as successful searches and never reach check_empty_response_code.
Evaluate this MR against the MR acceptance checklist.
Paulo Barros (8373165a) at 16 Mar 19:27
Improve LDAP search error logging and clean up response codes
@kategrechishkina Right, codes 3/4 are in net-ldap's ResultCodesSearchSuccess so they return results directly, not nil. If an admin wants to retry on those they can use retry_empty_result_with_codes. On the logging gap, agreed, I'll track that in the follow-up issue.
However, despite all the efforts I'm afraid it's unlikely that this fix will be merged on time for 18.10.
Apologies @dzubova, I was supposed to have a look at this but got sidetracked. I will do it later today. Thanks for the patience.
@lwanko @sgarg_gitlab Good call on the naming, renamed the FF to ldap_raise_on_search_error. On codes 3/4, net-ldap treats those as successful searches and returns results directly, so they wouldn't normally hit check_empty_response_code. Code 32 was a deliberate choice since it covers legitimate cases like a deleted LDAP group. These could use a closer look though, I'll create a follow-up issue for it.