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

RE: test007-replication failure (ITS#2272)

I found that changing the "sleep 15" in the test script to "sleep 5" caused
the problem to occur much sooner, so it's definitely related to the sockets
hanging around in TIME_WAIT state. I also found that inserting a sleep(1) in
libldap/unbind.c:ldap_send_unbind() will give the server a chance to close
the socket before the client. I also inserted a "sleep 1" before the slurpd
is killed, to give time for the two slapd processes to close themselves down.
With both of these changes, the failure no longer occurs. (The sleep for
slurpd is needed since it is killed ungracefully, using "kill -KILL" - if it
was killed with a regular INT or TERM, the libldap sleep would suffice.)

Still, I'm not sure this is something we need to patch.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support

> -----Original Message-----
> From: Kurt D. Zeilenga [mailto:Kurt@OpenLDAP.org]
> Sent: Saturday, February 15, 2003 2:06 PM
> To: hyc@highlandsun.com
> Cc: openldap-its@OpenLDAP.org
> Subject: RE: test007-replication failure (ITS#2272)
> SO_REUSEADDR **should** only be needed on the server so that it
> can bind(2) to the local *.*:port address despite there being
> other local ADDRESS:port (and hence remote ADDRESS:xxx) uses.
> Since the client doesn't bind(2) to a specific local address,
> it **should not** need to set SO_REUSEADDR.