Roger,

Give Webware from the tip of CVS a try.  From perusing the CVS tree, it
looks like many optimizations and improvements have been made to MiddleKit
between 0.7 and now.

I can't say for sure that your problem has been fixed, but it's worth a try.
And in any case, any attempt to fix the problem should start with the most
up-to-date version of MiddleKit.

I hope I'm wrong, but unfortunately I suspect that MiddleKit still needs
some further work in order to be fully thread-safe.  In that case, you may
be able to work around thread-safety issues by using your own
threading.RLock objects in strategic places.

- Geoff

> -----Original Message-----
> From: Roger Haase [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 21, 2002 1:03 AM
> To: [EMAIL PROTECTED]
> Subject: [Webware-discuss] MiddleKit Threading Problem?
> 
> 
> I have finally had a repeat of the problem I last wrote about 
> on July 20.  I 
> have a web page that is trying to load several images at once 
> similar to:
> 
>          <img src="ShowPix?pid=4&tn=160">
> 
> The ShowPix.py servlet does several MySQL calls, then loads a 
> .jpg image from 
> the filesystem, messes with it, and writes out the modified image.
> 
> I haven't tried to do it yet, but I think I will be able to 
> recreate the 
> problem in a simple environment by initiating multiple 
> servlets all of which 
> try to access the same MySQL table row which is not yet 
> present in any cache. 
>  
> In the latest episode, I had been in the final stages of 
> testing a new 
> servlet for about 20 minutes, when I ran the servlet that creates 
> the web page containing the ShowPix transactions.  Of 5 
> images, only the 
> second one succeeded, the other four failed on the 
> MiddleObject.py assertion 
> error:
>               assert len(cache)+1==len(row)
> 
> I had modified MiddleObject.py just before the failing line:
>               if len(cache)+1<>len(row): 
>                       log = open('/home/roger/MiddleObject.txt', 'a')
>                       log.write('cache:' + str(cache) + '\n')
>                       log.write('row:' + str(row) + '\n')
>                       log.close()
> 
> The output from the above is:
> cache:[<unbound method Root.setName>, <unbound method 
> Root.setLinuxName>, 
> <unbound method Root.setName>, <unbound method Root.setLinuxName>]
> row:(1L, 'D:/Pix/', '/mnt/win_d/Pix/')
> 
> The "row" above is correct: serialNum 1, my Windows root 
> directory name, and 
> the same root linuxName used when I run under Linux.  The 
> cache seems to have 
> been duplicated, with Root.setName and Root.setLinuxName 
> appearing twice.  
> The "cache" value is persistent and all attempts to access 
> that row continue 
> to fail until the AppServer is restarted.  
> 
> Note that the second transaction succeeded, as if the first 
> transaction was 
> stopped for I/O, the second blew past it, and the first transaction 
> permanently trashed the "cache" when it resumed.  This is 
> very similar to the 
> circumstances that occurred on 7/19 when 6 of 7 similar 
> transactions failed 
> with the second one succeeding.
> 
> Further information is at:
> 
> http://www.users.qwest.net/~haaserd/Webware/Error-ShowPix.py-0
2-08-20.html
http://www.users.qwest.net/~haaserd/Webware/MiddleObject.py

I am running Webware version 7 with one fix to ServletFactory.py for another

threading problem.  

I would be happy to test any untested coding suggestions from any MiddleKit 
experts.  I am pretty sure I can code a simple example which will replicate 
the problem after a finite number of tries.

Roger Haase





                




-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
Webware-discuss mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-discuss


-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
Webware-discuss mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-discuss

Reply via email to