There is a long standing problem that MiddleKit doesn't like MySQLdb 0.9.2, although it gets along great with 0.9.1 and many versions prior. Under MySQLdb 0.9.2, some of the MiddleKit tests yield "Too many connections":
[snip] File "C:\All\echuck\Projects\Webware\MiddleKit\Run\MySQLObjectStore.py", line 34, in newConnection conn = self.dbapiModule().connect(**args) File "C:\Python23\Lib\site-packages\MySQLdb\__init__.py", line 63, in Connect return apply(Connection, args, kwargs) File "C:\Python23\Lib\site-packages\MySQLdb\connections.py", line 115, in __init__ self._make_connection(args, kwargs2) File "C:\Python23\Lib\site-packages\MySQLdb\connections.py", line 41, in _make_connection apply(super(ConnectionBase, self).__init__, args, kwargs) OperationalError: (1040, 'Too many connections') In fact, here are the results: RESULTS ------- succeeded MKBasic.mkmodel succeeded MKNone.mkmodel succeeded MKString.mkmodel succeeded MKDateTime.mkmodel succeeded MKDefaultMinMax.mkmodel succeeded MKTypeValueChecking.mkmodel succeeded MKInheritance.mkmodel succeeded MKInheritanceAbstract.mkmodel succeeded MKList.mkmodel succeeded MKObjRef.mkmodel succeeded MKObjRefReuse.mkmodel *** FAILED *** MKDelete.mkmodel *** FAILED *** MKDeleteMark.mkmodel succeeded MKMultipleStores.mkmodel *** FAILED *** MKMultipleThreads.mkmodel succeeded MKModelInh1.mkmodel succeeded MKModelInh2.mkmodel succeeded MKModelInh3.mkmodel This problem is so bad that one of the tests completely freezes and I have to *kill* it with the Task Manager. (Each MK test is run in a separate process, so the main Test.py keeps going with the other ones after any kind of failure.) IIRC this problem happens under Linux as well, but it would be nice to verify. Also, it happens with both Python 2.2.x and 2.3.x. I spoke with Andy Dustman, author of MySQLdb, awhile back but didn't convince him it was a MySQLdb flaw (which is still my inclination, but not proven) nor did the two of us come up with any good ideas. The impact of this problem goes like this: If a new user (or a user with a new machine like me) downloads the latest stable versions of Python, Webware and MySQLdb, then that user will have this problem. Yuk. Also, MySQLdb doesn't provide a 0.9.1 binary for Python 2.3 so the fix isn't as easy as a download. Btw I tried this really cheesy fix: import gc, time reload(MySQLdb) gc.collect() time.sleep(0.5) with a loop of 5 attempts. No change in results. And my db server is not used by anything else. It's completely local, private and freshly installed. I will follow up more on this, but for now it's getting late. I'd appreciate any kind of help on this, even if it's as small as running the test suite on platform X and reporting the results. Of course, solutions are welcome too. :-) So are speculations. And finally, instructions to run the test suite: * cd to MiddleKit/Tests * if you're in cvs: cvs upd -dP * If needed, edit TestRun.py line 23 from store = MySQLObjectStore() to store = MySQLObjectStore(user='foo', passwd='bar') * If needed, edit Test.py line 28 from return 'mysql' to return 'mysql -u foo -pbar' * Type: python Test.py MKDelete * or to run all tests, simply: python Test.py All tests take 75 seconds on my 3GHz P4. Sorry for the two edits. I plan to factor those out to a config file so you can specify all the info in one place or via command line. -Chuck -- http://ChuckEsterbrook.com/ ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ Webware-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/webware-devel