hbb@hou5a.UUCP (H.B.Braude) (01/02/85)
A problem that can occur under readnews B 2.10 of 5/3/83 is related to the way records are kept in the user's .newsrc file. Due to some unknown technical difficulties, hou5a had gaps between the article names stored in it's spool directory under the newsgroup net.sources. What this means is that there may have been articles whose filenames were 131, 132, 138, 146, 147, etc in the spool directory (please notice that the numbers are not all consecutive.) Evidently, readnews noticed the missing values and recorded the inconsitency in my .newsrc file. The way it recorded it was to start a new sequence of read-article values by appending the new set to the end of the net.sources line. In other words, a normal entry may have appeared as "net.subject: 1-1700", but this entry became "net.sources: 1-132, 138, 146-147." Each time a gap in the filenames was found, a new appendage was generated. This was ok when only a few gaps occurred, but evidently hou5a has been getting a large number of these in net.sources, so the length of that line in the .newsrc file grew very long. When the line reached some limit, I received the error message "line too long" when I tried to use readnews. I exited immediately, not knowing the side-affects of such a problem and attempted to solve the problem by editing the .newsrc file. This was difficult because vi(1) also has a line length limit and it refused to read in any more of the file after it reached the offending line. The way to fix this on the user level is to grep(1) the offending line from the original .newsrc file and find out the last article value. Then create a temporary file containing "newsgroup.name: 1-value." Next, split(1) the .newsrc file so that each file is a single line. Then the file with the oversized entry can be replaced with the one previously prepared. Finally, reassemble the .newsrc file using cat(1) (eg: split(1) names files xaa, xab, etc. To reassemble the file, just "cat x?? > .newsrc." Perhaps a safer method would be to work on a copy of the .newsrc file, just in case. This is will get the .newsrc file back into shape, but the problem of missing articles will still exist. That means the whole process may have to be repeated in a few months if the *real* problem isn't found and corrected. -- Harlan B. Braude {most "backbone" sites}!hou5a!hbb
lwall@sdcrdcf.UUCP (Larry Wall) (01/04/85)
In article <635@hou5a.UUCP> hbb@hou5a.UUCP (H.B.Braude) writes: > The way to fix this on the user level is to grep(1) the offending > line from the original .newsrc file and find out the last article > value. Then create a temporary file containing "newsgroup.name: > 1-value." Next, split(1) the .newsrc file so that each file > is a single line. Then the file with the oversized entry can be > replaced with the one previously prepared. Finally, reassemble > the .newsrc file using cat(1) (eg: split(1) names files xaa, xab, > etc. To reassemble the file, just "cat x?? > .newsrc." Perhaps a > safer method would be to work on a copy of the .newsrc file, just > in case. An easier way to fix the line, if you happen to have rn on your system, is to start up rn, find the newsgroup, catch up ('c') in it, and exit. Rn doesn't care how long the lines are in the .newsrc as long as you have memory. Larry Wall {allegra,burdvax,cbosgd,hplabs,ihnp4,sdcsvax}!sdcrdcf!lwall