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

RE: [soaplite] Re: unexpected EOF

Expand Messages
  • 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 1 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.