tinguely@plains.UUCP (Mark Tinguely) (02/12/90)
Murphy was working against me again. I worked to a point of desperation, posted a question to the net and found the solution a few hours later. The bogus file descriptors and hash structure trashing were related, if a resolution does a forward and queues the qstream structure on a linked qinfo structure, and then before the forward can timeout out the TCP connection is severed (detected by ns_main and initiates the removal of the qstream in sqrm). Eventually, the timer associated with the forward tries to use the now released qstream havoc will follow with the error in the write to a now bogus (and even if it was not bogus, it is at lease a closed) socket. (this is not too serious). The ns_forw code also writes on the old qstream space -- overwriting some unfortunate structure that has since allocated that space. This is a critical write when the new structure in this space is a hashbuf structure, causing a bus or seqmentation error on the first occurrance of the structure. I solved the problem, here, by checking and removing all qinfo entries that refer to the qstream being deleted in sqrm(). I will provived the patches to those that are interested, but this problem is for TCP CONNECTIONS ONLY, and the symptom of this problem is FREQUENT coring of the name server. -- Mark Tinguely North Dakota State University, Fargo, ND 58105 UUCP: ...!uunet!plains!tinguely BITNET: tinguely@plains.bitnet INTERNET: tinguely@plains.NoDak.edu