Something's definitely wrong...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Something's definitely wrong...

Stephen F. Steiner
I'm using the xmlrpc MultiCall class pretty heavily in an application and every time I've somehow caused an error in the xmlrpclib.py code, I get an exception trying to raise the exception.

Here's the most recent example: 

grouped = grouper(2, tuple(mc_result))
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1001, in __getitem__
raise Fault(item['faultCode'], item['faultString'])
Fault: <Fault 1: "<type 'exceptions.TypeError'>:'NoneType' object is unsubscriptable">

I could understand if I was making some sort of coding error, then getting an error, but the Fault object itself, whenever it is used, seems to be generating some sort of new error either through its use, or, as above, the code attempting to construct the Fault object fails.

The thing that's confusing about the above error is that there's a check, just before the line of code that fails, that explictly checks whether the type of "item" == type({}): so the code shouldn't even get called with "NoneType".

This all smells horribly like corrupt memory so I'm hoping someone on this list has seen symptoms like this and can point me in the right direction to start tracking this down.

This, btw, is a pretty simple, maybe 200 line pure Python app that is using the XML-RPC interface, SQLite, and zlib functions.

I'm wondering if an earlier, uncaught error is actually setting this up but it's only happened about 4 times, at completely unpredictable times, and doesn't seem to be repeatable.

Definitely in line for best bug report ever.

Anyone seen this specific symptom, regardless of cause?

S

Stephen F. Steiner
Integrated Development Corporation
(603)433-1232





_______________________________________________
XML-SIG maillist  -  [hidden email]
http://mail.python.org/mailman/listinfo/xml-sig
Reply | Threaded
Open this post in threaded view
|

Re: Something's definitely wrong...

Dieter Maurer
ssteiner@idc wrote at 2010-1-20 08:43 -0500:
>I'm using the xmlrpc MultiCall class pretty heavily in an application and every time I've somehow caused an error in the xmlrpclib.py code, I get an exception trying to raise the exception.
>
>Here's the most recent example:
>
>grouped = grouper(2, tuple(mc_result))
>File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1001, in __getitem__
>raise Fault(item['faultCode'], item['faultString'])
>Fault: <Fault 1: "<type 'exceptions.TypeError'>:'NoneType' object is unsubscriptable">

You see here the client side code to report that an exception
has happened on the server side.

The "TypeError" was not raised at this place but on the server side.
Here, a "Fault" is (successfully) raised with "faultCode" 1 and "faultString"
"<type 'exceptions.TypeError'>:'NoneType' object is unsubscriptable">.

If you are lucky, the server side has logged information for
the raised exception. If not, you need to convince the server side
to do so.



--
Dieter
_______________________________________________
XML-SIG maillist  -  [hidden email]
http://mail.python.org/mailman/listinfo/xml-sig
Reply | Threaded
Open this post in threaded view
|

Re: Something's definitely wrong...

Stephen F. Steiner

On Jan 21, 2010, at 8:42 AM, Dieter Maurer wrote:

> ssteiner@idc wrote at 2010-1-20 08:43 -0500:
>> I'm using the xmlrpc MultiCall class pretty heavily in an application and every time I've somehow caused an error in the xmlrpclib.py code, I get an exception trying to raise the exception.
>>
>> Here's the most recent example:
>>
>> grouped = grouper(2, tuple(mc_result))
>> File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1001, in __getitem__
>> raise Fault(item['faultCode'], item['faultString'])
>> Fault: <Fault 1: "<type 'exceptions.TypeError'>:'NoneType' object is unsubscriptable">
>
> You see here the client side code to report that an exception
> has happened on the server side.
>
> The "TypeError" was not raised at this place but on the server side.
> Here, a "Fault" is (successfully) raised with "faultCode" 1 and "faultString"
> "<type 'exceptions.TypeError'>:'NoneType' object is unsubscriptable">.
>
> If you are lucky, the server side has logged information for
> the raised exception. If not, you need to convince the server side
> to do so.

Thanks, this is the first time I've used this particular interface; I'll forward to the site operator.

Thanks again,

S

_______________________________________________
XML-SIG maillist  -  [hidden email]
http://mail.python.org/mailman/listinfo/xml-sig