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

Segmentation fault after multiple method calls on a remote object

Expand Messages
  • Sean.Meisner@VerizonWireless.com
    Hi all, I wonder if anyone else has seen this problem.. I have a SOAP::Lite client talking to a SOAP::Lite server. My server and client use
    Message 1 of 9 , Mar 21, 2001
    • 0 Attachment
      Hi all,

      I wonder if anyone else has seen this problem.. I have a SOAP::Lite client
      talking to a SOAP::Lite server. My server and client use objects_by_reference.
      In certain portions of the client code, when I make a bunch of method calls
      one after another on my remote object reference, I get a segmentation
      fault on the client side and the script dies. The server is unaffected by this
      error. My on_fault defined subroutine does not get called. Most baffling is,
      this behavior is inconsistent between different sections of the script.. in one
      portion, I may be able to call a method 4 times before it crashes. In another
      section of the script, the same code will crash on the second method call.
      The particular method with which I'm seeing this error simply takes 2 strings as
      parameters, and passes back a string.

      I'm just posting on the odd chance that someone else may have had this type
      of problem before and knows off the top of their head what the cause may be..

      Cheers,

      Sean Meisner
    • Paul Kulchenko
      Hi, Sean! I d rather to believe that server could crash (some of the possible combinations that could make it are documented), but I never heard about such
      Message 2 of 9 , Mar 21, 2001
      • 0 Attachment
        Hi, Sean!

        I'd rather to believe that server could crash (some of the possible
        combinations that could make it are documented), but I never heard
        about such problems on client side. What's your configuration? OS,
        Perl, XML::Parser versions? Dynamic/static linking?

        Object-by-reference shouldn't have ANY impact on client side, because
        all processing is done on server and client just getting id and
        should treat it as usual object. No differences.

        Only advice I have right now is to try run the same client code on
        another machine (better with different configuration), hopefully you
        should be able to do it really quick. Keep me informed on that, maybe
        it's something I should take care of. Thank you.

        Best wishes, Paul.

        --- Sean.Meisner@... wrote:
        >
        > Hi all,
        >
        > I wonder if anyone else has seen this problem.. I have a SOAP::Lite
        > client
        > talking to a SOAP::Lite server. My server and client use
        > objects_by_reference.
        > In certain portions of the client code, when I make a bunch of
        > method calls
        > one after another on my remote object reference, I get a
        > segmentation
        > fault on the client side and the script dies. The server is
        > unaffected by this
        > error. My on_fault defined subroutine does not get called. Most
        > baffling is,
        > this behavior is inconsistent between different sections of the
        > script.. in one
        > portion, I may be able to call a method 4 times before it crashes.
        > In another
        > section of the script, the same code will crash on the second
        > method call.
        > The particular method with which I'm seeing this error simply takes
        > 2 strings as
        > parameters, and passes back a string.
        >
        > I'm just posting on the odd chance that someone else may have had
        > this type
        > of problem before and knows off the top of their head what the
        > cause may be..
        >
        > Cheers,
        >
        > Sean Meisner
        >
        >
        >
        > ------------------------ 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!?
        Get email at your own domain with Yahoo! Mail.
        http://personal.mail.yahoo.com/
      • Sean.Meisner@VerizonWireless.com
        Hi Paul, I run server and client on Sparc boxes using Solaris 2.6, Perl 5.6.0, XML::Parser version 2.3 . I believe dynamic linking is enabled, would that make
        Message 3 of 9 , Mar 22, 2001
        • 0 Attachment
          Hi Paul,
          I run server and client on Sparc boxes using Solaris 2.6, Perl 5.6.0,
          XML::Parser
          version 2.3 . I believe dynamic linking is enabled, would that make a
          difference?

          One difference I've noted is that running the client under a version of Perl
          compiled
          WITH thread support will make the segmentation fault happen after 2 remote
          method
          calls, while running the same code under a version of Perl compiled WITHOUT
          thread
          support will take 7 method calls to crash. I do not use multiple threads in my
          code.

          Thanks in advance for any help,

          Sean





          Paul Kulchenko <paulclinger@...> on 03/21/2001 06:05:16 PM

          Please respond to soaplite@yahoogroups.com



          To: soaplite@yahoogroups.com
          cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
          bcc: Sean Meisner/Great Lakes/AirTouch

          Subject: Re: [soaplite] Segmentation fault after multiple method calls on a
          remote object




          Hi, Sean!

          I'd rather to believe that server could crash (some of the possible
          combinations that could make it are documented), but I never heard
          about such problems on client side. What's your configuration? OS,
          Perl, XML::Parser versions? Dynamic/static linking?

          Object-by-reference shouldn't have ANY impact on client side, because
          all processing is done on server and client just getting id and
          should treat it as usual object. No differences.

          Only advice I have right now is to try run the same client code on
          another machine (better with different configuration), hopefully you
          should be able to do it really quick. Keep me informed on that, maybe
          it's something I should take care of. Thank you.

          Best wishes, Paul.

          --- Sean.Meisner@... wrote:
          >
          > Hi all,
          >
          > I wonder if anyone else has seen this problem.. I have a SOAP::Lite
          > client
          > talking to a SOAP::Lite server. My server and client use
          > objects_by_reference.
          > In certain portions of the client code, when I make a bunch of
          > method calls
          > one after another on my remote object reference, I get a
          > segmentation
          > fault on the client side and the script dies. The server is
          > unaffected by this
          > error. My on_fault defined subroutine does not get called. Most
          > baffling is,
          > this behavior is inconsistent between different sections of the
          > script.. in one
          > portion, I may be able to call a method 4 times before it crashes.
          > In another
          > section of the script, the same code will crash on the second
          > method call.
          > The particular method with which I'm seeing this error simply takes
          > 2 strings as
          > parameters, and passes back a string.
          >
          > I'm just posting on the odd chance that someone else may have had
          > this type
          > of problem before and knows off the top of their head what the
          > cause may be..
          >
          > Cheers,
          >
          > Sean Meisner
          >
          >
          >
          > ------------------------ 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!?
          Get email at your own domain with Yahoo! Mail.
          http://personal.mail.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/
        • Paul Kulchenko
          Hi, Sean! Probably simpliest way to check it is to run these requests from SOAP shell, so you ll know for sure is it something related to SOAP or other parts
          Message 4 of 9 , Mar 22, 2001
          • 0 Attachment
            Hi, Sean!

            Probably simpliest way to check it is to run these requests from SOAP
            shell, so you'll know for sure is it something related to SOAP or
            other parts of your application. Try to run:

            perl SOAPsh.pl <URL> <URI/namespace>

            and then
            > your_call(parameters)

            It's not always possible to emulate real application, but you'll be
            able to run several requests and see the results. Hope it'll give you
            some ideas.

            Best wishes, Paul.

            --- Sean.Meisner@... wrote:
            >
            > Hi Paul,
            > I run server and client on Sparc boxes using Solaris 2.6, Perl
            > 5.6.0,
            > XML::Parser
            > version 2.3 . I believe dynamic linking is enabled, would that
            > make a
            > difference?
            >
            > One difference I've noted is that running the client under a
            > version of Perl
            > compiled
            > WITH thread support will make the segmentation fault happen after 2
            > remote
            > method
            > calls, while running the same code under a version of Perl compiled
            > WITHOUT
            > thread
            > support will take 7 method calls to crash. I do not use multiple
            > threads in my
            > code.
            >
            > Thanks in advance for any help,
            >
            > Sean
            >
            >
            >
            >
            >
            > Paul Kulchenko <paulclinger@...> on 03/21/2001 06:05:16 PM
            >
            > Please respond to soaplite@yahoogroups.com
            >
            >
            >
            > To: soaplite@yahoogroups.com
            > cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
            > bcc: Sean Meisner/Great Lakes/AirTouch
            >
            > Subject: Re: [soaplite] Segmentation fault after multiple method
            > calls on a
            > remote object
            >
            >
            >
            >
            > Hi, Sean!
            >
            > I'd rather to believe that server could crash (some of the possible
            > combinations that could make it are documented), but I never heard
            > about such problems on client side. What's your configuration? OS,
            > Perl, XML::Parser versions? Dynamic/static linking?
            >
            > Object-by-reference shouldn't have ANY impact on client side,
            > because
            > all processing is done on server and client just getting id and
            > should treat it as usual object. No differences.
            >
            > Only advice I have right now is to try run the same client code on
            > another machine (better with different configuration), hopefully
            > you
            > should be able to do it really quick. Keep me informed on that,
            > maybe
            > it's something I should take care of. Thank you.
            >
            > Best wishes, Paul.
            >
            > --- Sean.Meisner@... wrote:
            > >
            > > Hi all,
            > >
            > > I wonder if anyone else has seen this problem.. I have a
            > SOAP::Lite
            > > client
            > > talking to a SOAP::Lite server. My server and client use
            > > objects_by_reference.
            > > In certain portions of the client code, when I make a bunch of
            > > method calls
            > > one after another on my remote object reference, I get a
            > > segmentation
            > > fault on the client side and the script dies. The server is
            > > unaffected by this
            > > error. My on_fault defined subroutine does not get called. Most
            > > baffling is,
            > > this behavior is inconsistent between different sections of the
            > > script.. in one
            > > portion, I may be able to call a method 4 times before it
            > crashes.
            > > In another
            > > section of the script, the same code will crash on the second
            > > method call.
            > > The particular method with which I'm seeing this error simply
            > takes
            > > 2 strings as
            > > parameters, and passes back a string.
            > >
            > > I'm just posting on the odd chance that someone else may have had
            > > this type
            > > of problem before and knows off the top of their head what the
            > > cause may be..
            > >
            > > Cheers,
            > >
            > > Sean Meisner
            > >
            > >
            > >
            > > ------------------------ 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!?
            > Get email at your own domain with Yahoo! Mail.
            > http://personal.mail.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/
            >
            >
            >
            >
            >
            >
            >
            > ------------------------ 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!?
            Get email at your own domain with Yahoo! Mail.
            http://personal.mail.yahoo.com/
          • Sean.Meisner@VerizonWireless.com
            Hi all, You may remember I posted to the SOAP::Lite mailing list last week about odd segmentation faults in a client process. Here is what I ve discovered: In
            Message 5 of 9 , Mar 28, 2001
            • 0 Attachment
              Hi all,

              You may remember I posted to the SOAP::Lite mailing list last week about
              odd segmentation faults in a client process. Here is what I've discovered:
              In short, version 1.20 of CGI::Carp has an incompatibilty with version 2.30 of
              XML::Parser::Expat.pm . My SOAP::Lite client is a CGI script. CGI::Carp
              overrides the default handler for die. XML::Parser::Expat.pm has a line
              where it is expecting to die in an eval, every time a string is passed to
              its parse() method. The newest CGI::Carp *can't* properly handle the XML
              string it gets passed when XML::Parser::Expat::parse() executes the line that
              generates a die signal.

              That's a convoluted explanation but its as simple as I could make it. So
              the problem I encountered is not really in the SOAP::Lite code, but it could
              potentially affect anyone who wants to use a CGI script as a SOAP::Lite
              *client*,
              and it doesn't cause the process to crash right away, you may be able to make
              a bunch of calls before the process will get a segmentation fault. The
              workaround
              is to use an older version of CGI::Carp (I have 1.14 now, the version causing
              the
              problem is 1.20), OR don't use CGI::Carp in your CGI script at all.

              Cheers,

              Sean Meisner






              Sean.Meisner@... on 03/22/2001 11:07:03 AM

              Please respond to soaplite@yahoogroups.com



              To: soaplite@yahoogroups.com
              cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
              bcc: Sean Meisner/Great Lakes/AirTouch

              Subject: Re: [soaplite] Segmentation fault after multiple method calls on a
              remote object





              Hi Paul,
              I run server and client on Sparc boxes using Solaris 2.6, Perl 5.6.0,
              XML::Parser
              version 2.3 . I believe dynamic linking is enabled, would that make a
              difference?

              One difference I've noted is that running the client under a version of Perl
              compiled
              WITH thread support will make the segmentation fault happen after 2 remote
              method
              calls, while running the same code under a version of Perl compiled WITHOUT
              thread
              support will take 7 method calls to crash. I do not use multiple threads in my
              code.

              Thanks in advance for any help,

              Sean





              Paul Kulchenko <paulclinger@...> on 03/21/2001 06:05:16 PM

              Please respond to soaplite@yahoogroups.com



              To: soaplite@yahoogroups.com
              cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
              bcc: Sean Meisner/Great Lakes/AirTouch

              Subject: Re: [soaplite] Segmentation fault after multiple method calls on a
              remote object




              Hi, Sean!

              I'd rather to believe that server could crash (some of the possible
              combinations that could make it are documented), but I never heard
              about such problems on client side. What's your configuration? OS,
              Perl, XML::Parser versions? Dynamic/static linking?

              Object-by-reference shouldn't have ANY impact on client side, because
              all processing is done on server and client just getting id and
              should treat it as usual object. No differences.

              Only advice I have right now is to try run the same client code on
              another machine (better with different configuration), hopefully you
              should be able to do it really quick. Keep me informed on that, maybe
              it's something I should take care of. Thank you.

              Best wishes, Paul.

              --- Sean.Meisner@... wrote:
              >
              > Hi all,
              >
              > I wonder if anyone else has seen this problem.. I have a SOAP::Lite
              > client
              > talking to a SOAP::Lite server. My server and client use
              > objects_by_reference.
              > In certain portions of the client code, when I make a bunch of
              > method calls
              > one after another on my remote object reference, I get a
              > segmentation
              > fault on the client side and the script dies. The server is
              > unaffected by this
              > error. My on_fault defined subroutine does not get called. Most
              > baffling is,
              > this behavior is inconsistent between different sections of the
              > script.. in one
              > portion, I may be able to call a method 4 times before it crashes.
              > In another
              > section of the script, the same code will crash on the second
              > method call.
              > The particular method with which I'm seeing this error simply takes
              > 2 strings as
              > parameters, and passes back a string.
              >
              > I'm just posting on the odd chance that someone else may have had
              > this type
              > of problem before and knows off the top of their head what the
              > cause may be..
              >
              > Cheers,
              >
              > Sean Meisner
              >
              >
              >
              > ------------------------ 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!?
              Get email at your own domain with Yahoo! Mail.
              http://personal.mail.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/








              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/
            • Paul Kulchenko
              Hi, Sean! Though you re right and that s not a problem in SOAP::Lite code, would be better to fix it on SOAP::Lite level. Actually fix is simple (I faced this
              Message 6 of 9 , Mar 28, 2001
              • 0 Attachment
                Hi, Sean!

                Though you're right and that's not a problem in SOAP::Lite code,
                would be better to fix it on SOAP::Lite level. Actually fix is simple
                (I faced this problem in couple of other applications and it
                's used in MAILTO module):

                you need to override DIE handler temporarely:

                my $parsed = eval { local $SIG{__DIE__};
                $self->parser->decode(shift) };

                instead of

                my $parsed = $self->parser->decode(shift);

                I'll add it into the code, so next version will be more robast in
                this aspect.

                you may do it on application level also, just warp your client call
                in similar eval:

                eval { local $SIG{__DIE__};
                # you SOAP call is here
                1;
                } or die;

                all die's inside eval will be catched by default (or specified)
                handler and last die (with message from eval) will be catched by
                CGI::Carp, so everything should be fine. Thinking about this second
                solution maybe it's not a good idea to wrap it inside the
                SOAP::Lite's code. I need to think about it. Let me know how it goes.

                Best wishes, Paul.

                --- Sean.Meisner@... wrote:
                >
                > Hi all,
                >
                > You may remember I posted to the SOAP::Lite mailing list last week
                > about
                > odd segmentation faults in a client process. Here is what I've
                > discovered:
                > In short, version 1.20 of CGI::Carp has an incompatibilty with
                > version 2.30 of
                > XML::Parser::Expat.pm . My SOAP::Lite client is a CGI script.
                > CGI::Carp
                > overrides the default handler for die. XML::Parser::Expat.pm has a
                > line
                > where it is expecting to die in an eval, every time a string is
                > passed to
                > its parse() method. The newest CGI::Carp *can't* properly handle
                > the XML
                > string it gets passed when XML::Parser::Expat::parse() executes the
                > line that
                > generates a die signal.
                >
                > That's a convoluted explanation but its as simple as I could make
                > it. So
                > the problem I encountered is not really in the SOAP::Lite code, but
                > it could
                > potentially affect anyone who wants to use a CGI script as a
                > SOAP::Lite
                > *client*,
                > and it doesn't cause the process to crash right away, you may be
                > able to make
                > a bunch of calls before the process will get a segmentation fault.
                > The
                > workaround
                > is to use an older version of CGI::Carp (I have 1.14 now, the
                > version causing
                > the
                > problem is 1.20), OR don't use CGI::Carp in your CGI script at all.
                >
                > Cheers,
                >
                > Sean Meisner
                >
                >
                >
                >
                >
                >
                > Sean.Meisner@... on 03/22/2001 11:07:03 AM
                >
                > Please respond to soaplite@yahoogroups.com
                >
                >
                >
                > To: soaplite@yahoogroups.com
                > cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
                > bcc: Sean Meisner/Great Lakes/AirTouch
                >
                > Subject: Re: [soaplite] Segmentation fault after multiple method
                > calls on a
                > remote object
                >
                >
                >
                >
                >
                > Hi Paul,
                > I run server and client on Sparc boxes using Solaris 2.6, Perl
                > 5.6.0,
                > XML::Parser
                > version 2.3 . I believe dynamic linking is enabled, would that
                > make a
                > difference?
                >
                > One difference I've noted is that running the client under a
                > version of Perl
                > compiled
                > WITH thread support will make the segmentation fault happen after 2
                > remote
                > method
                > calls, while running the same code under a version of Perl compiled
                > WITHOUT
                > thread
                > support will take 7 method calls to crash. I do not use multiple
                > threads in my
                > code.
                >
                > Thanks in advance for any help,
                >
                > Sean
                >
                >
                >
                >
                >
                > Paul Kulchenko <paulclinger@...> on 03/21/2001 06:05:16 PM
                >
                > Please respond to soaplite@yahoogroups.com
                >
                >
                >
                > To: soaplite@yahoogroups.com
                > cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
                > bcc: Sean Meisner/Great Lakes/AirTouch
                >
                > Subject: Re: [soaplite] Segmentation fault after multiple method
                > calls on a
                > remote object
                >
                >
                >
                >
                > Hi, Sean!
                >
                > I'd rather to believe that server could crash (some of the possible
                > combinations that could make it are documented), but I never heard
                > about such problems on client side. What's your configuration? OS,
                > Perl, XML::Parser versions? Dynamic/static linking?
                >
                > Object-by-reference shouldn't have ANY impact on client side,
                > because
                > all processing is done on server and client just getting id and
                > should treat it as usual object. No differences.
                >
                > Only advice I have right now is to try run the same client code on
                > another machine (better with different configuration), hopefully
                > you
                > should be able to do it really quick. Keep me informed on that,
                > maybe
                > it's something I should take care of. Thank you.
                >
                > Best wishes, Paul.
                >
                > --- Sean.Meisner@... wrote:
                > >
                > > Hi all,
                > >
                > > I wonder if anyone else has seen this problem.. I have a
                > SOAP::Lite
                > > client
                > > talking to a SOAP::Lite server. My server and client use
                > > objects_by_reference.
                > > In certain portions of the client code, when I make a bunch of
                > > method calls
                > > one after another on my remote object reference, I get a
                > > segmentation
                > > fault on the client side and the script dies. The server is
                > > unaffected by this
                > > error. My on_fault defined subroutine does not get called. Most
                > > baffling is,
                > > this behavior is inconsistent between different sections of the
                > > script.. in one
                > > portion, I may be able to call a method 4 times before it
                > crashes.
                > > In another
                > > section of the script, the same code will crash on the second
                > > method call.
                > > The particular method with which I'm seeing this error simply
                > takes
                > > 2 strings as
                > > parameters, and passes back a string.
                > >
                > > I'm just posting on the odd chance that someone else may have had
                > > this type
                > > of problem before and knows off the top of their head what the
                > > cause may be..
                > >
                > > Cheers,
                > >
                > > Sean Meisner
                > >
                > >
                > >
                > > ------------------------ 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!?
                > Get email at your own domain with Yahoo! Mail.
                > http://personal.mail.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/
                >
                >
                >
                >
                === message truncated ===


                __________________________________________________
                Do You Yahoo!?
                Get email at your own domain with Yahoo! Mail.
                http://personal.mail.yahoo.com/?.refer=text
              • Sean.Meisner@VerizonWireless.com
                Hi Paul, I d probably be more inclined to pass this off to the CGI::Carp people, as the root of the problem seems to me to be the fact that their die handling
                Message 7 of 9 , Mar 28, 2001
                • 0 Attachment
                  Hi Paul,
                  I'd probably be more inclined to pass this off to the CGI::Carp people, as the
                  root
                  of the problem seems to me to be the fact that their die handling routine can
                  potentially
                  mess up fatally when it gets passed a string of XML. This shouldn't be
                  happening..
                  CGI::Carp itself should be more robust. I'm not sure if there is a mailing list
                  for those
                  CGI modules? There must be, but I'm not subscribed to it.. perhaps someone here
                  could forward this discussion to the appropriate list or bug-report address?

                  Cheers,

                  Sean Meisner





                  Paul Kulchenko <paulclinger@...> on 03/28/2001 10:59:41 AM

                  Please respond to soaplite@yahoogroups.com



                  To: soaplite@yahoogroups.com
                  cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
                  bcc: Sean Meisner/Great Lakes/AirTouch

                  Subject: Re: [soaplite] Segmentation fault after multiple method calls on a
                  remote object




                  Hi, Sean!

                  Though you're right and that's not a problem in SOAP::Lite code,
                  would be better to fix it on SOAP::Lite level. Actually fix is simple
                  (I faced this problem in couple of other applications and it
                  's used in MAILTO module):

                  you need to override DIE handler temporarely:

                  my $parsed = eval { local $SIG{__DIE__};
                  $self->parser->decode(shift) };

                  instead of

                  my $parsed = $self->parser->decode(shift);

                  I'll add it into the code, so next version will be more robast in
                  this aspect.

                  you may do it on application level also, just warp your client call
                  in similar eval:

                  eval { local $SIG{__DIE__};
                  # you SOAP call is here
                  1;
                  } or die;

                  all die's inside eval will be catched by default (or specified)
                  handler and last die (with message from eval) will be catched by
                  CGI::Carp, so everything should be fine. Thinking about this second
                  solution maybe it's not a good idea to wrap it inside the
                  SOAP::Lite's code. I need to think about it. Let me know how it goes.

                  Best wishes, Paul.

                  --- Sean.Meisner@... wrote:
                  >
                  > Hi all,
                  >
                  > You may remember I posted to the SOAP::Lite mailing list last week
                  > about
                  > odd segmentation faults in a client process. Here is what I've
                  > discovered:
                  > In short, version 1.20 of CGI::Carp has an incompatibilty with
                  > version 2.30 of
                  > XML::Parser::Expat.pm . My SOAP::Lite client is a CGI script.
                  > CGI::Carp
                  > overrides the default handler for die. XML::Parser::Expat.pm has a
                  > line
                  > where it is expecting to die in an eval, every time a string is
                  > passed to
                  > its parse() method. The newest CGI::Carp *can't* properly handle
                  > the XML
                  > string it gets passed when XML::Parser::Expat::parse() executes the
                  > line that
                  > generates a die signal.
                  >
                  > That's a convoluted explanation but its as simple as I could make
                  > it. So
                  > the problem I encountered is not really in the SOAP::Lite code, but
                  > it could
                  > potentially affect anyone who wants to use a CGI script as a
                  > SOAP::Lite
                  > *client*,
                  > and it doesn't cause the process to crash right away, you may be
                  > able to make
                  > a bunch of calls before the process will get a segmentation fault.
                  > The
                  > workaround
                  > is to use an older version of CGI::Carp (I have 1.14 now, the
                  > version causing
                  > the
                  > problem is 1.20), OR don't use CGI::Carp in your CGI script at all.
                  >
                  > Cheers,
                  >
                  > Sean Meisner
                  >
                  >
                  >
                  >
                  >
                  >
                  > Sean.Meisner@... on 03/22/2001 11:07:03 AM
                  >
                  > Please respond to soaplite@yahoogroups.com
                  >
                  >
                  >
                  > To: soaplite@yahoogroups.com
                  > cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
                  > bcc: Sean Meisner/Great Lakes/AirTouch
                  >
                  > Subject: Re: [soaplite] Segmentation fault after multiple method
                  > calls on a
                  > remote object
                  >
                  >
                  >
                  >
                  >
                  > Hi Paul,
                  > I run server and client on Sparc boxes using Solaris 2.6, Perl
                  > 5.6.0,
                  > XML::Parser
                  > version 2.3 . I believe dynamic linking is enabled, would that
                  > make a
                  > difference?
                  >
                  > One difference I've noted is that running the client under a
                  > version of Perl
                  > compiled
                  > WITH thread support will make the segmentation fault happen after 2
                  > remote
                  > method
                  > calls, while running the same code under a version of Perl compiled
                  > WITHOUT
                  > thread
                  > support will take 7 method calls to crash. I do not use multiple
                  > threads in my
                  > code.
                  >
                  > Thanks in advance for any help,
                  >
                  > Sean
                  >
                  >
                  >
                  >
                  >
                  > Paul Kulchenko <paulclinger@...> on 03/21/2001 06:05:16 PM
                  >
                  > Please respond to soaplite@yahoogroups.com
                  >
                  >
                  >
                  > To: soaplite@yahoogroups.com
                  > cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
                  > bcc: Sean Meisner/Great Lakes/AirTouch
                  >
                  > Subject: Re: [soaplite] Segmentation fault after multiple method
                  > calls on a
                  > remote object
                  >
                  >
                  >
                  >
                  > Hi, Sean!
                  >
                  > I'd rather to believe that server could crash (some of the possible
                  > combinations that could make it are documented), but I never heard
                  > about such problems on client side. What's your configuration? OS,
                  > Perl, XML::Parser versions? Dynamic/static linking?
                  >
                  > Object-by-reference shouldn't have ANY impact on client side,
                  > because
                  > all processing is done on server and client just getting id and
                  > should treat it as usual object. No differences.
                  >
                  > Only advice I have right now is to try run the same client code on
                  > another machine (better with different configuration), hopefully
                  > you
                  > should be able to do it really quick. Keep me informed on that,
                  > maybe
                  > it's something I should take care of. Thank you.
                  >
                  > Best wishes, Paul.
                  >
                  > --- Sean.Meisner@... wrote:
                  > >
                  > > Hi all,
                  > >
                  > > I wonder if anyone else has seen this problem.. I have a
                  > SOAP::Lite
                  > > client
                  > > talking to a SOAP::Lite server. My server and client use
                  > > objects_by_reference.
                  > > In certain portions of the client code, when I make a bunch of
                  > > method calls
                  > > one after another on my remote object reference, I get a
                  > > segmentation
                  > > fault on the client side and the script dies. The server is
                  > > unaffected by this
                  > > error. My on_fault defined subroutine does not get called. Most
                  > > baffling is,
                  > > this behavior is inconsistent between different sections of the
                  > > script.. in one
                  > > portion, I may be able to call a method 4 times before it
                  > crashes.
                  > > In another
                  > > section of the script, the same code will crash on the second
                  > > method call.
                  > > The particular method with which I'm seeing this error simply
                  > takes
                  > > 2 strings as
                  > > parameters, and passes back a string.
                  > >
                  > > I'm just posting on the odd chance that someone else may have had
                  > > this type
                  > > of problem before and knows off the top of their head what the
                  > > cause may be..
                  > >
                  > > Cheers,
                  > >
                  > > Sean Meisner
                  > >
                  > >
                  > >
                  > > ------------------------ 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!?
                  > Get email at your own domain with Yahoo! Mail.
                  > http://personal.mail.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/
                  >
                  >
                  >
                  >
                  === message truncated ===


                  __________________________________________________
                  Do You Yahoo!?
                  Get email at your own domain with Yahoo! Mail.
                  http://personal.mail.yahoo.com/?.refer=text


                  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/
                • Duncan Cameron
                  Sean Which version of CGI are you using? Check the CGI web site http://stein.cshl.org/WWW/software/CGI/ which has a list of fixes in each release. In release
                  Message 8 of 9 , Mar 28, 2001
                  • 0 Attachment
                    Sean

                    Which version of CGI are you using? Check the CGI web site
                    http://stein.cshl.org/WWW/software/CGI/
                    which has a list of fixes in each release. In release 2.52 there was a "fix to CGI::Carp so that it doesn't affect eval{} blocks". That might be your problem.

                    Otherwise you can report CGI problems to the author, Lincold D Stein, at
                    lstein@...

                    Regards

                    Duncan Cameron


                    On 2001-03-28 at 11:19:00, Sean.Meisner <Sean.Meisner@...> wrote concerning 'Re: [soaplite] Segmentation fault after multiple method calls on a remote object':
                    >Hi Paul,
                    >I'd probably be more inclined to pass this off to the CGI::Carp people, as the
                    >root
                    >of the problem seems to me to be the fact that their die handling routine can
                    >potentially
                    >mess up fatally when it gets passed a string of XML. This shouldn't be
                    >happening..
                    >CGI::Carp itself should be more robust. I'm not sure if there is a mailing list
                    >for those
                    >CGI modules? There must be, but I'm not subscribed to it.. perhaps someone here
                    >could forward this discussion to the appropriate list or bug-report address?
                    >
                    >Cheers,
                    >
                    >Sean Meisner
                    >
                  • Sean.Meisner@VerizonWireless.com
                    Hi Duncan, I have the latest version of CGI, 2.753, that s where the problem is :o) Thanks for the address!! Cheers, Sean Meisner Duncan Cameron
                    Message 9 of 9 , Mar 28, 2001
                    • 0 Attachment
                      Hi Duncan,
                      I have the latest version of CGI, 2.753, that's where the problem is :o)

                      Thanks for the address!!

                      Cheers,

                      Sean Meisner





                      Duncan Cameron <dcameron@...> on 03/28/2001 01:54:19 PM

                      Please respond to soaplite@yahoogroups.com



                      To: "soaplite@yahoogroups.com" <soaplite@yahoogroups.com>
                      cc: (bcc: Sean Meisner/Great Lakes/AirTouch)
                      bcc: Sean Meisner/Great Lakes/AirTouch

                      Subject: Re: [soaplite] Segmentation fault after multiple method calls on a
                      remote object




                      Sean

                      Which version of CGI are you using? Check the CGI web site
                      http://stein.cshl.org/WWW/software/CGI/
                      which has a list of fixes in each release. In release 2.52 there was a "fix to
                      CGI::Carp so that it doesn't affect eval{} blocks". That might be your problem.

                      Otherwise you can report CGI problems to the author, Lincold D Stein, at
                      lstein@...

                      Regards

                      Duncan Cameron


                      On 2001-03-28 at 11:19:00, Sean.Meisner <Sean.Meisner@...> wrote
                      concerning 'Re: [soaplite] Segmentation fault after multiple method calls on a
                      remote object':
                      >Hi Paul,
                      >I'd probably be more inclined to pass this off to the CGI::Carp people, as the
                      >root
                      >of the problem seems to me to be the fact that their die handling routine can
                      >potentially
                      >mess up fatally when it gets passed a string of XML. This shouldn't be
                      >happening..
                      >CGI::Carp itself should be more robust. I'm not sure if there is a mailing
                      list
                      >for those
                      >CGI modules? There must be, but I'm not subscribed to it.. perhaps someone
                      here
                      >could forward this discussion to the appropriate list or bug-report address?
                      >
                      >Cheers,
                      >
                      >Sean Meisner
                      >




                      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.