Source: Miscellaneous Bugs

This page is for reporting and commenting on bugs in the HyperNews software that don't fit anywhere else. If the bug relates to some aspect of HyperNews that already has a page, add it there instead of here. Here are a few of those pages - others are listed further down:

This page also describes the major known bugs, how to report bugs, and how to do some debugging yourself general problems that can occur.

How to Report Bugs

Whenever you are reporting a bug, be sure to specify the following information:

Debugging on Your Own

There are a few simple things I do to debug HyperNews that may be useful for you as well. First of all, you should understand a bit about the overall flow of control for CGI programs.
  1. When you make a HyperNews request, say a 'get' request, the corresponding script is looked up by the server, any server-based access control is enforced, and then the script is executed. You may get an error during this phase; either the script can't be found or the access control is keeping you out.

  2. If the script is executed and has a syntax error, you will get a server error because the script will not be able to return the proper CGI headers. Look in your server error log for hints.

  3. If the script can begin execution, any error that occurs thereafter is caught by HyperNews and returned to the browser with a trace of where in the program the error occurred. Sometimes the error is generated explicitly by HyperNews, when it calls HNError. Other times, a Perl execution error occurs.

  4. But the report of an error is sometimes not sufficient for figuring out why there is an error and what to do about it. Or there might be no error message returned, but the output is still incorrect. In that case, you can display more debugging output by adding calls to HNMsg. It takes one argument which is a string. Perl lets you include variable values in the string very easily, however. For example,

      &HNMsg("\$hndocs is '$hndocs'");
    
    will print out "$hndocs is '/usr/local/etc/httpd/htdocs/hn'" on its own line. Another useful routine is printAssoc which takes an associative array, or 'hash table' in Perl terms. For example,

      &printAssoc("URC 1", %urc);
    
    will print out a table of all the keys and values in the %urc table. I often use the $debug variable to enable and disable whole bunches of debugging output.

      local $debug = 1;
    
      &printAssoc("URC1", %urc) if $debug;
    
    Then you can just turn off the debugging later by changing the "1" to "0".

  5. Both HNMsg and printAssoc will force the output of a proper CGI header if one has not been put out already. One special case is if a redirection is returned with a "Location" header. In that case, there is normally nothing but that header, and if you output the debugging info before the Location header, then the redirection will not actually happen, but you can then see where the redirection would take you because it shows up in the output as "Location: http://wherever".

  6. There are some special debugging aids in other situations. If you are debugging mail-incoming.pl, there is a special file created to hold the debugging output. See the mail-incoming.pl source for the details. Similarly for the other "batch-*" commands.

General Problems

Errors can occur for several reasons, sometimes beyond our control. These are listed in the order in which you might discover them.
Server Problems
Different servers do different things regarding security and CGI.
Basic Authentication limited
Use of the built-in security mechanisms for basic authentication works with NCSA's httpd and should work with the CERN server, some versions of Netsite, and possibly other servers. Try manual security if it fails for you.

We have to work around limitations in the httpd server, such as a limited number of users per group. In general, we seem to be erring on the side of being too restrictive these days. Please let us know if you have problems.

Perl 5
We are dependent on Perl 5 now. Syntax errors you may get are probably due to accidently using Perl 4.

Perl 5.000 and 5.001 have problems and should be avoided. (In particular, adding a member loses several members, for some reason.) Also usable are 5.001m (but not n), 5.003, or 5.004.

Missing Libraries
Unable to find libraries at all, due to a perl installation problem. The first thing you might notice missing is flush.pl. Talk with your sys admin.

Socket problems
The http.pl script uses socket connections to fetch documents. With Perl 5, we are using Socket.pm, but that has problems for some installations. You may want to try sys/socket.ph instead.

A HyperNews configuration problem
Let us know if there is a confusion in documents as to what you are supposed to do when installing HyperNews, or bugs in the actual process.

A file or directory permission problem
The directories such as $hndocs must be writable by the process that runs your httpd.

Indentation Wrong
Some browsers do not display the message outline with the correct indentation. There is a workaround in version 1.8 that works for more browsers. IBM WebExplorer still doesn't indent the nested <DL> lists.

Form entry fields are too narrow
See Some fonts cause too narrow form fields

sendmail failures
On some systems, errors when using sendmail interfere with HyperNews. The effect might be that you get an error messages when you submit, but your message is actually added anyway. One fix is to always use the -oeq option on sendmail, which means ignore errors.

Please don't respond on this page for anything that is not related to HyperNews bugs. If it is difficult to tell whether something is a bug or if instead you are just using it wrong, then it is at least a bug in the user instructions or installation instructions, assuming you've read them . In any case, try to find out if someone else has reported the bug already.