Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site allegra.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mp From: mp@allegra.UUCP (Mark Plotnick) Newsgroups: net.news.sa Subject: Re: Are there problems if expire runs while news is being received? Message-ID: <5443@allegra.UUCP> Date: Sun, 24-Nov-85 21:05:27 EST Article-I.D.: allegra.5443 Posted: Sun Nov 24 21:05:27 1985 Date-Received: Mon, 25-Nov-85 07:21:02 EST References: <186@pluto.UUCP> Organization: AT&T Bell Laboratories, Murray Hill Lines: 15 The way we avoid the problem here is: - don't run expire (it would take 11 hours of real time!), and use find instead. Once a week, manually turn off uuxqts, trim down the history file so it only holds 3 weeks' worth of info, and run "rebuilddbm" (an extract of the rebuilddbm() routine in expire) to recreate the .dir and .pag files. - add locking code around dbm accesses. This is mainly to prevent problems with concurrent rnews's (either because we have multiple uuxqt's going at once or have benevolent gremlins who dig into the uucp spool directory and run unbatch manually). I just mimicked the article locking code, and provided an abort() routine for dbm to call that logs the data from the offending page (so far, it's never been called). I also modified libdbm not to cache pages (this change may also help sendmail out when it's repeatedly hunting for the '@' in an incomplete alias file). Modified news code upon request, but it's for 2.10.1.