-
Notifications
You must be signed in to change notification settings - Fork 189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ocis vs ldap. 500 error when adding multiple users to a group #6170
Comments
@rhafer known issue? |
No. I'll take a look |
Hm, there is a race that happens when multiple request to delete groupmember (or to add groupmembers) are in flight in parallel. It happens when either the first group member is added, or when the last one is removed. Not sure yet how to fix it, still investigating. |
As the standard LDAP groups (groupOfNames) require at least one "member" value to be present in a group, we have workarounds in place that add an empty member ("") when creating a new group or when removing the last member from the group. This can cause a race condition when e.g. multiple request to remove members from a group an running in parallel, as we need to read the group before we can construct the modification request. If some other request modified the group (e.g. deleted the 2nd last member) after we read it, we create non-working modification request. These changes try to catch those errors and retry the modification request once. Fixes: owncloud#6170
As the standard LDAP groups (groupOfNames) require at least one "member" value to be present in a group, we have workarounds in place that add an empty member ("") when creating a new group or when removing the last member from the group. This can cause a race condition when e.g. multiple request to remove members from a group an running in parallel, as we need to read the group before we can construct the modification request. If some other request modified the group (e.g. deleted the 2nd last member) after we read it, we create non-working modification request. These changes try to catch those errors and retry the modification request once. Fixes: owncloud#6170
#6214 should fix the problem. In the long run however it might be better if we switch our groups to use the |
…lel (#6214) As the standard LDAP groups (groupOfNames) require at least one "member" value to be present in a group, we have workarounds in place that add an empty member ("") when creating a new group or when removing the last member from the group. This can cause a race condition when e.g. multiple request to remove members from a group an running in parallel, as we need to read the group before we can construct the modification request. If some other request modified the group (e.g. deleted the 2nd last member) after we read it, we create non-working modification request. These changes try to catch those errors and retry the modification request once. Fixes: #6170
…lel (#6214) As the standard LDAP groups (groupOfNames) require at least one "member" value to be present in a group, we have workarounds in place that add an empty member ("") when creating a new group or when removing the last member from the group. This can cause a race condition when e.g. multiple request to remove members from a group an running in parallel, as we need to read the group before we can construct the modification request. If some other request modified the group (e.g. deleted the 2nd last member) after we read it, we create non-working modification request. These changes try to catch those errors and retry the modification request once. Fixes: #6170
…lel (#6214) As the standard LDAP groups (groupOfNames) require at least one "member" value to be present in a group, we have workarounds in place that add an empty member ("") when creating a new group or when removing the last member from the group. This can cause a race condition when e.g. multiple request to remove members from a group an running in parallel, as we need to read the group before we can construct the modification request. If some other request modified the group (e.g. deleted the 2nd last member) after we read it, we create non-working modification request. These changes try to catch those errors and retry the modification request once. Fixes: #6170
#6105 (comment)
ocis against ldap using https://github.com/owncloud/ocis/blob/master/deployments/examples/ocis_ldap/docker-compose.yml
Actual: only first user added. 500 error
log:
The text was updated successfully, but these errors were encountered: