troubleshooting.rst 8.33 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235


.. _troubleshooting:

===============
Troubleshooting
===============

This section gives solutions to common Bugzilla installation
problems. If none of the section headings seems to match your
problem, read the general advice.

.. _general-advice:

General Advice
##############

If you can't get :file:`checksetup.pl` to run to
completion, it normally explains what's wrong and how to fix it.
If you can't work it out, or if it's being uncommunicative, post
the errors in the
`mozilla.support.bugzilla <news://news.mozilla.org/mozilla.support.bugzilla>`_
newsgroup.

If you have made it all the way through
:ref:`installation` (Installation) and
:ref:`configuration` (Configuration) but accessing the Bugzilla
URL doesn't work, the first thing to do is to check your web server error
log. For Apache, this is often located at
:file:`/etc/logs/httpd/error_log`. The error messages
you see may be self-explanatory enough to enable you to diagnose and
fix the problem. If not, see below for some commonly-encountered
errors. If that doesn't help, post the errors to the newsgroup.

Bugzilla can also log all user-based errors (and many code-based errors)
that occur, without polluting the web server's error log.  To enable
Bugzilla error logging, create a file that Bugzilla can write to, named
:file:`errorlog`, in the Bugzilla :file:`data`
directory.  Errors will be logged as they occur, and will include the type
of the error, the IP address and username (if available) of the user who
triggered the error, and the values of all environment variables; if a
form was being submitted, the data in the form will also be included.
To disable error logging, delete or rename the
:file:`errorlog` file.

.. _trbl-testserver:

The Apache web server is not serving Bugzilla pages
###################################################

After you have run :command:`checksetup.pl` twice,
run :command:`testserver.pl http://yoursite.yourdomain/yoururl`
to confirm that your web server is configured properly for
Bugzilla.

::

    bash$ ./testserver.pl http://landfill.bugzilla.org/bugzilla-tip
    TEST-OK Webserver is running under group id in $webservergroup.
    TEST-OK Got ant picture.
    TEST-OK Webserver is executing CGIs.
    TEST-OK Webserver is preventing fetch of http://landfill.bugzilla.org/bugzilla-tip/localconfig.

.. _trbl-perlmodule:

I installed a Perl module, but :file:`checksetup.pl` claims it's not installed!
###############################################################################

This could be caused by one of two things:

#. You have two versions of Perl on your machine. You are installing
   modules into one, and Bugzilla is using the other. Rerun the CPAN
   commands (or manual compile) using the full path to Perl from the
   top of :file:`checksetup.pl`. This will make sure you
   are installing the modules in the right place.

#. The permissions on your library directories are set incorrectly.
   They must, at the very least, be readable by the web server user or
   group. It is recommended that they be world readable.

.. _trbl-dbdSponge:

DBD::Sponge::db prepare failed
##############################

The following error message may appear due to a bug in DBD::mysql
(over which the Bugzilla team have no control):

::

    DBD::Sponge::db prepare failed: Cannot determine NUM_OF_FIELDS at D:/Perl/site/lib/DBD/mysql.pm line 248.
    SV = NULL(0x0) at 0x20fc444
    REFCNT = 1
    FLAGS = (PADBUSY,PADMY)

To fix this, go to
:file:`<path-to-perl>/lib/DBD/sponge.pm`
in your Perl installation and replace

