Loading ...
Sorry, an error occurred while loading the content.

RE: [soaplite] unexpected EOF

Expand Messages
  • Eric Baller
    Actually, it doesn t look like I have to worry about mod_perl. The web server doesn t list it, but responds as follows: Server: Apache/1.3.20 (Unix)
    Message 1 of 10 , Nov 28, 2001
    • 0 Attachment
      Actually, it doesn't look like I have to worry about mod_perl. The web
      server doesn't list it, but responds as follows:

      Server: Apache/1.3.20 (Unix) ApacheJServ/1.1.2 PHP/4.0.4pl1
      FrontPage/5.0.2.2510 Rewrit/1.1a
      X-Powered-By: PHP/4.0.4pl1

      I've tried to make sure it wasn't anything fancy I was doing, so I've worked
      my way down to some server side code taken from one of your examples (which
      were very helpful, by the way):
      --------- hi.cgi ----------
      #!/usr/bin/perl -Tw

      use lib '/home/eballer/lib';
      use SOAP::Transport::HTTP;

      SOAP::Transport::HTTP::CGI
      -> dispatch_to('Demo')
      -> handle;

      package Demo;

      sub HelloWorld {
      return "Hello, world";
      }

      1;
      ------------------------------

      and the client code is:
      -------- hibye.pl ---------
      #!/usr/bin/perl -Tw

      use SOAP::Lite;

      my $s1=SOAP::Lite
      ->uri('Demo')
      ->proxy('http://localhost/cgi-bin/soap/hi.cgi');

      my $result = $s1->HelloWorld();

      unless ($result->fault) {
      print $result->result();
      } else {
      print join ', ',
      $result->faultcode,
      $result->faultstring;
      }
      ---------------------------

      That works fine on my local machine. Then I try replacing "localhost" with
      the web URL, I get the following error from the client:

      500 unexpected EOF before status line seen
      at ./hi.pl line 9

      On the server, I get an access log entry which looks like:
      ..."POST /cgi-bin/soap/hi.cgi HTTP/1.0" 200 - "-" "SOAP::Lite/Perl/0.51"

      Does that help more?

      Thanks!

      -----Original Message-----
      From: Paul Kulchenko [mailto:paulclinger@...]
      Sent: Wednesday, November 28, 2001 1:23 AM
      To: Eric Baller; soaplite@yahoogroups.com
      Subject: Re: [soaplite] unexpected EOF


      Hi, Eric!

      If you configuration is similar to discussed one (apache+mod_perl)
      first thing you may try is to disable XML::Parser and use only
      XML::Parser::Lite. You shouldn't have such problem in this case. You
      need to specify in your script:

      use SOAP::Lite;
      $SOAP::Constants::DO_NOT_USE_XML_PARSER = 1;

      (notice that this is not an absolute solution, since Lite version of
      parser has some limitations and it's slower because it's pure Perl)

      Are you using CGI- or mod_perl-based SOAP server? You shouldn't have
      this problem running your server as a CGI application (if you do it's
      not because of apache and Expat). You may have it if you run SOAP
      server as Apache::Registry or mod_perl application.

      Server-side code could shed some light. Sorry can't be more helpful.

      Best wishes, Paul.

      --- Eric Baller <eballer@...> wrote:
      > I've been digging through the archive and this is the closest
      > reference I can find.
      >
      > I'm also getting the same "unexpected EOF" errors but I don't own
      > the
      > server or the apache configuration.
      >
      > When I was on my own linux box, I was able to get everything I want
      >
      > to work properly (thanks to good documentation, support in this
      > group, and some excellent software from Paul...)
      >
      > But when I move it up to my hosting company's machine (also linux),
      > I
      > get that "500..." error. I had to install a few modules since they
      >
      > didn't have SOAP::Lite or URI (I won't reveal who they are so as
      > not
      > to disgrace them ;^) but I got through that easy enough.
      >
      > Are there other approaches that might help besides asking them to
      > change the apache configuration?
      >
      > Thanks,
      > Eric
      >
      > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
      > > Hi, Juan!
      > >
      > > It might be this (documented in SOAP/Transport/HTTP.pm):
      > >
      > > =item Apache is crashing with segfaults
      > >
      > > If using SOAP::Lite (or XML::Parser::Expat) in combination with
      > > mod_perl
      > > causes random segmentation faults in httpd processes try to
      > configure
      > > Apache with:
      > >
      > > RULE_EXPAT=no
      > >
      > > See http://archive.covalent.net/modperl/2000/04/0185.xml for more
      >
      > > details and lot of thanks to Robert Barta (rho@b...) for
      > > explaining this weird behavior.
      > >
      > > Hope it helps.
      > >
      > > Best wishes, Paul.
      > >
      > > --- Juan Julian Merelo Guervos <jmerelo@g...> wrote:
      > > > Hi,
      > > > I'm trying to use SOAP::Lite with Apache 1.3.20 and mod_perl
      > 1.25;
      > > > SOAP::Lite version is 0.50. It coredumps with this simple
      > setup:
      > > >
      > > > -- server
      > > > #!/usr/bin/perl -w
      > > >
      > > > use SOAP::Transport::HTTP;
      > > >
      > > > SOAP::Transport::HTTP::CGI
      > > > -> dispatch_to('Eval')
      > > > -> handle;
      > > >
      > > > package Eval;
      > > >
      > > > sub test {
      > > > my $class =shift;
      > > > my $msg = shift;
      > > > return "Hola $msg";
      > > > }
      > > > -- client
      > > > #!/usr/bin/perl -w
      > > >
      > > > use SOAP::Lite;
      > > >
      > > > my $soapResponse=
      > SOAP::Lite
      > > >
      > > > ->
      > > > uri
      > ('http://www.geneura.org/Eval')
      > > >
      > > > -> proxy("http://localhost:8080/perl/SOAPtest.pl")
      > > > -> test( "Pepelillo");
      > > >
      > > > print $soapResponse->result;
      > > >
      > > > ---
      > > > Apache config:
      > > > Alias /perl/ /home/jmerelo/apache/perl/
      > > > <Location /perl>
      > > > SetHandler perl-script
      > > > PerlHandler Apache::Registry
      > > > #PerlModule CGI SOAP::Lite
      > > > PerlSendHeader On
      > > > Options +ExecCGI
      > > > </Location>
      > > > --
      > > >
      > > > It coredumps with this error:
      > > >
      > > > mercurio:~/progs/ga-xsl$ ./SOAPtestclient.pl
      > > > 500 unexpected EOF before status line seen
      > > > at ./SOAPtestclient.pl line 5
      > > >
      > > > Any idea?
      > > >
      > > > J
      > > >
      > > > --
      > > > jmerelo@g... | jjmerelo@w...
      > > > JJ Merelo |
      > http://geneura.ugr.es/~jmerelo
      > > > Grupo Geneura ---- Univ. Granada | http://www.geneura.org/
      > > >
      > > > To unsubscribe from this group, send an email to:
      > > > soaplite-unsubscribe@y...
      > > >
      > > >
      > > >
      > > > Your use of Yahoo! Groups is subject to
      > > > http://docs.yahoo.com/info/terms/
      > > >
      > > >
      > >
      > >
      > > __________________________________________________
      > > Do You Yahoo!?
      > > Get personalized email addresses from Yahoo! Mail - only $35
      > > a year! http://personal.mail.yahoo.com/
      >
      >
      > ------------------------ Yahoo! Groups Sponsor
      >
      > To unsubscribe from this group, send an email to:
      > soaplite-unsubscribe@yahoogroups.com
      >
      >
      >
      > Your use of Yahoo! Groups is subject to
      > http://docs.yahoo.com/info/terms/
      >
      >


      __________________________________________________
      Do You Yahoo!?
      Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
      http://geocities.yahoo.com/ps/info1
    • Paul Kulchenko
      Hi, Eric! ... this one looks very suspicious. I saw 200 - in my log file only when I tested my CGI scripts with Apache::Registry without PerlSendHeader On .
      Message 2 of 10 , Nov 28, 2001
      • 0 Attachment
        Hi, Eric!

        > 500 unexpected EOF before status line seen
        > at ./hi.pl line 9
        >
        > On the server, I get an access log entry which looks like:
        > ..."POST /cgi-bin/soap/hi.cgi HTTP/1.0" 200 - "-"
        > "SOAP::Lite/Perl/0.51"
        this one looks very suspicious. I saw "200 -" in my log file only
        when I tested my CGI scripts with Apache::Registry without
        "PerlSendHeader On". I just replied about it today:
        [http://discuss.develop.com/archives/wa.exe?A2=ind0111&L=soap&F=&S=&P=23882]

        You may switch on debug info on client side to see real response from
        server:

        use SOAP::Lite on_debug => sub { print @_ };

        If you use Apache::Registry then "PerlSendHeader On" may solve the
        problem. If not, debug output may help.

        Did you try to run the same script from cgi-bin/ directory instead of
        cgi-bin/soap/? Did you try to hit that URL from webbrowser (you
        should get "405 Bad Method" error)? Let me know if you still can't
        fix the problem.

        Best wishes, Paul.

        --- Eric Baller <eballer@...> wrote:
        > Actually, it doesn't look like I have to worry about mod_perl. The
        > web
        > server doesn't list it, but responds as follows:
        >
        > Server: Apache/1.3.20 (Unix) ApacheJServ/1.1.2 PHP/4.0.4pl1
        > FrontPage/5.0.2.2510 Rewrit/1.1a
        > X-Powered-By: PHP/4.0.4pl1
        >
        > I've tried to make sure it wasn't anything fancy I was doing, so
        > I've worked
        > my way down to some server side code taken from one of your
        > examples (which
        > were very helpful, by the way):
        > --------- hi.cgi ----------
        > #!/usr/bin/perl -Tw
        >
        > use lib '/home/eballer/lib';
        > use SOAP::Transport::HTTP;
        >
        > SOAP::Transport::HTTP::CGI
        > -> dispatch_to('Demo')
        > -> handle;
        >
        > package Demo;
        >
        > sub HelloWorld {
        > return "Hello, world";
        > }
        >
        > 1;
        > ------------------------------
        >
        > and the client code is:
        > -------- hibye.pl ---------
        > #!/usr/bin/perl -Tw
        >
        > use SOAP::Lite;
        >
        > my $s1=SOAP::Lite
        > ->uri('Demo')
        > ->proxy('http://localhost/cgi-bin/soap/hi.cgi');
        >
        > my $result = $s1->HelloWorld();
        >
        > unless ($result->fault) {
        > print $result->result();
        > } else {
        > print join ', ',
        > $result->faultcode,
        > $result->faultstring;
        > }
        > ---------------------------
        >
        > That works fine on my local machine. Then I try replacing
        > "localhost" with
        > the web URL, I get the following error from the client:
        >
        > 500 unexpected EOF before status line seen
        > at ./hi.pl line 9
        >
        > On the server, I get an access log entry which looks like:
        > ..."POST /cgi-bin/soap/hi.cgi HTTP/1.0" 200 - "-"
        > "SOAP::Lite/Perl/0.51"
        >
        > Does that help more?
        >
        > Thanks!
        >
        > -----Original Message-----
        > From: Paul Kulchenko [mailto:paulclinger@...]
        > Sent: Wednesday, November 28, 2001 1:23 AM
        > To: Eric Baller; soaplite@yahoogroups.com
        > Subject: Re: [soaplite] unexpected EOF
        >
        >
        > Hi, Eric!
        >
        > If you configuration is similar to discussed one (apache+mod_perl)
        > first thing you may try is to disable XML::Parser and use only
        > XML::Parser::Lite. You shouldn't have such problem in this case.
        > You
        > need to specify in your script:
        >
        > use SOAP::Lite;
        > $SOAP::Constants::DO_NOT_USE_XML_PARSER = 1;
        >
        > (notice that this is not an absolute solution, since Lite version
        > of
        > parser has some limitations and it's slower because it's pure Perl)
        >
        > Are you using CGI- or mod_perl-based SOAP server? You shouldn't
        > have
        > this problem running your server as a CGI application (if you do
        > it's
        > not because of apache and Expat). You may have it if you run SOAP
        > server as Apache::Registry or mod_perl application.
        >
        > Server-side code could shed some light. Sorry can't be more
        > helpful.
        >
        > Best wishes, Paul.
        >
        > --- Eric Baller <eballer@...> wrote:
        > > I've been digging through the archive and this is the closest
        > > reference I can find.
        > >
        > > I'm also getting the same "unexpected EOF" errors but I don't own
        > > the
        > > server or the apache configuration.
        > >
        > > When I was on my own linux box, I was able to get everything I
        > want
        > >
        > > to work properly (thanks to good documentation, support in this
        > > group, and some excellent software from Paul...)
        > >
        > > But when I move it up to my hosting company's machine (also
        > linux),
        > > I
        > > get that "500..." error. I had to install a few modules since
        > they
        > >
        > > didn't have SOAP::Lite or URI (I won't reveal who they are so as
        > > not
        > > to disgrace them ;^) but I got through that easy enough.
        > >
        > > Are there other approaches that might help besides asking them to
        > > change the apache configuration?
        > >
        > > Thanks,
        > > Eric
        > >
        > > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
        > > > Hi, Juan!
        > > >
        > > > It might be this (documented in SOAP/Transport/HTTP.pm):
        > > >
        > > > =item Apache is crashing with segfaults
        > > >
        > > > If using SOAP::Lite (or XML::Parser::Expat) in combination with
        > > > mod_perl
        > > > causes random segmentation faults in httpd processes try to
        > > configure
        > > > Apache with:
        > > >
        > > > RULE_EXPAT=no
        > > >
        > > > See http://archive.covalent.net/modperl/2000/04/0185.xml for
        > more
        > >
        > > > details and lot of thanks to Robert Barta (rho@b...) for
        > > > explaining this weird behavior.
        > > >
        > > > Hope it helps.
        > > >
        > > > Best wishes, Paul.
        > > >
        > > > --- Juan Julian Merelo Guervos <jmerelo@g...> wrote:
        > > > > Hi,
        > > > > I'm trying to use SOAP::Lite with Apache 1.3.20 and mod_perl
        > > 1.25;
        > > > > SOAP::Lite version is 0.50. It coredumps with this simple
        > > setup:
        > > > >
        > > > > -- server
        > > > > #!/usr/bin/perl -w
        > > > >
        > > > > use SOAP::Transport::HTTP;
        > > > >
        > > > > SOAP::Transport::HTTP::CGI
        > > > > -> dispatch_to('Eval')
        > > > > -> handle;
        > > > >
        > > > > package Eval;
        > > > >
        > > > > sub test {
        > > > > my $class =shift;
        > > > > my $msg = shift;
        > > > > return "Hola $msg";
        > > > > }
        > > > > -- client
        > > > > #!/usr/bin/perl -w
        > > > >
        > > > > use SOAP::Lite;
        > > > >
        > > > > my $soapResponse=
        > > SOAP::Lite
        > > > >
        > > > > ->
        > > > > uri
        > > ('http://www.geneura.org/Eval')
        > > > >
        > > > > -> proxy("http://localhost:8080/perl/SOAPtest.pl")
        > > > > -> test( "Pepelillo");
        > > > >
        > > > > print $soapResponse->result;
        > > > >
        > > > > ---
        > > > > Apache config:
        > > > > Alias /perl/ /home/jmerelo/apache/perl/
        > > > > <Location /perl>
        >
        === message truncated ===


        __________________________________________________
        Do You Yahoo!?
        Make a great connection at Yahoo! Personals.
        http://personals.yahoo.com
      • Eric Baller
        Arghhh! Finally figured it out. I still don t know *why*, but at least I figured out the cause: taint checking on the server. perl -Tw works on my local box,
        Message 3 of 10 , Nov 29, 2001
        • 0 Attachment
          Arghhh! Finally figured it out.

          I still don't know *why*, but at least I figured out the cause: taint
          checking on the server.

          perl -Tw works on my local box, and I find it a useful check, but for
          some reason it doesn't work on my virtually hosted domain. Both are
          linux/apache and I didn't see anything funny in the httpd.conf.

          Oh well. The fix was to change the first line of the .cgi file
          from: #!/usr/bin/perl -Tw
          to: #!/usr/bin/perl -w

          Thank you Paul and group for your indulgence. I hope this at least
          helps someone else some day...

          Eric

          --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
          > Hi, Eric!
          >
          > > 500 unexpected EOF before status line seen
          > > at ./hi.pl line 9
          > >
          > > On the server, I get an access log entry which looks like:
          > > ..."POST /cgi-bin/soap/hi.cgi HTTP/1.0" 200 - "-"
          > > "SOAP::Lite/Perl/0.51"
          > this one looks very suspicious. I saw "200 -" in my log file only
          > when I tested my CGI scripts with Apache::Registry without
          > "PerlSendHeader On". I just replied about it today:
          > [http://discuss.develop.com/archives/wa.exe?
          A2=ind0111&L=soap&F=&S=&P=23882]
          >
          > You may switch on debug info on client side to see real response
          from
          > server:
          >
          > use SOAP::Lite on_debug => sub { print @_ };
          >
          > If you use Apache::Registry then "PerlSendHeader On" may solve the
          > problem. If not, debug output may help.
          >
          > Did you try to run the same script from cgi-bin/ directory instead
          of
          > cgi-bin/soap/? Did you try to hit that URL from webbrowser (you
          > should get "405 Bad Method" error)? Let me know if you still can't
          > fix the problem.
          >
          > Best wishes, Paul.
          >
          > --- Eric Baller <eballer@q...> wrote:
          > > Actually, it doesn't look like I have to worry about mod_perl.
          The
          > > web
          > > server doesn't list it, but responds as follows:
          > >
          > > Server: Apache/1.3.20 (Unix) ApacheJServ/1.1.2 PHP/4.0.4pl1
          > > FrontPage/5.0.2.2510 Rewrit/1.1a
          > > X-Powered-By: PHP/4.0.4pl1
          > >
          > > I've tried to make sure it wasn't anything fancy I was doing, so
          > > I've worked
          > > my way down to some server side code taken from one of your
          > > examples (which
          > > were very helpful, by the way):
          > > --------- hi.cgi ----------
          > > #!/usr/bin/perl -Tw
          > >
          > > use lib '/home/eballer/lib';
          > > use SOAP::Transport::HTTP;
          > >
          > > SOAP::Transport::HTTP::CGI
          > > -> dispatch_to('Demo')
          > > -> handle;
          > >
          > > package Demo;
          > >
          > > sub HelloWorld {
          > > return "Hello, world";
          > > }
          > >
          > > 1;
          > > ------------------------------
          > >
          > > and the client code is:
          > > -------- hibye.pl ---------
          > > #!/usr/bin/perl -Tw
          > >
          > > use SOAP::Lite;
          > >
          > > my $s1=SOAP::Lite
          > > ->uri('Demo')
          > > ->proxy('http://localhost/cgi-bin/soap/hi.cgi');
          > >
          > > my $result = $s1->HelloWorld();
          > >
          > > unless ($result->fault) {
          > > print $result->result();
          > > } else {
          > > print join ', ',
          > > $result->faultcode,
          > > $result->faultstring;
          > > }
          > > ---------------------------
          > >
          > > That works fine on my local machine. Then I try replacing
          > > "localhost" with
          > > the web URL, I get the following error from the client:
          > >
          > > 500 unexpected EOF before status line seen
          > > at ./hi.pl line 9
          > >
          > > On the server, I get an access log entry which looks like:
          > > ..."POST /cgi-bin/soap/hi.cgi HTTP/1.0" 200 - "-"
          > > "SOAP::Lite/Perl/0.51"
          > >
          > > Does that help more?
          > >
          > > Thanks!
          > >
          > > -----Original Message-----
          > > From: Paul Kulchenko [mailto:paulclinger@y...]
          > > Sent: Wednesday, November 28, 2001 1:23 AM
          > > To: Eric Baller; soaplite@y...
          > > Subject: Re: [soaplite] unexpected EOF
          > >
          > >
          > > Hi, Eric!
          > >
          > > If you configuration is similar to discussed one (apache+mod_perl)
          > > first thing you may try is to disable XML::Parser and use only
          > > XML::Parser::Lite. You shouldn't have such problem in this case.
          > > You
          > > need to specify in your script:
          > >
          > > use SOAP::Lite;
          > > $SOAP::Constants::DO_NOT_USE_XML_PARSER = 1;
          > >
          > > (notice that this is not an absolute solution, since Lite version
          > > of
          > > parser has some limitations and it's slower because it's pure
          Perl)
          > >
          > > Are you using CGI- or mod_perl-based SOAP server? You shouldn't
          > > have
          > > this problem running your server as a CGI application (if you do
          > > it's
          > > not because of apache and Expat). You may have it if you run SOAP
          > > server as Apache::Registry or mod_perl application.
          > >
          > > Server-side code could shed some light. Sorry can't be more
          > > helpful.
          > >
          > > Best wishes, Paul.
          > >
          > > --- Eric Baller <eballer@q...> wrote:
          > > > I've been digging through the archive and this is the closest
          > > > reference I can find.
          > > >
          > > > I'm also getting the same "unexpected EOF" errors but I don't
          own
          > > > the
          > > > server or the apache configuration.
          > > >
          > > > When I was on my own linux box, I was able to get everything I
          > > want
          > > >
          > > > to work properly (thanks to good documentation, support in this
          > > > group, and some excellent software from Paul...)
          > > >
          > > > But when I move it up to my hosting company's machine (also
          > > linux),
          > > > I
          > > > get that "500..." error. I had to install a few modules since
          > > they
          > > >
          > > > didn't have SOAP::Lite or URI (I won't reveal who they are so as
          > > > not
          > > > to disgrace them ;^) but I got through that easy enough.
          > > >
          > > > Are there other approaches that might help besides asking them
          to
          > > > change the apache configuration?
          > > >
          > > > Thanks,
          > > > Eric
          > > >
          > > > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
          > > > > Hi, Juan!
          > > > >
          > > > > It might be this (documented in SOAP/Transport/HTTP.pm):
          > > > >
          > > > > =item Apache is crashing with segfaults
          > > > >
          > > > > If using SOAP::Lite (or XML::Parser::Expat) in combination
          with
          > > > > mod_perl
          > > > > causes random segmentation faults in httpd processes try to
          > > > configure
          > > > > Apache with:
          > > > >
          > > > > RULE_EXPAT=no
          > > > >
          > > > > See http://archive.covalent.net/modperl/2000/04/0185.xml for
          > > more
          > > >
          > > > > details and lot of thanks to Robert Barta (rho@b...) for
          > > > > explaining this weird behavior.
          > > > >
          > > > > Hope it helps.
          > > > >
          > > > > Best wishes, Paul.
          > > > >
          > > > > --- Juan Julian Merelo Guervos <jmerelo@g...> wrote:
          > > > > > Hi,
          > > > > > I'm trying to use SOAP::Lite with Apache 1.3.20 and
          mod_perl
          > > > 1.25;
          > > > > > SOAP::Lite version is 0.50. It coredumps with this simple
          > > > setup:
          > > > > >
          > > > > > -- server
          > > > > > #!/usr/bin/perl -w
          > > > > >
          > > > > > use SOAP::Transport::HTTP;
          > > > > >
          > > > > > SOAP::Transport::HTTP::CGI
          > > > > > -> dispatch_to('Eval')
          > > > > > -> handle;
          > > > > >
          > > > > > package Eval;
          > > > > >
          > > > > > sub test {
          > > > > > my $class =shift;
          > > > > > my $msg = shift;
          > > > > > return "Hola $msg";
          > > > > > }
          > > > > > -- client
          > > > > > #!/usr/bin/perl -w
          > > > > >
          > > > > > use SOAP::Lite;
          > > > > >
          > > > > > my $soapResponse=
          > > > SOAP::Lite
          > > > > >
          > > > > > ->
          > > > > > uri
          > > > ('http://www.geneura.org/Eval')
          > > > > >
          > > > > > -> proxy("http://localhost:8080/perl/SOAPtest.pl")
          > > > > > -> test( "Pepelillo");
          > > > > >
          > > > > > print $soapResponse->result;
          > > > > >
          > > > > > ---
          > > > > > Apache config:
          > > > > > Alias /perl/ /home/jmerelo/apache/perl/
          > > > > > <Location /perl>
          > >
          > === message truncated ===
          >
          >
          > __________________________________________________
          > Do You Yahoo!?
          > Make a great connection at Yahoo! Personals.
          > http://personals.yahoo.com
        • Chris Davies
          Ah. Yes, well spotted! Unfortunately you can t specify -T on the command line under mod_perl, since perl s already running and it can t enable the taint
          Message 4 of 10 , Dec 4, 2001
          • 0 Attachment
            Ah. Yes, well spotted!

            Unfortunately you can't specify -T on the "command line" under mod_perl,
            since perl's already running and it can't enable the taint checking except
            when it starts. There are two solutions:
            (a) don't run with -T
            (b) enable perl taint checking as part of the mod_perl / Apache
            configuration (no, I can't remember how, though)

            Try this to see the error:

            cat <<! >xxx.pl
            #!/usr/bin/perl -wT
            print "Hello, world\n";
            !
            perl xxx.pl

            Chris
            --
            Chris Davies, Manheim Online
            Tel. 0113 393-2004 Fax. 0870 444-0482. Mobile 07778 199069


            -----Original Message-----
            From: Eric Baller [mailto:eballer@...]
            Sent: Friday, November 30, 2001 3:32 AM
            To: soaplite@yahoogroups.com
            Subject: [soaplite] Re: unexpected EOF


            Arghhh! Finally figured it out.

            I still don't know *why*, but at least I figured out the cause: taint
            checking on the server.

            perl -Tw works on my local box, and I find it a useful check, but for
            some reason it doesn't work on my virtually hosted domain. Both are
            linux/apache and I didn't see anything funny in the httpd.conf.

            Oh well. The fix was to change the first line of the .cgi file
            from: #!/usr/bin/perl -Tw
            to: #!/usr/bin/perl -w

            Thank you Paul and group for your indulgence. I hope this at least
            helps someone else some day...

            Eric

            --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
            > Hi, Eric!
            >
            > > 500 unexpected EOF before status line seen
            > > at ./hi.pl line 9
            > >
            > > On the server, I get an access log entry which looks like:
            > > ..."POST /cgi-bin/soap/hi.cgi HTTP/1.0" 200 - "-"
            > > "SOAP::Lite/Perl/0.51"
            > this one looks very suspicious. I saw "200 -" in my log file only
            > when I tested my CGI scripts with Apache::Registry without
            > "PerlSendHeader On". I just replied about it today:
            > [http://discuss.develop.com/archives/wa.exe?
            A2=ind0111&L=soap&F=&S=&P=23882]
            >
            > You may switch on debug info on client side to see real response
            from
            > server:
            >
            > use SOAP::Lite on_debug => sub { print @_ };
            >
            > If you use Apache::Registry then "PerlSendHeader On" may solve the
            > problem. If not, debug output may help.
            >
            > Did you try to run the same script from cgi-bin/ directory instead
            of
            > cgi-bin/soap/? Did you try to hit that URL from webbrowser (you
            > should get "405 Bad Method" error)? Let me know if you still can't
            > fix the problem.
            >
            > Best wishes, Paul.
            >
            > --- Eric Baller <eballer@q...> wrote:
            > > Actually, it doesn't look like I have to worry about mod_perl.
            The
            > > web
            > > server doesn't list it, but responds as follows:
            > >
            > > Server: Apache/1.3.20 (Unix) ApacheJServ/1.1.2 PHP/4.0.4pl1
            > > FrontPage/5.0.2.2510 Rewrit/1.1a
            > > X-Powered-By: PHP/4.0.4pl1
            > >
            > > I've tried to make sure it wasn't anything fancy I was doing, so
            > > I've worked
            > > my way down to some server side code taken from one of your
            > > examples (which
            > > were very helpful, by the way):
            > > --------- hi.cgi ----------
            > > #!/usr/bin/perl -Tw
            > >
            > > use lib '/home/eballer/lib';
            > > use SOAP::Transport::HTTP;
            > >
            > > SOAP::Transport::HTTP::CGI
            > > -> dispatch_to('Demo')
            > > -> handle;
            > >
            > > package Demo;
            > >
            > > sub HelloWorld {
            > > return "Hello, world";
            > > }
            > >
            > > 1;
            > > ------------------------------
            > >
            > > and the client code is:
            > > -------- hibye.pl ---------
            > > #!/usr/bin/perl -Tw
            > >
            > > use SOAP::Lite;
            > >
            > > my $s1=SOAP::Lite
            > > ->uri('Demo')
            > > ->proxy('http://localhost/cgi-bin/soap/hi.cgi');
            > >
            > > my $result = $s1->HelloWorld();
            > >
            > > unless ($result->fault) {
            > > print $result->result();
            > > } else {
            > > print join ', ',
            > > $result->faultcode,
            > > $result->faultstring;
            > > }
            > > ---------------------------
            > >
            > > That works fine on my local machine. Then I try replacing
            > > "localhost" with
            > > the web URL, I get the following error from the client:
            > >
            > > 500 unexpected EOF before status line seen
            > > at ./hi.pl line 9
            > >
            > > On the server, I get an access log entry which looks like:
            > > ..."POST /cgi-bin/soap/hi.cgi HTTP/1.0" 200 - "-"
            > > "SOAP::Lite/Perl/0.51"
            > >
            > > Does that help more?
            > >
            > > Thanks!
            > >
            > > -----Original Message-----
            > > From: Paul Kulchenko [mailto:paulclinger@y...]
            > > Sent: Wednesday, November 28, 2001 1:23 AM
            > > To: Eric Baller; soaplite@y...
            > > Subject: Re: [soaplite] unexpected EOF
            > >
            > >
            > > Hi, Eric!
            > >
            > > If you configuration is similar to discussed one (apache+mod_perl)
            > > first thing you may try is to disable XML::Parser and use only
            > > XML::Parser::Lite. You shouldn't have such problem in this case.
            > > You
            > > need to specify in your script:
            > >
            > > use SOAP::Lite;
            > > $SOAP::Constants::DO_NOT_USE_XML_PARSER = 1;
            > >
            > > (notice that this is not an absolute solution, since Lite version
            > > of
            > > parser has some limitations and it's slower because it's pure
            Perl)
            > >
            > > Are you using CGI- or mod_perl-based SOAP server? You shouldn't
            > > have
            > > this problem running your server as a CGI application (if you do
            > > it's
            > > not because of apache and Expat). You may have it if you run SOAP
            > > server as Apache::Registry or mod_perl application.
            > >
            > > Server-side code could shed some light. Sorry can't be more
            > > helpful.
            > >
            > > Best wishes, Paul.
            > >
            > > --- Eric Baller <eballer@q...> wrote:
            > > > I've been digging through the archive and this is the closest
            > > > reference I can find.
            > > >
            > > > I'm also getting the same "unexpected EOF" errors but I don't
            own
            > > > the
            > > > server or the apache configuration.
            > > >
            > > > When I was on my own linux box, I was able to get everything I
            > > want
            > > >
            > > > to work properly (thanks to good documentation, support in this
            > > > group, and some excellent software from Paul...)
            > > >
            > > > But when I move it up to my hosting company's machine (also
            > > linux),
            > > > I
            > > > get that "500..." error. I had to install a few modules since
            > > they
            > > >
            > > > didn't have SOAP::Lite or URI (I won't reveal who they are so as
            > > > not
            > > > to disgrace them ;^) but I got through that easy enough.
            > > >
            > > > Are there other approaches that might help besides asking them
            to
            > > > change the apache configuration?
            > > >
            > > > Thanks,
            > > > Eric
            > > >
            > > > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
            > > > > Hi, Juan!
            > > > >
            > > > > It might be this (documented in SOAP/Transport/HTTP.pm):
            > > > >
            > > > > =item Apache is crashing with segfaults
            > > > >
            > > > > If using SOAP::Lite (or XML::Parser::Expat) in combination
            with
            > > > > mod_perl
            > > > > causes random segmentation faults in httpd processes try to
            > > > configure
            > > > > Apache with:
            > > > >
            > > > > RULE_EXPAT=no
            > > > >
            > > > > See http://archive.covalent.net/modperl/2000/04/0185.xml for
            > > more
            > > >
            > > > > details and lot of thanks to Robert Barta (rho@b...) for
            > > > > explaining this weird behavior.
            > > > >
            > > > > Hope it helps.
            > > > >
            > > > > Best wishes, Paul.
            > > > >
            > > > > --- Juan Julian Merelo Guervos <jmerelo@g...> wrote:
            > > > > > Hi,
            > > > > > I'm trying to use SOAP::Lite with Apache 1.3.20 and
            mod_perl
            > > > 1.25;
            > > > > > SOAP::Lite version is 0.50. It coredumps with this simple
            > > > setup:
            > > > > >
            > > > > > -- server
            > > > > > #!/usr/bin/perl -w
            > > > > >
            > > > > > use SOAP::Transport::HTTP;
            > > > > >
            > > > > > SOAP::Transport::HTTP::CGI
            > > > > > -> dispatch_to('Eval')
            > > > > > -> handle;
            > > > > >
            > > > > > package Eval;
            > > > > >
            > > > > > sub test {
            > > > > > my $class =shift;
            > > > > > my $msg = shift;
            > > > > > return "Hola $msg";
            > > > > > }
            > > > > > -- client
            > > > > > #!/usr/bin/perl -w
            > > > > >
            > > > > > use SOAP::Lite;
            > > > > >
            > > > > > my $soapResponse=
            > > > SOAP::Lite
            > > > > >
            > > > > > ->
            > > > > > uri
            > > > ('http://www.geneura.org/Eval')
            > > > > >
            > > > > > -> proxy("http://localhost:8080/perl/SOAPtest.pl")
            > > > > > -> test( "Pepelillo");
            > > > > >
            > > > > > print $soapResponse->result;
            > > > > >
            > > > > > ---
            > > > > > Apache config:
            > > > > > Alias /perl/ /home/jmerelo/apache/perl/
            > > > > > <Location /perl>
            > >
            > === message truncated ===
            >
            >
            > __________________________________________________
            > Do You Yahoo!?
            > Make a great connection at Yahoo! Personals.
            > http://personals.yahoo.com



            To unsubscribe from this group, send an email to:
            soaplite-unsubscribe@yahoogroups.com



            Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
          Your message has been successfully submitted and would be delivered to recipients shortly.