Summary | adding contact to chained ldap slave server causes error message |
Queue | Turba |
Queue Version | 2.3 |
Type | Bug |
State | Resolved |
Priority | 1. Low |
Owners | chuck (at) horde (dot) org |
Requester | robb (at) wtg (dot) cw (dot) com |
Created | 10/11/2008 (6214 days ago) |
Due | |
Updated | 10/25/2008 (6200 days ago) |
Assigned | 10/25/2008 (6200 days ago) |
Resolved | 10/25/2008 (6200 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
State ⇒ Resolved
http://cvs.horde.org/diff.php/turba/docs/CHANGES?r1=1.465&r2=1.466&ty=u
http://cvs.horde.org/diff.php/turba/lib/Forms/AddContact.php?r1=1.10&r2=1.11&ty=u
Assigned to Chuck Hagenbuch
State ⇒ Assigned
cases will just slow users down pointlessly. I could see getting rid
of the read, I guess, but then you're likely to get this error when
redirecting to the new contact.
I don't know enough about LDAP to know how common this is and how
much it's worth compromising everyone else's experience because of it.
How about searching immediately, then try again one second later if
you fail, with one further retry. That should avoid a delay for those
that don't need it, but allow some leeway for those that do.
Probably not hugely common setup, but hopefully this suggestion can
avoid that.
Taken from Chuck Hagenbuch
State ⇒ Feedback
will just slow users down pointlessly. I could see getting rid of the
read, I guess, but then you're likely to get this error when
redirecting to the new contact.
I don't know enough about LDAP to know how common this is and how much
it's worth compromising everyone else's experience because of it.
State ⇒ Assigned
around a similar propagation delay in older versions of Cyrus IMAP
when using a Murder environment.
http://cvs.horde.org/annotate.php/framework/IMAP/IMAP/ACL/rfc2086.php?rev=1.32#l175
on the display page after the redirect. So just removing that check
doesn't seem like it'll really solve the problem.
check though. If ldap confirms it was added successfully then the add
function should be happy.
Perhaps the code that displays an entry could retry a few times with a
short sleep in-between if it fails to find an object? For example
four, quarter second, sleeps would minimise wait time, and still give
up to a second for replication. Obviously those particular values
might not be appropriate, I don't know how long the sync might take,
but something along those lines?
on the display page after the redirect. So just removing that check
doesn't seem like it'll really solve the problem.
because syncrepl delay is very small
from my reading of the code (./turba/lib/Forms/AddContact.php)
the record is added (line 82)
$key = $driver->add($contact);
then the same record is searched for (line 86)
$ob = $driver->getObject($key);
this is what is causing the error
the write request is made, I'd take this as success.
State ⇒ Feedback
Priority ⇒ 1. Low
State ⇒ Unconfirmed
Patch ⇒ No
Milestone ⇒
Summary ⇒ adding contact to chained ldap slave server causes error message
Type ⇒ Bug
Queue ⇒ Turba
confirm the record has been added
however if the server that receives the update uses chaining and
syncrepl the update may not have made it back to the slave slave in
time for the search to find it, this causes an error message "There
was an error adding the new contact. Contact your system administrator
for further help."