Closed Bug 569385 Opened 14 years ago Closed 13 years ago

Incompatible with SOAP-Lite-0.711

Categories

(Bugzilla :: WebService, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 600810

People

(Reporter: otaylor, Unassigned)

Details

With the recently released SOAP-Lite 0.711, all requests fail with:

 Application failed during request deserialization:
 no element found at line 1, column 0, byte -1 at 
 /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser.pm line
187

https://bugzilla.gnome.org/show_bug.cgi?id=620231

What is going on is that in SOAP/Transport/HTTP.pm it was changed to read the body of the request via sysread() instead of read(), and for some reason or the other (not diagnosed) that doesn't work in the Bugzilla environment. 

This change was made as part of a big messy change to fix problems with bytes vs. characters.

http://soaplite.svn.sourceforge.net/viewvc/soaplite?view=rev&revision=334

Reverting the change at line 564 and going back to read:

-            while ( sysread( STDIN, $buffer, $length ) ) {
+            while ( read( STDIN, $buffer, $length ) ) {
                $content .= $buffer;
                last if ( length($content) >= $length );
            }

Makes Bugzilla XMLRPC work correctly, but probably has negative consequences elsewhere. Don't really have time right now to figure out whether there's a fix for SOAP-Lite to correctly use read(), or whether something can be changed in the Bugzilla environment to make sysread() work, but I wanted to write down here what I did discover.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.