=head1 NAME User Help =head1 Description This chapter is for those needing help using mod_perl and related software. There is a parallel L document written mainly for mod_perl core developers, but may be found useful to non-core problems as well. =head1 Reporting Problems Whenever you want to report a bug or a problem remember that in order to help you, you need to provide us the information about the software that you are using and other relevant details. Please follow the instructions in the following sections when reporting problems. B to understand is that you should try hard to provide B the information that may assist to understand and reproduce the problem. When you prepare a bug report, put yourself in the position of a person who is going to try to help you, realizing that a guess-work on behalf of that helpful person, more often doesn't work than it does. Unfortunately most people don't realize that, and it takes several emails to squeeze the needed details from the person reporting the bug, a process which may drag for days. =head2 Wrong Apache/mod_perl combination First of all: Apache 2.0 doesn't work with mod_perl 1.0. Apache 1.0 doesn't work with mod_perl 2.0. So if you aren't using Apache 2.x with mod_perl 2.0 please do not send any bug reports. META: mod_perl-1.99_xx is mod_perl 2.0 to-be. =head2 Using the Wrong Compiler To build mod_perl, you B also use the same compiler that Perl was built with. You can find that out by running C and looking at the C section. If you have used a different compiler and have encountered problems (which most likely will be the case) recompile Perl with the same compiler and then recompile mod_perl again. =head2 Before Posting a Report Before you post the report, make sure that you've checked the I file (t/logs/error_log in case of the failing test suite). Usually the errors are self-descriptive and if you remember to always check this file whenever you have a problem, chances are that you won't need to ask for help. =head2 Test with the Latest mod_perl 2.0 Version If you are using an older version than the most recently released one, chances are that a bug that you are about to report has already been fixed. If possible, save us and yourself time and try first to upgrade to L, and only if the bug persists report it. Reviewing the Changes file may help as well. Here is the Changes file of the most recenly released version: http://apache.org/dist/perl/mod_perl-2.0-current/Changes . If the problem persists with the latest version, you may also want to try to reproduce the problem with L. It's possible that the problem was resolved since the last release has been made. Of course if this version solves the problem, don't rush to put it in production unless you know what you are doing. Instead ask the developers when the new version will be released. =head2 Use a Proper Subject Make sure to include a good subject like explaining the problem in a few words. Also please mention that this a problem with mod_perl 2.0 and not mod_perl 1.0. Here is an example of a good subject: Subject: [mp2] protocol module doesn't work with filters This is especially important now that we support mod_perl versions 1.0 and 2.0 on the same list. =head2 Send the Report Inlined When sending the bug report, please inline it and don't attach it to the email. It's hard following up on the attachments. =head2 Important Information Whenever you send a bug report make sure to include the information about your system. =over =item * If you haven't yet installed mod_perl and/or you are having problems with the test suite -- you should do: % cd modperl-2.0 % t/REPORT > mybugreport where C is the source directory where mod_perl was built. The C utility is autogenerated when C is run, so you should have it already after building mod_perl. =item * If you have already installed mod_perl and are having problems with things unrelated to the the test suite -- you should do: % mp2bug > mybugreport C should have been installed at the same time mod_perl 2.0 was installed. If for some reason you can't find it, you can alternatively run the following command, which does the same: % perl -MApache2 -MApache::TestReportPerl \ -le 'Apache::TestReportPerl->new->run' > mybugreport =back Please post the report (F) B in the text of your message, and not as an attachment! Now add L to the report and send it to the L. =head2 Problem Description If the problem is with the mod_perl distribution test suite, refer to the L<'make test' Failures|/_C_make_test___Failures> section. If the problem incurs with your own code, please try to reduce the code to the very minimum and include it in the bug report. Remember that if you include a long code, chances that somebody will look at it are low. If the problem is with some CPAN module, just provide its name. Also remember to include the relevant part of I and of I if applicable. Don't include whole files, only the parts that should aid to understand and reproduce the problem. Finally don't forget to copy-n-paste (not type!) the B part of the I file (not the whole file!). To further increase the chances that bugs your code exposes will be investigated, try using C> to create a self-contained test that core developers can easily run. To get you started, an C bug skeleton has been created: http://perl.apache.org/~geoff/bug-reporting-skeleton-mp2.tar.gz Detailed instructions are contained within the C file in that distribution. Finally, if you get a segfault with or without a core dump, refer to the L section. =head2 'C' Failures If when running C some of the tests fail, please re-run them in the verbose mode and post the output of that run and the contents of the F file to the list. Please B the F file from C that runs a complete test suite, as it contains a lot of irrelevant information. For example if 'C' reports: Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------ compat/apache_util.t 15 1 6.67% 13 modperl/pnotes.t 5 1 20% 2 Do the following: % cd modperl-2.0.xx % make test TEST_VERBOSE=1 \ TEST_FILES="compat/apache_util.t modperl/pnotes.t" or use an alternative way: % cd modperl-2.0.xx % t/TEST -clean % t/TEST -verbose compat/apache_util.t modperl/pnotes.t In the latter approach, C cleans things up before starting a new test. Make sure that you don't forget to run it, before running the individual tests. Now post to the mailing list the output of the individual tests running and the contents of F. Also please notice that there is more than one C being run. The first one is running at the top directory, the second in a sub-directory F. The first logs errors to F, the second too, but relative to F. Therefore if you get failures in the second run, make sure to C to that directory before you look at the I file and re-run tests in the verbose mode. For example: % cd modperl-2.0.xx/ModPerl-Registry % t/TEST -clean % t/TEST -verbose closure.t At the moment the second test suite is not run if the first one fails. =head2 Resolving Segmentation Faults If during C or the use of mod_perl you get a segmentation fault you should send to the list a stack backtrace. L explains how to get the core file and extract this backtrace. Once a proper stack backtrace is obtained append it to the bug report as explained in the previous section. =head2 Please Ask Only Questions Related to mod_perl If you have general Apache questions, please refer to: http://httpd.apache.org/lists.html. If you have general Perl questions, please refer to: http://lists.perl.org/. For other remotely related to mod_perl questions see the references to L. Finally, if you are not familiar with the modperl list etiquette, please refer to the mod_perl mailing lists' L before posting. =head1 Help on Related Topics When developing with mod_perl, you often find yourself having questions regarding other projects and topics like Apache, Perl, SQL, etc. L will help you find the right resource where you can find the answers to your questions. =head1 Maintainers Maintainer is the person(s) you should contact with updates, corrections and patches. =over =item * Stas Bekman =back =head1 Authors =over =item * Stas Bekman =back Only the major authors are listed above. For contributors see the Changes file. =cut