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/ line 116.
 at C:/foswiki/wwwroot/lib/Foswiki/ line 116.
   Foswiki::Engine::prepare(Foswiki::Engine::CGI=HASH(0x2519e10)) called at C:/foswiki/wwwroot/lib/Foswiki/Engine/ line 77
   Foswiki::Engine::CGI::run(Foswiki::Engine::CGI=HASH(0x2519e10)) called at C:\foswiki\wwwroot\bin\ 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 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();

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


QuestionForm edit

Subject Installation of Foswiki
Version Foswiki 2.1.2
Status More info required
Related Topics
Topic revision: r3 - 03 Mar 2018, GeorgeClark - This page was cached on 18 Mar 2019 - 16:56.

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