Skip Menu |

This queue is for tickets about the SOAP CPAN distribution.

Report information
The Basics
Id: 115864
Status: new
Priority: 0/
Queue: SOAP

People
Owner: Nobody in particular
Requestors: om.thapa [...] gmail.com
Cc:
AdminCc:

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



Subject: SOAP::Lite client waits forever until server TCP RST for a particular size response
Date: Tue, 5 Jul 2016 00:19:36 +0545
To: bug-SOAP [...] rt.cpan.org
From: Om Bikram Thapa <om.thapa [...] gmail.com>
Hello, I am using SOAP::Lite client version 1.20 for MS Navision web service using ubuntu 12.04 and perl 5.14.2. Problem I am facing is that the client keeps waiting for server response, though the server had already replied as seen from tcpdump. Ultimately the server sends TCP RST and only after that client completes with correct received data. Strangely enough, I see this problem with HTTP response of size 877 bytes (or tcpdump size 1024 bytes) only. For other content lengths, more or less, the client works as expected, i.e. it sends TCP FIN as soon as server replies with data, thus completing the transaction in an expected manner. From what I see, the client expects more data from the server, only in case of response size of 877 bytes and keeps waiting until server resets the connection. I tried with CentOS using perl 5.10.1 and SOAP::Lite 1.20 and I get the same result as above. Thanks, Om.
Subject: Re: [rt.cpan.org #115864] AutoReply: SOAP::Lite client waits forever until server TCP RST for a particular size response
Date: Thu, 7 Jul 2016 14:32:29 +0545
To: bug-SOAP [...] rt.cpan.org
From: Om Bikram Thapa <om.thapa [...] gmail.com>
It turns out that if HTTP response content length is 1024 bytes for this particular query, "sysread" inside subroutine my_readline of file Net::HTTP/Methods.pm is returning undef with EAGAIN instead of EOF (0) in the next sysread loop iteration. I don't know why it happens with this particular request only, as other 1024 byte response produces EOF as expected. I have modified sysread($_, 1024, length) with sysread($_, 2048, length) in Net/HTTP/Methods.pm. Hope increasing read size won't break other things. Thanks, Om. On Tue, Jul 5, 2016 at 12:19 AM, Bugs in SOAP via RT <bug-SOAP@rt.cpan.org> wrote: Show quoted text
> > Greetings, > > This message has been automatically generated in response to the > creation of a trouble ticket regarding: > "SOAP::Lite client waits forever until server TCP RST for a > particular size response", > a summary of which appears below. > > There is no need to reply to this message right now. Your ticket has been > assigned an ID of [rt.cpan.org #115864]. Your ticket is accessible > on the web at: > > https://rt.cpan.org/Ticket/Display.html?id=115864 > > Please include the string: > > [rt.cpan.org #115864] > > in the subject line of all future correspondence about this issue. To do > so, > you may reply to this message. > > Thank you, > bug-SOAP@rt.cpan.org > > ------------------------------------------------------------------------- > Hello, > > I am using SOAP::Lite client version 1.20 for MS Navision web service using > ubuntu 12.04 and perl 5.14.2. > > Problem I am facing is that the client keeps waiting for server response, > though the server had already replied as seen from tcpdump. Ultimately the > server sends TCP RST and only after that client completes with correct > received data. > > Strangely enough, I see this problem with HTTP response of size 877 bytes > (or tcpdump size 1024 bytes) only. For other content lengths, more or less, > the client works as expected, i.e. it sends TCP FIN as soon as server > replies with data, thus completing the transaction in an expected manner. > > From what I see, the client expects more data from the server, only in case > of response size of 877 bytes and keeps waiting until server resets the > connection. > > I tried with CentOS using perl 5.10.1 and SOAP::Lite 1.20 and I get the > same result as above. > > Thanks, > Om. >