I just checked in a fix to Webware CVS.  Give it a try.

- Geoff

On Sun, 2002-07-14 at 12:36, Geoff Talvola wrote:
> This isn't a Python problem -- it's a bug in Webware.
> 
> If you put a print statement at the end of UnboundMethodError.py you'll
> find that the module actually gets imported multiple times.  This
> somehow causes a mismatch between the instances and the classes that
> triggers the error you're noticing.
> 
> If you restart the appserver, then use your web browser to directly
> access the UnboundMethodError servlet, then go to UnboundMethod.html,
> the error goes away.  The images come up fine with no errors as long as
> the appserver stays running.
> 
> What this leads me to believe is that there is a race condition in
> WebKit.  If there are multiple simultaneous requests for a servlet that
> hasn't yet been loaded, the module containing the servlet gets imported
> multiple times simultaneously, causing various errors.  This would
> persist through the lifetime of the appserver since it never throws away
> old servlet instances.  But if the first access for the servlet occurs
> in isolation, then the problem is avoided.
> 
> I'll see if I can add some locking into ServletFactory to solve the
> problem.
> 
> - Geoff
> 
> 
> On Sat, 2002-07-13 at 22:48, Roger Haase wrote:
> > I got lucky yesterday and stumbled across a solution which has been right in 
> > front of me on the failing line.  My problem seems to be rooted in Python.  I 
> > wrote the following with the intention of posting to the Python bug list.  
> > Does this sound reasonable?
> > 
> > 
> > TypeError: unbound Method 
> >  
> > I sometimes receive the following error: 
> >  
> > TypeError: unbound method getImage() must be called with UnboundMethodError 
> > instance as first argument (got UnboundMethodError instance instead) 
> >  
> > As the message states, the required object instance is the same as the object 
> > instance passed. 
> >  
> > The problem occurs only when using the calling form: 
> >     className.methodName(self,arg,..) 
> > and an easy workaround is to use the form: 
> >     self.methodName(arg,...) 
> >  
> > The error occurs rarely and unpredictably on both Linux and Windows/ME using 
> > Python 2.1.1 and 2.2.1 (ActiveState distribution on Windows) in a web 
> > application that uses Apache as a web server and the Webware/WebKit 
> > application framework. I was able to recreate the problem in a simple test 
> > case.  See: 
> >     http://www.users.qwest.net/~haaserd/Unbound/UnboundMethod.html 
> >     http://www.users.qwest.net/~haaserd/Unbound/UnboundMethodError.py 
> >     http://www.users.qwest.net/~haaserd/Unbound/Error1.html 
> >     http://www.users.qwest.net/~haaserd/Unbound/Error2.html 
> >  
> > Note: UnboundMethod.html will fail to load images, do a view source. 
> >  
> > When loaded in its required environment, UnboundMethod.html displays 12 
> > images by requesting a Webware/WebKit servlet: 
> >     <img src="UnboundMethodError?fileName=P10100xx.JPG"> 
> >  
> > The Webware/WebKit AppServer passes control to the writeHTML function within 
> > the UnboundMethodError.py script.  This forms a fully qualified filename and 
> > passes it to the getImage function via: 
> >     img = UnboundMethodError.getImage(self,fileName,1000) 
> > The two html pages error1.html and error2.html are the Webware/WebKit 
> > formatted abends from 2 of the 12 invocations which failed at the above 
> > statement.  The failing images in this case were numbers 3 and 8.  The other 
> > 10 images were displayed correctly. 
> >  
> > For normal processing, the writeHTML function calls getImage. The recursive 
> > calls made by getImage were an unsuccessful attempt to increase the number of 
> > errors.  The getImage2 function uses PIL to read the JPG file, reduce it to a 
> > thumbnail, and return the image. 
> >  
> > Until about one month ago, this error has occurred perhaps 20 times over a 
> > year on an AMD Athlon 700 and AMD Duron 1000 using Python 2.1.1 on both Linux 
> > and Windows/ME.  The failure occurred in a script ShowPix.py which is more 
> > complex than the test case above.  The usual circumstances were Apache and 
> > MySQL (and perhaps several other applications) were running, the 
> > Webware/WebKit AppServer is started/restarted and (rarely) the first 
> > transaction to display an image using ShowPix.py would fail on the unbound 
> > method error.  After the first failure, there were no additional failures.  I 
> > should note I am retired and doing this as a hobby so the 20 errors over a 
> > year occurred during 300 - 500 hours of programming and testing. 
> >  
> > Within the last month I changed my test system over to an Intel 1.5 and 
> > downloaded more current versions of all software, including Python 2.2.1 
> > (ActiveState distribution under Windows) and the frequency of the error has 
> > increased.  Instead of just the one failure described above, now when the 
> > problem occurs (immediately after starting/restarting the Webware AppServer) 
> > about 20% of the ShowPix.py transactions displaying images fail.  In a web 
> > page which displays 9 to 100 images, the failing instances are scattered more 
> > or less evenly over the page.  Redisplaying the same page results in about 
> > the same number of errors but a different set of images fail with each reload 
> > of the page.  All pages using the ShowPix.py script will continue to produce 
> > failures at about the 20% rate until I restart the Webware Appserver.  
> >  
> > I have been unable to establish a cause/effect relationship as to why this 
> > error sometimes occurs.  I suspect it is related to my starting another 
> > unrelated application such as MS Word or Excel, etc. during the course of my 
> > testing.  I can not make the error occur on demand, and was only able to 
> > provide the test case above by creating the script during one of the recent 
> > failing episodes before restarting the Webware AppServer.  Also, I have been 
> > unable to recreate the problem over a 3 hour period by running only the 
> > simple test case and restarting the AppServer many times.  So there may be 
> > some other curious code in my Python-only application which sets up the error 
> > condition. 
> >  
> > I should note the original failing module (ShowPix.py) is one of my first 
> > Python programs written when I used the className.methodName(self) style of 
> > calls.  When I changed the abending statement to the self.methodName() form, 
> > the error in ShowPix.py moved to a second instance of the 
> > className.methodName style of call.  When I changed all of the calls within 
> > ShowPix.py to the self.methodName, the errors stopped and I took the 
> > opportunity (before stopping the AppServer) to write the test case described 
> > above. 
> >  
> > If you need any other information, I can be reached at [EMAIL PROTECTED] 
> >  
> > Roger Haase 
> > 
> > 
> > 
> > On Friday 12 July 2002 05:32 am, Geoff Talvola wrote:
> > > On Thu, 2002-07-11 at 15:06, Roger wrote:
> > > > Any ideas on what to try next?
> > >
> > > Not really.  Are you willing to send me a copy of your code and the full
> > > traceback you're getting?  I think I need to actually see the code to
> > > try to understand what's wrong.
> > >
> > > - Geoff
> > 
> > 
> > 
> > -------------------------------------------------------
> > This sf.net email is sponsored by:ThinkGeek
> > Welcome to geek heaven.
> > http://thinkgeek.com/sf
> > _______________________________________________
> > Webware-discuss mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/webware-discuss
> 
> 
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Webware-discuss mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/webware-discuss




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Webware-discuss mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-discuss

Reply via email to