[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Release of 2.99.49p9



Good morning, just before heading for the airplane..
...
> Hello mea,
> 
> I tried the new version on my Ultra running 2.5.1 and found the router
> dump core in gdbm database lookup.   Checking from ChangeLog,  it seems
> changes have been made on all database lookup routines.   Could you pls
> check?

	I did eyeball the code, and it does make sense, in fact it
	is nearly identical to same routine for the  ndbm  database,
	which I have working at Solaris 2.5.1.

	Could you step thru the  search_gdbm()  to see what it does ?
	... hmm.. perhaps there is problem in the way how the failed
	lookup is retried ?  If that is it, fix is below.
	(No, that does not make sense -- At utu.fi the aliases db is
	 NDBM, and it humms happily in there...)

	I wonder why I have not had it crash on me then...  Perhaps
	NDBM tolerates things much better ?    Or perhaps  gdbm_errno
	sets when it can't find the object, but there is no REAL error
	in the system ?

> Rgds,
> Ken Lai

	/Matti Aarnio <mea@nic.funet.fi>

--- router/libdb/gdbm.c~	Wed Nov 26 18:24:18 1997
+++ router/libdb/gdbm.c	Mon Dec  1 09:18:34 1997
@@ -105,7 +105,6 @@
 	conscell *tmp;
 	struct spblk *spl = NULL;
 	int retry, i;
-	spkey_t symid;
 
 	retry = 0;
 
@@ -120,8 +119,7 @@
 	val = gdbm_fetch(db, key);
 	if (val.dptr == NULL) {
 		if (!retry && gdbm_errno) {
-			gdbm_close(db);
-			sp_install(symid, (u_char *)NULL, 0, spt_files);
+			close_gdbm(sip);
 			++retry;
 			goto reopen;
 		}
--- router/libdb/ndbm.c~	Mon Dec  1 09:11:11 1997
+++ router/libdb/ndbm.c	Mon Dec  1 09:19:18 1997
@@ -75,7 +75,6 @@
 	conscell *tmp;
 	struct spblk *spl;
 	int retry, i;
-	spkey_t symid;
 	char *us;
 
 	retry = 0;
@@ -92,13 +91,13 @@
 	if (val.dptr == NULL) {
 #ifdef HAVE_DBM_ERROR
 	  if (!retry && dbm_error(db)) {
-	    dbm_close(db);
+	    close_ndbm(sip);
 	    ++retry;
 	    goto reopen;
 	  }
 #else
 	  if (!retry && errno != 0) {
-	    dbm_close(db);
+	    close_ndbm(sip);
 	    ++retry;
 	    goto reopen;
 	  }