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

Jeff Ortel jortel at redhat.com
Mon Oct 19 15:23:41 UTC 2009



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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5260 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/fedora-suds-list/attachments/20091019/f71f5f1f/attachment.p7s>


More information about the fedora-suds-list mailing list