cross
New Foswiki release 2.1.6 is available with important security fixes.
Sourceforge foswiki email lists being discontinued. Subscribe to the new Foswiki announce and discuss lists at MailingLists
This question about Installation of Foswiki: More info required

Undefined subroutine &Foswiki::Response

Software error:

Undefined subroutine &Foswiki::Response called at C:/foswiki/wwwroot/lib/Foswiki/Engine.pm line 116.
 at C:/foswiki/wwwroot/lib/Foswiki/Engine.pm line 116.
   Foswiki::Engine::prepare(Foswiki::Engine::CGI=HASH(0x2519e10)) called at C:/foswiki/wwwroot/lib/Foswiki/Engine/CGI.pm line 77
   Foswiki::Engine::CGI::run(Foswiki::Engine::CGI=HASH(0x2519e10)) called at C:\foswiki\wwwroot\bin\configure.pl line 29

Any ideas how to solve the problem?


We need a bit more context.

What web server? (Apache?) and is this a new Foswiki install, or one that is/was working? Is everything failing with this error, or just one particular URL?

If it's a new install, (or everything is working except configure), Foswiki 2.1.3 has an architectural error that prevents installation on Windows. There is a filename that is "reserved" on windows. This is fixed in 2.1.6, which we released yesterday. (It was actually fixed in 2.1.5, but there is a security issue with 2.1.5 and older)

So my suggestion is to:
  • If there is any chance that pieces of 2.1.3 were installed, please install 2.1.6. It may indeed be caused by the badly named AUX filename. Configure uses it.
  • If after that it's still failing in the same place, we need more information.

That particular line (116 in Engine.pm) is in an error handler, trying to report a prior failure, which is masked by this error. You might need to make a code change to try to figure out what's going on. Try the following patch. It should dump a different error message:

    catch Foswiki::EngineException with {
        my $e   = shift;
        require Data::Dumper;                        <== add these two lines
        print STDERR Data::Dumper::Dumper( \$e );    <===  ...  (but without these <== comments)
        my $res = $e->{response};
        unless ( defined $res ) {
            $res = new Foswiki::Response();                                  <==  This is the original line 116
            $res->header( -type => 'text/html', -status => $e->{status} );
            my $html = CGI::start_html( $e->{status} . ' Bad Request' );
            $html .= CGI::h1( {}, 'Bad Request' );
            $html .= CGI::p( {}, $e->{reason} );
            $html .= CGI::end_html();
            $res->print($html);
        }

-- Main.GeorgeClark - 03 Mar 2018 - 16:01

 

QuestionForm edit

Subject Installation of Foswiki
Extension
Version Foswiki 2.1.2
Status More info required
Related Topics
Topic revision: r3 - 03 Mar 2018, GeorgeClark - This page was cached on 23 Mar 2018 - 05:15.

The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License