[Fedora-suds-list] Stale suds cache causing wsdl parser errors

Matt C mcauthorn at gmail.com
Wed Oct 21 13:27:50 UTC 2009


In my case, I do much of my work using the iPython shell so I suppose
it's possible that it is corrupting the cache somehow when I shut
down. For my project I've got so many wsdls that I need to store them
on local disk, so caching isn't mandatory for me.

-Matt

On Mon, Oct 19, 2009 at 12:25 PM, Drew Bryant <drew.h.bryant at gmail.com> wrote:
> As to how the cache became corrupted, I believe that I killed a
> running process that was in the middle of parsing a WSDL at some
> point.  I didn't make the connection between doing this and subsequent
> parsing problems because the service's WSDL had changed recently; I
> figured it was a malformed WSDL.
>
> Thanks guys and nice work on suds.
>
> Drew
>
> On Mon, Oct 19, 2009 at 10:23 AM, Jeff Ortel <jortel at redhat.com> wrote:
>>
>>
>> On 10/18/2009 08:16 AM, Matt C wrote:
>>>
>>> I run into this as well. Passing "cache = None" into the Client()
>>> constructor should help you work around the issue.
>>> -Matt
>>>
>>> On Sat, Oct 17, 2009 at 3:33 PM, Drew Bryant<drew.h.bryant at gmail.com>
>>>  wrote:
>>>>
>>>> Hello,
>>>>
>>>> The protein data bank webservice that I commonly use updated their
>>>> wsdl recently, and when attempting to construct a
>>>> suds.client.Client(url) object for the service I was continually
>>>> getting the following error:
>>>> ERROR: An unexpected error occurred while tokenizing input
>>>> The following traceback may be corrupted or invalid
>>>> The error message is: ('EOF in multi-line statement', (129, 0))
>>>>
>>>> followed by a large traceback that ultimately failed in the
>>>> xml.sax.expatreader module as shown below:
>>>> SAXParseException:
>>>>
>>>> /var/folders/aS/aScvrYapHoCwNJHk1sw9LE+++TI/-Tmp-/suds/suds-649682136.http:10:2:
>>>> mismatched tag
>>>>
>>>> I was getting a similar error with several other web services that had
>>>> recently modified their wsdls so I removed all of the files in the
>>>> suds tmp folder:
>>>> /var/folders/aS/aScvrYapHoCwNJHk1sw9LE+++TI/-Tmp-/suds
>>>> (this is the path selected by suds on my mac running OS X 10.5.8)
>>>>
>>>> After removing these tmp files, everything worked fine and I was able
>>>> to construct the suds.client.Client instances without issues.
>>>>
>>>> This is the version of suds that I'm using (via macports):
>>>> ====================================
>>>> py25-suds @0.3.6 (python, devel, net)
>>>>
>>>> Description:          Suds is a lightweight SOAP python client for
>>>> consuming Web Services.
>>>> Homepage:             https://fedorahosted.org/suds/
>>>>
>>>> Build Dependencies:   py25-setuptools
>>>> Library Dependencies: python25
>>>> Platforms:            darwin
>>>> License:              unknown
>>>> Maintainers:          mmoll at macports.org, openmaintainer at macports.org
>>>> ====================================
>>>>
>>>> one of the SOAP services I was accessing:
>>>> http://www.rcsb.org/pdb/services/pdbws?wsdl
>>>>
>>>> Basically, I resolved my problem already, but I was wondering why suds
>>>> was using stale information in its tmp directory instead of building
>>>> the Clients from scratch.
>>
>> By default, suds caches WSDLs and XSDs locally for 1 day.  The cache is used
>> for better performance and quicker Client construction.  Also, WSDLs and XSD
>> files tend to be very static so gettting them from the server everytime
>> usually provides little value.  But, in cases where you want suds to get
>> these files from the server every time, you can specify that suds not do any
>> caching (as Matt mentioned) by setting the /cache/ option in the Client
>> constructor.
>>
>> The real question is: how does the cache get corrupted in the first place?
>>  This happens when either: suds is interrupted while writing the cache file;
>> two clients on the same machine are writing to the cache at the same time.
>>  Are either of you running more then one copy of the Client on your machine?
>>  If not, any idea how the client can be get interrupted while loading the
>> WSDL?
>>
>> In any case, I will make the caching more robust.
>>
>> Is this an error with suds not removing
>>>>
>>>> stale cache files?  I can easily clear this directory every time I
>>>> want to construct a new Client to guarantee that I won't run into this
>>>> issue again, but is this a good idea?
>>>>
>>>> Thanks,
>>>> Drew
>>>>
>>>> _______________________________________________
>>>> fedora-suds-list mailing list
>>>> fedora-suds-list at redhat.com
>>>> https://www.redhat.com/mailman/listinfo/fedora-suds-list
>>>>
>>>
>>> _______________________________________________
>>> fedora-suds-list mailing list
>>> fedora-suds-list at redhat.com
>>> https://www.redhat.com/mailman/listinfo/fedora-suds-list
>>
>>
>




More information about the fedora-suds-list mailing list