::

    my $numFields;
    if ($attribs->{'NUM_OF_FIELDS'}) {
    $numFields = $attribs->{'NUM_OF_FIELDS'};
    } elsif ($attribs->{'NAME'}) {
    $numFields = @{$attribs->{NAME}};

with

::

    my $numFields;
    if ($attribs->{'NUM_OF_FIELDS'}) {
    $numFields = $attribs->{'NUM_OF_FIELDS'};
    } elsif ($attribs->{'NAMES'}) {
    $numFields = @{$attribs->{NAMES}};

(note the S added to NAME.)

.. _paranoid-security:

cannot chdir(/var/spool/mqueue)
###############################

If you are installing Bugzilla on SuSE Linux, or some other
distributions with ``paranoid`` security options, it is
possible that the checksetup.pl script may fail with the error:
::

    cannot chdir(/var/spool/mqueue): Permission denied

This is because your :file:`/var/spool/mqueue`
directory has a mode of ``drwx------``.
Type :command:`chmod 755 :file:`/var/spool/mqueue``
as root to fix this problem. This will allow any process running on your
machine the ability to *read* the
:file:`/var/spool/mqueue` directory.

.. _trbl-relogin-everyone:

Everybody is constantly being forced to relogin
###############################################

The most-likely cause is that the ``cookiepath`` parameter
is not set correctly in the Bugzilla configuration.  You can change this (if
you're a Bugzilla administrator) from the editparams.cgi page via the web interface.

The value of the cookiepath parameter should be the actual directory
containing your Bugzilla installation, *as seen by the end-user's
web browser*. Leading and trailing slashes are mandatory. You can
also set the cookiepath to any directory which is a parent of the Bugzilla
directory (such as '/', the root directory). But you can't put something
that isn't at least a partial match or it won't work. What you're actually
doing is restricting the end-user's browser to sending the cookies back only
to that directory.

How do you know if you want your specific Bugzilla directory or the
whole site?

If you have only one Bugzilla running on the server, and you don't
mind having other applications on the same server with it being able to see
the cookies (you might be doing this on purpose if you have other things on
your site that share authentication with Bugzilla), then you'll want to have
the cookiepath set to "/", or to a sufficiently-high enough directory that
all of the involved apps can see the cookies.

.. _trbl-relogin-everyone-share:

Examples of urlbase/cookiepath pairs for sharing login cookies
==============================================================

|    urlbase is http://bugzilla.mozilla.org/
|    cookiepath is /


|    urlbase is http://tools.mysite.tld/bugzilla/
|    but you have http://tools.mysite.tld/someotherapp/ which shares
|    authentication with your Bugzilla
|
|    cookiepath is /

On the other hand, if you have more than one Bugzilla running on the
server (some people do - we do on landfill) then you need to have the
cookiepath restricted enough so that the different Bugzillas don't
confuse their cookies with one another.

.. _trbl-relogin-everyone-restrict:

Examples of urlbase/cookiepath pairs to restrict the login cookie
=================================================================

|    urlbase is http://landfill.bugzilla.org/bugzilla-tip/
|    cookiepath is /bugzilla-tip/

|    urlbase is http://landfill.bugzilla.org/bugzilla-4.0-branch/
|    cookiepath is /bugzilla-4.0-branch/

If you had cookiepath set to ``/`` at any point in the
past and need to set it to something more restrictive
(i.e. ``/bugzilla/``), you can safely do this without
requiring users to delete their Bugzilla-related cookies in their
browser (this is true starting with Bugzilla 2.18 and Bugzilla 2.16.5).

.. _trbl-index:

:file:`index.cgi` doesn't show up unless specified in the URL
#############################################################

You probably need to set up your web server in such a way that it
will serve the index.cgi page as an index page.

If you are using Apache, you can do this by adding
:file:`index.cgi` to the end of the
``DirectoryIndex`` line
as mentioned in :ref:`http-apache`.

.. _trbl-passwd-encryption:

checksetup.pl reports "Client does not support authentication protocol requested by server..."
##############################################################################################

This error is occurring because you are using the new password
encryption that comes with MySQL 4.1, while your
:file:`DBD::mysql` module was compiled against an
older version of MySQL. If you recompile :file:`DBD::mysql`
against the current MySQL libraries (or just obtain a newer version
of this module) then the error may go away.

If that does not fix the problem, or if you cannot recompile the
existing module (e.g. you're running Windows) and/or don't want to
replace it (e.g. you want to keep using a packaged version), then a
workaround is available from the MySQL docs:
`<http://dev.mysql.com/doc/mysql/en/Old_client.html>`_