[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: commit: ldap/tests/scripts defines.sh test035-meta test036-meta-concurrency
Pierangelo Masarati wrote:
The bad news is that under some circumstances back-meta still happens
to hang waiting for a result from a target that is not willing to send
any. I've worked it around by re-issuing the anonymous bind exactly
once after the configured retries on ldap_result() have been attempted
unsuccessfully. Unfortunately this occurs so few times and under so
heavy load that first of all it's unrealistic, and it's pretty
difficult to track. In fact, in these cases I can easily attach the
back-meta with gdb and see it retry indefinitely, but there's no clue
in attaching the remote server, because that has anything to do with
the operation, and its logs don't say anything about the problem. The
libldap is waiting on a message that'll never come. So re-issuing the
operation seems to be the right approach.
I think I've spotted the cause. I was doing something that could be
interesting, but right now seems inappropriate, and it is having some
undesired side effect. When doing reads, what's needed is a unique
target, holding the search base. If none cannot be identified by
looking at the target's naming contexts, an internal search is
performed, using the request DN as base, and a sizelimit of 1. If
exactly one target is found, it is used; otherwise, an error is returned
because no exact base can be selected. I might need to tweak this a
bit, but that's how it works. The point is that meta_back_search(), in
case of a match when the scope is BASE, was actually returing result and
abandoning the other operations. This, and I don't know why, could
result in the abandoned targets refuse to respond to the anonymous bind
immediately after the abandon. Currently I have no clue. For other
reasons, i turned that feature off, and now that abandons don't occur
any longer, the problem doesn't show up any more.
p.
--
Pierangelo Masarati
mailto:pierangelo.masarati@sys-net.it
SysNet - via Dossi,8 27100 Pavia Tel: +390382573859 Fax: +390382476497