Closed Bug 37913 Opened 25 years ago Closed 23 years ago

XmlRpcClient::call blocks forever

Categories

(Core :: XML, defect, P3)

defect

Tracking

()

RESOLVED WONTFIX
Future

People

(Reporter: mj, Assigned: mj)

Details

Calling XmlRpcClient::call blocks forever. This is because reading from a HTTPChannel::openInputStream() returned stream cannot take place on the same thread. See bug #22103. A fix for the latter bug will most likely also fix this one in one fell swoop.
Workaround: Use XmlRpcClient::asyncCall instead.
Status: NEW → ASSIGNED
Depends on: 22103
Target Milestone: --- → M18
No longer depends on: 22103
QA Contact: chrisd → petersen
Bug 22103 is verified fixed now.
Even though bug #22103 is now fixed, I can't get openInputStream to work. ::call now times out, because the inputStream.available() never goes beyond 0. Ruslan, I added you to the CC list because I am stumped on this one. Could you spare a minute and have a look? I duplicated the code into xpc-shell, and if I set nsIHttpChannel.openInputStreamHasEventQueue to false before calling openInputStream, it all works, but this doesn't hold up in my component. To reproduce: 0. Make sure that either bug #48564 is marked 'fixed' or use the attached patch. 1. Copy extensions/xml-rpc/test/xml-rpc.xul to dist/bin/chrome/packages/core/test/content/xml-rpc.xul (create path as necessary). 2/ Fire up Mozilla as 'mozilla -chrome chrome://test/content/xml-rpc.xul' 3. Fill in a number in the text field (between 1 and 50, IIRC. 12 is a safe bet). 3. Click 'Call Sync.' After a while you get a timeout exception. If you insert 'channel.openInputStreamHasEventQueue = false;' after line 124 things still don't work, even though they do in the xpc-shell. A tcp trace shows that the request headers get sent, but the POST body isn't, again, in xpc-shell this _does_ happen. To aid debugging, set DEBUG = true; in nsXmlRpcClient.js, line 39. If you are hungry for XML parsing events, set DEBUGPARSE to true as well. No preprocessor for JS.. ;)
Target Milestone: M18 → Future
Does the test still work? Or has the path/directory-structure to be changed to comply with new packaging rules? Is the README in xml-rpc/test still valid?
from darin: "it's WONTFIX due to the fact that providing it would make mozilla ui responsiveness suck" So I will remove the sync option from xml-rpc. I have the async part working again though.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → WONTFIX
Thanks Samuel, for fixing the async XML-RPC code. Much appreciated!
QA Contact: petersen → rakeshmishra
You need to log in before you can comment on or make changes to this bug.