Bizarre problem: "Invalid method in request"

I’m trying to set up a fresh RT instance and everything seems to have gone
smoothly but when I try to log in to the system for the first time I get
"Invalid method in request".

This seems to be indicating that Apache is seeing the form fields in place of
the POST method. Except a proper post appears in the logs first, so it seems
like something is performing a subrequest but munging the fields badly first.

There are other things configured on the web server, including another
mod_perl site, so conceivably it’s something else interfereing with Mason. But
there’s nothing terribly complex. Notably, there’s no use of mod_rewrite
anywhere.

Does anyone have any clue what could be going on here?
I’m at a loss.

Here are the logs

10.4.0.2 - - [23/Aug/2004:15:40:16 -0400] “GET /rt/ HTTP/1.1” 200 3192
10.4.0.2 - - [23/Aug/2004:15:40:16 -0400] “GET /rt/NoAuth/webrt.css HTTP/1.1” 200 7172
10.4.0.2 - - [23/Aug/2004:15:40:16 -0400] “GET /rt/NoAuth/images//bplogo.gif HTTP/1.1” 200 825
10.4.0.2 - - [23/Aug/2004:15:40:19 -0400] “GET /rt/NoAuth/webrt.css HTTP/1.1” 200 7172
10.4.0.2 - - [23/Aug/2004:15:40:19 -0400] “POST /rt/index.html HTTP/1.1” 200 3194
10.4.0.2 - - [23/Aug/2004:15:40:35 -0400] “user=root&pass=password” 501 - “-” “-”

[Mon Aug 23 15:40:35 2004] [error] [client 10.4.0.2] Invalid method in request user=root&pass=password
[Mon Aug 23 15:40:35 2004] [error] [client 10.4.0.2] Invalid method in request user=root&pass=password

This is with the Debian request-tracker3.2 package. I’ve tried with the
request-tracker3 package and I see no similar bug reports against these
packages.

bash-2.05b# apache -V
Server version: Apache/1.3.31 (Debian GNU/Linux)
Server built: Aug 1 2004 08:44:19
Server’s Module Magic Number: 19990320:16
Server compiled with…
-D EAPI
-D HAVE_MMAP
-D HAVE_SHMGET
-D USE_SHMGET_SCOREBOARD
-D USE_MMAP_FILES
-D HAVE_FCNTL_SERIALIZED_ACCEPT
-D HAVE_SYSVSEM_SERIALIZED_ACCEPT
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D DYNAMIC_MODULE_LIMIT=64
-D HARD_SERVER_LIMIT=4096
-D HTTPD_ROOT="/usr"
-D SUEXEC_BIN="/usr/lib/apache/suexec"
-D DEFAULT_PIDLOG="/var/run/apache.pid"
-D DEFAULT_SCOREBOARD="/var/run/apache.scoreboard"
-D DEFAULT_LOCKFILE="/var/run/apache.lock"
-D DEFAULT_ERRORLOG="/var/log/apache/error.log"
-D TYPES_CONFIG_FILE="/etc/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache/httpd.conf"
-D ACCESS_CONFIG_FILE="/etc/apache/access.conf"
-D RESOURCE_CONFIG_FILE="/etc/apache/srm.conf"

The apache config for this virtual server is:

<VirtualHost *>
DocumentRoot /usr/share/request-tracker3.2/html/
ServerName rt.xeocode.com

ErrorLog /var/log/request-tracker3.2/error.log
CustomLog /var/log/request-tracker3.2/access.log common
Include "/etc/request-tracker3.2/apache-modperl.conf"

The above mentioned include file is:

Include this file with:

Include /etc/request-tracker3.2/apache-modperl.conf

into your Apache configuration file, either in the non-virtual

section or into a virtual host section

AddDefaultCharset UTF-8
PerlRequire /usr/share/request-tracker3.2/libexec/webmux.pl

PerlModule Apache::DBI
PerlFreshRestart Off

Alias /rt /usr/share/request-tracker3.2/html

We need this to prevent requests for images being sent through to

the RT::Mason handler.

<Directory /usr/share/request-tracker3.2/html/NoAuth/images>
SetHandler default-handler

<Directory /usr/share/request-tracker3.2/html>
SetHandler perl-script
PerlHandler RT::Mason

The RT_SiteConfig.pm:

RT_SiteConfig.pm

These are the bits you absolutely must edit.

To find out how, please read

/usr/share/doc/request-tracker3.2/INSTALL.Debian

THE BASICS:

Set($rtname, ‘rt.xeocode.com’);
Set($Organization, ‘xeocode.com’);

Set($CorrespondAddress , ‘rt@xeocode.com’);
Set($CommentAddress , ‘rt-comment@xeocode.com’);

Set($Timezone , ‘America/Montreal’); # obviously choose what suits you

THE DATABASE:

Set($DatabaseType, ‘Pg’); # e.g. Pg or mysql

These are the settings we used above when creating the RT database,

you MUST set these to what you chose in the section above.

Set($DatabaseUser , ‘rt’);
Set($DatabasePassword , ‘rt’);
Set($DatabaseName , ‘rt’);

THE WEBSERVER:

Set($WebPath , “/”);
Set($WebBaseURL , “http://rt.xeocode.com”);

1;

greg