KNOWN PROBLEMS -------------- Here is a collection of some of the problems people have had with installation and operation of nn in the past. Some of these may no longer be completely valid since release 6.4 has changed quite a number of things since release 6.3, but there may still be some hints to solving the problems you might encounter. RUNNING NN ON 80286 ------------------- The system and machine file for a '286 running Microport UNIX V/AT are s-uport2-2.h and m-i80286.h, but to get it running you probably have to do the following things as well: - tgetstr.o in libcurses is broken in 2.4. Get an old version (e.g. 1.3) and replaced tgetstr.o. - Use the m286 malloc posted recently to comp.sources.misc Thanks to Wietse Z. Venema and Miek Grenier for a lot of work on locating and fixing 16/32 bit problems in nn 6.3 which caused it not to work on the '286. (I hope I haven't introduced new problems in 6.4, but I cannot promise it). NNTP PROBLEMS ------------- Other problems with the current NNTP support are described in the NNTP file. FILE PERMISSIONS ---------------- You should run as root when installing the package & db, because some directories might be created in places where ordinary users are not allowed to write, and secondly because it is not allowed to change the owner of a file (nnmaster) on some systems. Specifically, nnmaster will report "nnmaster already running" if it doesn't have write access to the MASTER_DIRECTORY. This might be the cause of your problems. In general, the permissions and ownership of the various programs should be set to allow the following access: - To let the nnmaster READ the news directory (no problem since /usr/spool/news normally has mode 755), - To let the nnmaster WRITE in the db-directory and files - To let ordinary users programs (i.e. nn) READ the db-directory. For example, owner group mode db-directory & files: news news 755 nnmaster: news news 4755 (suid) nn etc: storm other 755 EXPIRED ARTICLES STILL SHOW UP ON THE MENUS ------------------------------------------- This happens if expiration has not been performed on the database after expire has been run on the news system (or NNTP server). To run expire on the database regularly, inserting the following command in the crontab to be executed at a suitable time (with permissions of the owner of nnmaster). Preferably it should run immediately after normal expire has *completed*: /usr/local/bin/nnadmin =EYW This expire is relatively cheap on a local system (< 10 minutes), but via NNTP, it may be more expensive, so there it is recommended to only run once a week or so. I have some directions for a patch to the NNTP server which will cure this problem -- see NNTP and nntp.c! ABOUT BLOCKED GROUPS -------------------- A group is blocked while the nnmaster is collecting new articles in that group. In a newly initialized database, all groups will be blocked until the nnmaster has collected them the first time, which may take an hour or so the first time you run nnmaster -r. This means that there may not be any news to read for a while after you have just started the nnmaster the first time. If you run nnmaster with only a selection of groups on the command line, you may also see some blocked groups among the groups that are not collected. PROBLEMS SENDING MAIL --------------------- Some people have experienced problems sending mail. The unfortunate thing about this is that the report about the problems is sent to the user *by mail* - sort of catch-22. The most common cause of these problems is that the definition of REC_MAIL in config.h is not correct. Either it is an invalid path or program name, or the command does not read its standard input to get the letter (for example, MMDF's `post' command wants the letter in a file). The 'inst' script will check that the REC_MAIL and INEWS programs exist, but not that they actually work. In another case, uux was not silent causing the trace file (in the aux script) to be non-empty which fooled nn to think that nothing had been sent (although it did). If you get failed reply/follow-up messages look for a line saying something like "uucp job XXXXX" - This is caused by the environment setting JOBNO=ON. In one case, the recmail program was corrupted. Also notice that some recmail programs may treat a line consisting of a single period in the first position as end-of-file. If you don't have any program which can be used as recmail, there is one possible candidate in the contrib/ directory. ACCESSING NEWS REMOTELY ----------------------- I have received the following problem description which seems to indicate a network problem. You can now set the variable retry-on-error to the number of times nn should try to open an article (you may want to do this in the global init file!): We are running on a VAXstation 2000, with the news accessed remotely, so I get a lot of "can't read" errors. It seems to me these errors should ALWAYS require acknowledgement before clearing the message, and should offer the possibility to re-try the operation (which usually then works for us). There is a similar option [-y] to nnmaster which can be set to have the nnmaster perform retries as well. GROUPS BECOME OR REMAIN EMPTY ----------------------------- It has been observed on a few occations that some groups are not collected correctly. We have seldom managed to track down the actual problem, but in practically all cases, NNTP and/or NFS has been involved, either accessing the news spool files remotely, or nnmaster updating the database on another machine, or both. It is very much recommended that nnmaster runs on the system when the database is placed, and if at all possible that this is also the system on which the news spool files are located. Furthermore, this is by far the most efficient way to run things. In any case, don't hesistate to tell me if you see this problem with release 6.4. TERMINAL I-O PROBLEMS --------------------- nn does not echo the characters you type except when you are entering a string, e.g. a file name. Instead it attempts to make a significant change to the data displayed on the screen. On a slow system this may be seen as a drawback; on fast systems it is an intended feature! If CBREAK is available, nn will use it, but when CBREAK is not avaiable nn uses raw mode when reading from the keyboard and cooked mode when printing on the screen (it flips forth and back). [This behaviour can be disabled by unsetting the flow-control variable] This has caused problems on some systems (e.g. the 3B2) where the tty driver is located on a dedicated IO-processor, which for some reason handles ioctl's "out of band". I have tried to work around these problems by outputting \r\n sequences where \n should have been sufficient. nn also intentionally discards type-ahead at certain points, but only if CBREAK mode is not supported, and the flow-control variable is set. On some systems, TCSETAF also flushes the output queue; you may try to replace it by TCSETAW followed by TCFLSH. On terminals where the arrow keys send single characters, nn will not recognize the arrow keys as arrows if they send a character which is already recognized by nn for another purpose. For example, on the wyse 50, the left arrow key sends the same code as the backspace key which is the default erase-key. Therefore, the left arrow key will be interpreted as the erase-key. (This is contrary to 6.3 where the normal function of the erase-key was - erroneously - inhibited and interpreted as the arrow key). Cnews ----- nn wants articles to contain Lines: headers, but Cnews doesn't generate these in the default setup. You may uncomment the Lines: code in the inews script. The requirement for Cnews to update the 'min' field in the active field has been removed in release 6.4. NNMASTER WILL NOT START OR IS LOOPING ------------------------------------- If no nnmaster is running, and nnmaster refuses to start up, you should check for the existence of the MPID file in the LIB directory, If it exists, it should be removed. If nnmaster starts looping, you should check the permissions on the LIB directory and notice if a GATE file exists which nnmaster is not allowed to unlink. NNMASTER DIES RANDOMLY ---------------------- The definition DETATCH_TERMINAL in the s- file you use may not work (it is a no-op on some systems). This will cause a hangup signal to be sent to the master when you logout, and that will terminate the master. This may explain why the nnmaster seems to die for no apparant reason! If nnmaster accesses news via NNTP, you should be aware of an NNTP limitation which may cause problems to the nnmaster: Groups with more than 4096 articles may cause the nntp server to crash! The easiest way to circumvent this problem is run expire on the large groups more frequently. (Thanks to Scott Hankin for this information). WARNINGS DURING COMPILATION --------------------------- If you get a syntax error when compiling the folder.c file, you probably have defined HAVE_DIRECTORY in the s- file, but even though the include file exists, it does not define the DIR type. Either get hold of a public domain directory package (look in the gnu distribution), or just undefine HAVE_DIRECTORY which causes nn to use (much slower) shell commands for file name completion (and disables the ?-help for file names). If the linker complains about not finding the function `strcspn' (which should be in most standard libraries these days), define the symbol STRCSPN in the m- file (or config.h) to use the version in regexp.c. FORMATTING THE MANUALS ---------------------- Many versions of the -man package may have problems handling the `@' characters as hanging tags (.TP). Fix your man package by substituting ALL occurrences of the @ character in tmac.an (or perhaps tmac.an.new) by a BEL (^G) character. RESIZING -------- Resizing only works with termcap (on BSD systems)! It may also work on System V, but then you will probably also have to define the symbol SYSV_RESIZING in config.h (see term.c). If resizing occurs while reading an article, the article is repositioned on the first page of the article. NNMASTER AND NN DOES NOT FIND ANY NEWS -------------------------------------- All known occurrences of this problem have been identified and fixed, or somehow "explained" as being a NFS networking problem. Be careful about the 'limit' and 'old' variables. Setting them in the init file may cause nn to behave strangely (as documented :-) THE DATABASE BECOMES CORRUPTED FOR NO APPARENT REASON ----------------------------------------------------- This has been seen on some systems in the past. - The expire problem in release 6.3 has been fixed, since the code to perform the expiration has been rewritten and optimized. No known bugs exist in this code. - Some .o files had not been recompiled by make after modifying the config.h file (this happened on SunOS 4.0 which seems to forget to update file modification times for some files (has anybody seen this before?)). 8 BIT SUPPORT ------------- I am rather embarrassed to admit that a program leaving Denmark in 1990 still does not fully support 8 bit character sets - however, that is the plain truth. Currently, all characters typed on the keyboard are stripped to 7 bits, but articles displayed on the screen can be shown either in 7 or 8 bit mode via the data-bits variable. With patch #6 installed, nn does indeed support 8 bit input if data-bits = 8. However, the positions 0x80 through 0x9f are reserved for internal use, so only the various ISO 8859/* character sets are *fully* supported, while some PC code pages may overlay some national characters with function keys. MAIL RECORDS ------------ There are some things you have to consider in connection with the mail and news record files: - When you :mail to yourself, a copy is not saved in the mail-record. - If the mail/post fails, the message is saved in ~/dead.letter instead - Since the posting is performed in the background and it may take upto a minute to complete posting an article, updating news-record will not happen instantly. - In previous releases the mail header created by nn in the record files are not recognized by the digest splitting code in nn, i.e. they always appear to contain a single article. This was fixed in release 6.3, but you may have some very old folders which nn will not be able to split (there is no From: line). OLD AWK vs. NEW AWK ------------------- Some scripts will not run with 'new awk'. If your system's `awk' is the new awk, you must define the symbol OLD_AWK to the path name of the old awk program (normally `oawk'). See s-template.h. NN ON APOLLOS ------------- Apollo's C-preprocessor may not make a working ymakefile, because it may convert leading tabs to spaces, and thus confusing make. You'll have to reconstruct the tabs somehow, e.g. using something like sed 's/^ */TAB/' < ymakefile > ... (not tested!!) Also notice that releases prior to SR10 will not handle directories with more than 1300 entries, thus giving problems if you have more than 650 groups in the database directory (d+x file). Leaving DB_DIRECTORY undefined should fix this. Patch #13 contains some patches which should allow nn to run under Domain OS (with included s-apollo.h). RUNNING nn VIA SUNLINK X.25 --------------------------- For logins via Sunlink X.25, the article selection display may be all messed up. This is because, on entry to cooked mode, Sunlink X.25 sends the screen width parameter to the PAD, and the PAD dumbly inserts CR/LF after every 80 characters of output. Not all PADs are this dumb. To fix it, insert `set noflow-control' in the global init file. Thanks to mills@ccu.umanitoba.ca (Gary Mills) for the info. OTHER PROBLEMS -------------- The 'master flags' set on a group with nnadmin are forgotten if the database is reinitialized with nnmaster -I. To set these flags permanently, you should set them in the GROUPS file.