Dear Dominic, > ... how to reproduce the problem?
I had been using request-tracker3.8 with Debian squeeze. When upgrading to wheezy, found that request-tracker4 "did not work", so kept using the old 3.8. A few days ago I attempted to complete the upgrade. Seeing how things (with the request-tracker4 package in wheezy) still did not work, I installed request-tracker4 from wheezy-backports, so now have: root@prt# dpkg -l | grep request-tracker ii request-tracker3.8 3.8.8-7+squeeze8 all extensible trouble-ticket tracking system ii request-tracker4 4.0.19-1~bpo70+1 all extensible trouble-ticket tracking system ii rt3.8-apache2 3.8.8-7+squeeze8 all Apache 2 specific files for request-tracker3.8 ii rt3.8-clients 3.8.8-7+squeeze8 all mail gateway and command-line interface to request-tracker3.8 ii rt3.8-db-sqlite 3.8.8-7+squeeze8 all SQLite database backend for request-tracker3.8 ii rt4-apache2 4.0.19-1~bpo70+1 all Apache 2 specific files for request-tracker4 ii rt4-clients 4.0.19-1~bpo70+1 all mail gateway and command-line interface to request-tracker4 ii rt4-db-postgresql 4.0.19-1~bpo70+1 all PostgreSQL database backend for request-tracker4 I believe that my installation of RT4 is "pristine", unchanged. The contents of some RT config files shown below (with the db password blanked out). (An aside: I use a postgres database with RT, do not quite understand how my request-tracker3.8 ever worked with rt3.8-db-sqlite; or if that package is not used, then why is it a dependency. When upgrading to wheezy, I installed rt4-db-postgresql instead, hoping it being more appropriate.) I use modperl2 so now have: root@prt# ls -ld /etc/apa*/*/requ* lrwxrwxrwx 1 root root 43 Sep 3 21:00 /etc/apache2/conf.d/request-tracker4 -> /etc/request-tracker4/apache2-modperl2.conf (had a similar symlink for 3.8, now deleted and replaced by the one above). Having restarted apache with command root@prt# /etc/init.d/apache2 restart and trying to access my RT via its web interface, I got a status 500 server error, showing in /var/log/apache2/access.log : siv.maths.usyd.edu.au - - [03/Sep/2014:06:33:49 +1000] "GET /rt/ HTTP/1.0" 500 818 "-" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" and in /var/log/apache2/error.log : [Wed Sep 03 06:33:49 2014] [error] [client 129.78.69.160] Undefined subroutine CGI::PSGI::delete\n at /usr/share/perl5/HTML/Mason/PSGIHandler/Streamy.pm line 15\n Adding a definition for "sub delete" into PSGI.pm, things worked better. Found that I needed to change from "SUPER::$method" to "CGI::$method" to avoid errors like: [Wed Sep 03 09:42:39 2014] [error] [client 129.78.69.160] Undefined subroutine CGI::PSGI::SUPER::delete\n at /usr/share/perl5/HTML/Mason/PSGIHandler/Streamy.pm line 15\n, referer: http://www.maths.usyd.edu.au/rt/Search/Results.html?Order=ASC%7CASC%7CASC%7CASC&Query=%20Queue%20%3D%20%27Support%27%20AND%20Status%20!%3D%20%27resolved%27&Rows=50&OrderBy=id%7C%7C%7C&Page=1&Format=%27%20%20%20%3Cb%3E%3Ca%20href%3D%22%2Frt%2FTicket%2FDisplay.html%3Fid%3D__id__%22%3E__id__%3C%2Fa%3E%3C%2Fb%3E%2FTITLE%3A%23%27%2C%0A%27%3Cb%3E%3Ca%20href%3D%22%2Frt%2FTicket%2FDisplay.html%3Fid%3D__id__%22%3E__Subject__%3C%2Fa%3E%3C%2Fb%3E%2FTITLE%3ASubject%27%2C%0A%27__Status__%27%2C%0A%27__QueueName__%27%2C%0A%27__OwnerName__%27%2C%0A%27__Priority__%27%2C%0A%27__NEWLINE__%27%2C%0A%27%27%2C%0A%27%3Csmall%3E__Requestors__%3C%2Fsmall%3E%27%2C%0A%27%3Csmall%3E__CreatedRelative__%3C%2Fsmall%3E%27%2C%0A%27%3Csmall%3E__ToldRelative__%3C%2Fsmall%3E%27%2C%0A%27%3Csmall%3E__LastUpdatedRelative__%3C%2Fsmall%3E%! 27%2C%0A%27%3Csmall%3E__TimeLeft__%3C%2Fsmall%3E%27 [Wed Sep 03 10:34:55 2014] [error] [client 129.78.69.160] Undefined subroutine CGI::PSGI::SUPER::request_method\n at /usr/share/perl5/HTML/Mason/FakeApache.pm line 309\n, referer: http://www.maths.usyd.edu.au/rt/Ticket/Display.html?id=6272 Using various features of RT, I found that I needed to add more subroutine definitions. With the version of PSGI.pm as per my previous email, RT seems to work well. Hope this will allow you to reproduce the problem. Please let me know if you need some further detail, or if you want me to do some experiment. Cheers, Paul Paul Szabo p...@maths.usyd.edu.au http://www.maths.usyd.edu.au/u/psz/ School of Mathematics and Statistics University of Sydney Australia :::::::::::::: /etc/request-tracker4/RT_SiteModules.pm :::::::::::::: 1; :::::::::::::: /etc/request-tracker4/RT_SiteConfig.pm :::::::::::::: # This file was generated by running "update-rt-siteconfig-4". # # While local modifications will not be overwritten without permission, # it is recommended the they are instead placed in # /etc/request-tracker4/RT_SiteConfig.d # # Note that modifications to the RT_SiteConfig.d directory won't # take effect until the update command mentioned above is run again. # start /etc/request-tracker4/RT_SiteConfig.d/00-sms-stuff # REMEMBER: run command # update-rt-siteconfig-4 # (to rebuild /etc/request-tracker4/RT_SiteConfig.pm) # and restart Apache with # /etc/init.d/apache2 restart # if you modify this file, or any others in this directory. # # The files # -rw------- /etc/request-tracker4/RT_SiteConfig.d/50-debconf # -rw------- /etc/request-tracker4/RT_SiteConfig.d/51-dbconfig-common # -rw------- /etc/request-tracker4/RT_SiteConfig.pm # are root-access-only. RT running as www-data cannot possibly read them. # How does it get any configs, then? # The line # PerlRequire /usr/share/request-tracker3.8/libexec/webmux.pl # as started from # /etc/apache2/conf.d/request-tracker4 -> /etc/request-tracker4/apache2-modperl2.conf # is run as root (more than once!) at Apache startup. I guess that it # keeps settings in memory. Cannot see settings saved in files anywhere, # not even in /var/cache/request-tracker3.8/mason_data/obj/ . Set($OwnerEmail , 'psz'); Set($MaxAttachmentSize , 32 * 1024); # was 10000000 Set($TruncateLongAttachments , 1); # Do not seem to need at request-tracker3.8: ## But we want images to be fetched without specifying server for use through siv: # Set($WebImagesURL , $WebPath . "/NoAuth/images/"); # At request-tracker4, need to specially enable search on ticket Content, # see: http://blog.bestpractical.com/2011/06/full-text-searching.html Set(%FullTextSearch, Enable => 1, Indexed => 0 ); # end /etc/request-tracker4/RT_SiteConfig.d/00-sms-stuff # start /etc/request-tracker4/RT_SiteConfig.d/40-timezone # dynamically find out the current timezone my $zone = "UTC"; $zone=`/bin/cat /etc/timezone` if -f "/etc/timezone"; chomp $zone; Set($Timezone, $zone); # end /etc/request-tracker4/RT_SiteConfig.d/40-timezone # start /etc/request-tracker4/RT_SiteConfig.d/50-debconf # THE BASICS: Set($rtname, 'SMSsup'); Set($Organization, 'maths.usyd.edu.au'); Set($CorrespondAddress , 'r...@maths.usyd.edu.au'); Set($CommentAddress , 'rt-comm...@maths.usyd.edu.au'); # THE WEBSERVER: Set($WebPath , "/rt"); Set($WebBaseURL , "http://www.maths.usyd.edu.au"); Set($WebDomain , "www.maths.usyd.edu.au"); # end /etc/request-tracker4/RT_SiteConfig.d/50-debconf # start /etc/request-tracker4/RT_SiteConfig.d/51-dbconfig-common # THE DATABASE: # generated by dbconfig-common # map from dbconfig-common database types to their names as known by RT my %typemap = ( mysql => 'mysql', pgsql => 'Pg', sqlite3 => 'SQLite', ); Set($DatabaseType, $typemap{pgsql} || "UNKNOWN"); Set($DatabaseHost, 'localhost'); #Set($DatabasePort, ''); Set($DatabaseUser , 'rtuser'); Set($DatabasePassword , 'BLANK'); # SQLite needs a special case, since $DatabaseName must be a full pathname my $dbc_dbname = 'rtdb'; if ( "" eq "sqlite3" ) { Set ($DatabaseName, '' . '/' . $dbc_dbname); } else { Set ($DatabaseName, $dbc_dbname); } # end /etc/request-tracker4/RT_SiteConfig.d/51-dbconfig-common 1; :::::::::::::: /etc/request-tracker4/apache2-modperl2.conf :::::::::::::: # To use RT together with mod_perl2, available in the # libapache2-mod-perl2 package, include this file with: # # Include /etc/request-tracker4/apache2-modperl2.conf # # into your Apache configuration file, in a virtual host section. # You will need to enable the Apache modules: perl, actions # # The best place for this in the Debian Apache2 default situation is # near the end of the VirtualHost section in the file # /etc/apache2/sites-available/default. # You might want to enable this line # AddDefaultCharset UTF-8 PerlSetEnv RT_SITE_CONFIG /etc/request-tracker4/RT_SiteConfig.pm # You might need to alter references to /rt in this file (there are # three) to match whatever base URL you are using for your RT site Alias /rt /usr/share/request-tracker4/html <Location /rt> SetHandler modperl PerlResponseHandler Plack::Handler::Apache2 PerlSetVar psgi_app /usr/share/request-tracker4/libexec/rt-server </Location> # Limit mail gateway access to localhost by default # PSz Add prt itself, or mail to support fails with # client denied by server configuration: /usr/share/request-tracker4/html/REST/1.0/NoAuth/mail-gateway # in /var/log/apache2/error.log # Older comment: ### PSz 29 Apr 09: This /rt/REST/1.0/NoAuth limitation is new at lenny ### (was not present before, is default at lenny). ### Need to allow prt also, our /usr/bin/rt-mailgate connects like that: ### could not we change the .forward files e.g. ~rt/.forward to contain ### --url http://localhost/rt/ ### instead of prt.pc? <Location /rt/REST/1.0/NoAuth> <IfVersion >= 2.3> Require local prt.pc.maths.usyd.edu.au </IfVersion> <IfVersion < 2.3> Order Allow,Deny Allow from 127.0.0.1 prt.pc.maths.usyd.edu.au </IfVersion> </Location> <Perl> use Plack::Handler::Apache2; Plack::Handler::Apache2->preload("/usr/share/request-tracker4/libexec/rt-server"); </Perl> -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org