[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#4240) back-meta loses "connection" with remote backend

On Mon, 2005-12-12 at 15:02 -0800, Perry Nguyen wrote:
> I don't see how it's a problem with the remote server, but anyway, I 
> finally got around to capturing a loglevel 261 log (of a connection that 
> works and one that does not).  I tried stepping through the code in gdb 
> but I couldn't really make heads or tails of what was going on.
> Anyway, the log is here:
> http://w3.gofti.com/~pfnguyen/openldap/2.3.12-disconnecting-meta.txt

OK, I'm digging thru your log; I see an anonymous search getting to a
glued database; the search is propagated to a back-meta that sends one
search locally and two presumably remotely.  The local search gives no
result, while one of the remote searches in one case gets an entry and
in the other none.  Then the client unbinds.  I don't see any
significant evidence of an erroneous behavior in the proxy; it does
garbage-in garbage-out.  I've uploaded an annotated version of your logs
at <ftp://ftp.openldap.org/incoming/2.3.12-disconnecting-meta.tar.gz>

I note that you set very low size/time limits (12 entries, 15 seconds);
how long does it take to the remote servers to return the entry if
queried directly?  Can you check what happens if you increase those time
limits?  I note that if there were any relevant issue in the
communication between the proxy and the remote server we would have seen
it in the logs, since both libldap and back-meta log at TRACE, ARGS and
ANY, which means always; if anything serious goes on, it's logged at
ANY, so it appears regardless of the log level you set; if anything else
unusual happens, it's logged at TRACE, while ARGS allowed us to track
what was going on with your ops.  I really think something may be going
on with the remote server; I mean something like a too long lasting
connection gets "lazy" so that the proxy sees it as valid while it
doesn't actually work.

Let me note that if you try to run current HEAD code, it contains a new
feature (ITS#4115) that allows to configure an idle-timeout at the proxy
side of a connection, so that long lasting connections are closed and
reopened by the proxy (the reverse of the idletimeout); I think you
might even be able to use back-meta from HEAD with 2.3.13 code.

Would you mind trying that?  Also, note that 2.3.13 fixed an issue with
handling of dead connections in both back-ldap and back-meta (ITS#4189),
so it might definitely be worth upgrading, at least for testing, given
the type of issues you're facing.


Ing. Pierangelo Masarati
Responsabile Open Solution

SysNet s.n.c.
Via Dossi, 8 - 27100 Pavia - ITALIA
Office:   +39.02.23998309          
Mobile:   +39.333.4963172
Email:    pierangelo.masarati@sys-net.it