Skip Menu |
 

This queue is for tickets about the SOAP-Lite CPAN distribution.

Report information
The Basics
Id: 118455
Status: new
Priority: 0/
Queue: SOAP-Lite

People
Owner: Nobody in particular
Requestors: daniel [...] trustnetworks.co.uk
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



MIME-Version: 1.0
X-Spam-Status: No, score=-2.855 tagged_above=-99.9 required=10 tests=[AWL=-0.954, BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001] autolearn=ham
X-Spam-Flag: NO
Acceptlanguage: en-US, en-GB
Content-Language: en-US
content-type: text/plain; charset="utf-8"
Message-ID: <0278F52E2C71ED4E92D9DAC979200D290294A2BD58E6 [...] TRUSTSERVER.TrustNetworks.local>
X-Virus-Scanned: Debian amavisd-new at bestpractical.com
X-MS-Tnef-Correlator:
X-Spam-Score: -2.855
Received: from localhost (localhost [127.0.0.1]) by hipster.bestpractical.com (Postfix) with ESMTP id 7F858240350 for <cpan-bug+SOAP-Lite [...] hipster.bestpractical.com>; Fri, 21 Oct 2016 05:19:51 -0400 (EDT)
Received: from hipster.bestpractical.com ([127.0.0.1]) by localhost (hipster.bestpractical.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tH43LJxr4G69 for <cpan-bug+SOAP-Lite [...] hipster.bestpractical.com>; Fri, 21 Oct 2016 05:19:49 -0400 (EDT)
Received: from la.mx.develooper.com (x1.develooper.com [207.171.7.70]) by hipster.bestpractical.com (Postfix) with SMTP id 708B7240334 for <bug-SOAP-Lite [...] rt.cpan.org>; Fri, 21 Oct 2016 05:19:49 -0400 (EDT)
Received: (qmail 25134 invoked by alias); 21 Oct 2016 09:19:48 -0000
Received: from trustserver.trustnetworks.co.uk (HELO trustserver.trustnetworks.co.uk) (213.120.223.126) by la.mx.develooper.com (qpsmtpd/0.28) with ESMTP; Fri, 21 Oct 2016 02:19:45 -0700
Received: from TRUSTSERVER.TrustNetworks.local ([fe80::d14:a795:da8d:cf93]) by TRUSTSERVER.TrustNetworks.local ([fe80::d14:a795:da8d:cf93%10]) with mapi; Fri, 21 Oct 2016 10:19:39 +0100
Delivered-To: cpan-bug+SOAP-Lite [...] hipster.bestpractical.com
Subject: SOAP::Lite goes completely bananas when serialising an exception
Return-Path: <daniel [...] trustnetworks.co.uk>
Thread-Index: AdIrei34GlF377zoT1mQ903Yx1jpjA==
X-RT-Mail-Extension: soap-lite
X-Original-To: cpan-bug+SOAP-Lite [...] hipster.bestpractical.com
X-Spam-Check-BY: la.mx.develooper.com
Date: Fri, 21 Oct 2016 10:19:37 +0100
X-Spam-Level:
X-MS-Has-Attach:
Thread-Topic: SOAP::Lite goes completely bananas when serialising an exception
Accept-Language: en-US, en-GB
To: "bug-SOAP-Lite [...] rt.cpan.org" <bug-SOAP-Lite [...] rt.cpan.org>
Content-Transfer-Encoding: quoted-printable
From: Daniel Beardsmore <daniel [...] trustnetworks.co.uk>
X-RT-Original-Encoding: ascii
X-RT-Interface: Email
Content-Length: 1003
Download (untitled) / with headers
text/plain 1003b
I use my own exception class, which is nothing more than a bog standard blessed hash reference. If such an exception is raised within make_handle's eval, the code at line 2943 in Lite.pm ultimately leads to some kind of infinite loop/recursion that reached nearly 4 GB in a couple of minutes. I've amended the code thus, to resolve the crash. $@ is not actually altered, but the serialisation is now given a plain string to pass back, and it avoids the crash. Modified line 2943 onwards: # DGB 2016-10-21 Module experiences an excruciating death if it tries to serialise an exception object, so let's not do that my $stringified = 'Exception: ' . $@; # died with complex detail return $self->make_fault($SOAP::Constants::FAULT_SERVER, 'Application error' => $stringified); I don't know what's happening, but this method is called endlessly, with $_[1] being given alternately and randomly the stringified exception and some other text it's finding somewhere. sub gen_id { sprintf "%U", $_[1] }
MIME-Version: 1.0
X-Spam-Status: No, score=-2.776 tagged_above=-99.9 required=10 tests=[AWL=-0.875, BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001] autolearn=ham
X-Spam-Flag: NO
Acceptlanguage: en-US, en-GB
X-RT-Interface: API
Content-Language: en-US
X-Virus-Scanned: Debian amavisd-new at bestpractical.com
Message-ID: <0278F52E2C71ED4E92D9DAC979200D290294A2BD58F9 [...] TRUSTSERVER.TrustNetworks.local>
content-type: text/plain; charset="utf-8"
X-MS-Tnef-Correlator:
X-RT-Original-Encoding: utf-8
X-Spam-Score: -2.776
Received: from localhost (localhost [127.0.0.1]) by hipster.bestpractical.com (Postfix) with ESMTP id 727C3240245 for <cpan-bug+SOAP-Lite [...] hipster.bestpractical.com>; Fri, 21 Oct 2016 06:43:29 -0400 (EDT)
Received: from hipster.bestpractical.com ([127.0.0.1]) by localhost (hipster.bestpractical.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eX5EtZzrPVLy for <cpan-bug+SOAP-Lite [...] hipster.bestpractical.com>; Fri, 21 Oct 2016 06:43:27 -0400 (EDT)
Received: from la.mx.develooper.com (x1.develooper.com [207.171.7.70]) by hipster.bestpractical.com (Postfix) with SMTP id 73CD92401AC for <bug-SOAP-Lite [...] rt.cpan.org>; Fri, 21 Oct 2016 06:43:26 -0400 (EDT)
Received: (qmail 8761 invoked by alias); 21 Oct 2016 10:43:25 -0000
Received: from trustserver.trustnetworks.co.uk (HELO trustserver.trustnetworks.co.uk) (213.120.223.126) by la.mx.develooper.com (qpsmtpd/0.28) with ESMTP; Fri, 21 Oct 2016 03:43:21 -0700
Received: from TRUSTSERVER.TrustNetworks.local ([fe80::d14:a795:da8d:cf93]) by TRUSTSERVER.TrustNetworks.local ([fe80::d14:a795:da8d:cf93%10]) with mapi; Fri, 21 Oct 2016 11:43:15 +0100
Delivered-To: cpan-bug+SOAP-Lite [...] hipster.bestpractical.com
Subject: RE: [rt.cpan.org #118455] SOAP::Lite goes completely bananas when serialising an exception
Return-Path: <daniel [...] trustnetworks.co.uk>
X-Spam-Check-BY: la.mx.develooper.com
X-Original-To: cpan-bug+SOAP-Lite [...] hipster.bestpractical.com
X-RT-Mail-Extension: soap-lite
Thread-Index: AdIrh+tj/1HbGrqbRoKPXyEAx9j/rA==
Date: Fri, 21 Oct 2016 11:43:13 +0100
X-Spam-Level:
Thread-Topic: [rt.cpan.org #118455] SOAP::Lite goes completely bananas when serialising an exception
X-MS-Has-Attach:
To: "bug-SOAP-Lite [...] rt.cpan.org" <bug-SOAP-Lite [...] rt.cpan.org>
Accept-Language: en-US, en-GB
Content-Transfer-Encoding: base64
From: Daniel Beardsmore <daniel [...] trustnetworks.co.uk>
RT-Message-ID: <rt-4.0.18-13297-1477047101-1945.118455-0-0 [...] rt.cpan.org>
Content-Length: 1029
Ah, I think I know where it may be going wrong. I just remembered: one of the fields in my exception is a Devel::StackTrace object, and it appears that the crash occurs when serialising one of those, as that will be where the mystery text is coming from (just the path to the script, which I wasn't storing). Off-hand however I don't know what's actually occurring, i.e. what would be required to detect and trap problems with exception objects. However, I am not sure that it's really sensible to try serialising the entire contents of some random exception object you've never seen as you have no idea what's going to be in there. My objects stringify back to the bare error text so that if they're called in a context where you're not able or prepared to process the stack trace data they're carrying, you just get back largely the same message that was thrown originally. As I recall, SOAP::Fault does the same. Detailed error reporting can be handled via logging on the SOAP server machine from the unmodified $@.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.