[ZODB-Dev] Wrong blob returned in one of the zeo clients

Maurits van Rees m.van.rees at zestsoftware.nl
Tue Mar 1 10:05:55 EST 2011


Op 01-03-11 13:54, Maurits van Rees schreef:
> Op 01-03-11 04:41, Shane Hathaway schreef:
>> On 02/28/2011 09:29 AM, Maurits van Rees wrote:
>>> This is now also happening for some images during normal operation, so
>>> after any blob migration has been run and existing blob caches have been
>>> cleared.  What happens is that somehow the file contents for
>>> 0xblahblah.blob in the blob caches can differ between two zeo clients,
>>> even when the image has not changed at all (only tried with images as it
>>> is easier to spot than with other files).
>>
>> Thanks for the report.  Looking through the blob code, I noticed that
>> when the system is using a blob cache, it was possible for a thread to
>> get a partial file while another thread is downloading that file.  I
>> suspect this is the problem you saw.  I have committed a fix.
>
> Thanks!  I'll test this.

No, I am still seeing it.  I now see more clearly that the problem is 
that two files share the same blob name.  I completely remove the blob 
cache and restart the zeo client.  I visit image number 1 and get this 
file in the var/blobcache:
291/0x038c599924e70177.blob

I then visit the second image and get served the same file!  Now I 
remove this file from the blob cache, load the second image in a browser 
and this time I get the correct content for this image, using the same 
file name in the var/blobcache directory.  Now of course loading the 
first image gives the wrong content.

The .layout file is set to 'zeocache'.

Any idea where the error might be?  Could this be in plone.app.blob? 
Any chance that this is better in ZODB 3.9+?


-- 
Maurits van Rees
Web App Programmer at Zest Software: http://zestsoftware.nl
Personal website: http://maurits.vanrees.org/



More information about the ZODB-Dev mailing list