Hi, this is nasty. We detected a couple of hangs with a Zope 2.7.7 final and (using the DeadlockDebugger) we found this situation in every of the four threads: (See attached file for complete listing of all threads)
Threads traceback dump at 2005-10-05 14:14:07 Thread 16386 (GET /psdsite/psd/niProductGroupsContainer/5/psdsite/vendoOrderItem.gif): File "/home/bpm/zope/lib/python/ZServer/PubCore/ZServerPublisher.py", line 23, in __init__ response=response) File "/home/bpm/instance/Products/ZopeProfiler/MonkeyPatcher.py", line 35, in __call__ return self._function(*args,**kw) File "/home/bpm/instance/Products/ZopeProfiler/ZopeProfiler.py", line 352, in _profilePublishModule request=request, response=response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 384, in publish_module environ, debug, request, response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 175, in publish_module_standard response = publish(request, module_name, after_list, debug=debug) File "/home/bpm/instance/Products/PlacelessTranslationService/PatchStringIO.py", line 51, in new_publish x = Publish.old_publish(request, module_name, after_list, debug) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 107, in publish transactions_manager.commit() File "/home/bpm/zope/lib/python/Zope/App/startup.py", line 222, in commit get_transaction().commit() File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 240, in commit self._commit_begin(jars, subjars, subtransaction) File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 348, in _commit_begin jar.tpc_begin(self) File "/home/bpm/zope/lib/python/ZODB/Connection.py", line 729, in tpc_begin self._storage.tpc_begin(transaction) File "/home/bpm/zope/lib/python/ZODB/BaseStorage.py", line 163, in tpc_begin self._commit_lock_acquire() We then looked at the locks in BaseStorage, and what I found is that in tpc_finish, the commit_lock will be freed in any case (using a finally clause) whereas in tpc_abort, there might be a race condition that does not free the commit_lock. (the finally clause only covers a second, different lock). Additionally, we are using Ape running on a postgres backend, so this might trigger some unusual side effects, maybe this possible race condition. (If someone has another suspicion where this hang might come from, I'm all your's to listen) Best regards, Christian -- gocept gmbh & co. kg - schalaunische str. 6 - 06366 koethen - germany www.gocept.com - [EMAIL PROTECTED] - phone +49 3496 30 99 112 - fax +49 3496 30 99 118 - zope and plone consulting and development
Threads traceback dump at 2005-10-05 14:14:07 Thread 16386 (GET /psdsite/psd/niProductGroupsContainer/5/psdsite/vendoOrderItem.gif): File "/home/bpm/zope/lib/python/ZServer/PubCore/ZServerPublisher.py", line 23, in __init__ response=response) File "/home/bpm/instance/Products/ZopeProfiler/MonkeyPatcher.py", line 35, in __call__ return self._function(*args,**kw) File "/home/bpm/instance/Products/ZopeProfiler/ZopeProfiler.py", line 352, in _profilePublishModule request=request, response=response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 384, in publish_module environ, debug, request, response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 175, in publish_module_standard response = publish(request, module_name, after_list, debug=debug) File "/home/bpm/instance/Products/PlacelessTranslationService/PatchStringIO.py", line 51, in new_publish x = Publish.old_publish(request, module_name, after_list, debug) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 107, in publish transactions_manager.commit() File "/home/bpm/zope/lib/python/Zope/App/startup.py", line 222, in commit get_transaction().commit() File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 240, in commit self._commit_begin(jars, subjars, subtransaction) File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 348, in _commit_begin jar.tpc_begin(self) File "/home/bpm/zope/lib/python/ZODB/Connection.py", line 729, in tpc_begin self._storage.tpc_begin(transaction) File "/home/bpm/zope/lib/python/ZODB/BaseStorage.py", line 163, in tpc_begin self._commit_lock_acquire() Thread 32771 (GET /psdsite/psd/niProductGroupsContainer/5/psdsite/vendoOrder.gif): File "/home/bpm/zope/lib/python/ZServer/PubCore/ZServerPublisher.py", line 23, in __init__ response=response) File "/home/bpm/instance/Products/ZopeProfiler/MonkeyPatcher.py", line 35, in __call__ return self._function(*args,**kw) File "/home/bpm/instance/Products/ZopeProfiler/ZopeProfiler.py", line 352, in _profilePublishModule request=request, response=response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 384, in publish_module environ, debug, request, response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 175, in publish_module_standard response = publish(request, module_name, after_list, debug=debug) File "/home/bpm/instance/Products/PlacelessTranslationService/PatchStringIO.py", line 51, in new_publish x = Publish.old_publish(request, module_name, after_list, debug) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 107, in publish transactions_manager.commit() File "/home/bpm/zope/lib/python/Zope/App/startup.py", line 222, in commit get_transaction().commit() File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 240, in commit self._commit_begin(jars, subjars, subtransaction) File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 348, in _commit_begin jar.tpc_begin(self) File "/home/bpm/zope/lib/python/ZODB/Connection.py", line 729, in tpc_begin self._storage.tpc_begin(transaction) File "/home/bpm/zope/lib/python/ZODB/BaseStorage.py", line 163, in tpc_begin self._commit_lock_acquire() Thread 49156 (GET /psdsite/psd/niProductGroupsContainer/5/497/psdcontainer_view): File "/home/bpm/zope/lib/python/ZServer/PubCore/ZServerPublisher.py", line 23, in __init__ response=response) File "/home/bpm/instance/Products/ZopeProfiler/MonkeyPatcher.py", line 35, in __call__ return self._function(*args,**kw) File "/home/bpm/instance/Products/ZopeProfiler/ZopeProfiler.py", line 352, in _profilePublishModule request=request, response=response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 384, in publish_module environ, debug, request, response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 175, in publish_module_standard response = publish(request, module_name, after_list, debug=debug) File "/home/bpm/instance/Products/PlacelessTranslationService/PatchStringIO.py", line 51, in new_publish x = Publish.old_publish(request, module_name, after_list, debug) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 107, in publish transactions_manager.commit() File "/home/bpm/zope/lib/python/Zope/App/startup.py", line 222, in commit get_transaction().commit() File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 240, in commit self._commit_begin(jars, subjars, subtransaction) File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 348, in _commit_begin jar.tpc_begin(self) File "/home/bpm/zope/lib/python/ZODB/Connection.py", line 729, in tpc_begin self._storage.tpc_begin(transaction) File "/home/bpm/zope/lib/python/ZODB/BaseStorage.py", line 163, in tpc_begin self._commit_lock_acquire() Thread 65541 (GET /psdsite/psd/niProductGroupsContainer/5/psdsite/folder_icon.gif): File "/home/bpm/zope/lib/python/ZServer/PubCore/ZServerPublisher.py", line 23, in __init__ response=response) File "/home/bpm/instance/Products/ZopeProfiler/MonkeyPatcher.py", line 35, in __call__ return self._function(*args,**kw) File "/home/bpm/instance/Products/ZopeProfiler/ZopeProfiler.py", line 352, in _profilePublishModule request=request, response=response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 384, in publish_module environ, debug, request, response) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 175, in publish_module_standard response = publish(request, module_name, after_list, debug=debug) File "/home/bpm/instance/Products/PlacelessTranslationService/PatchStringIO.py", line 51, in new_publish x = Publish.old_publish(request, module_name, after_list, debug) File "/home/bpm/zope/lib/python/ZPublisher/Publish.py", line 107, in publish transactions_manager.commit() File "/home/bpm/zope/lib/python/Zope/App/startup.py", line 222, in commit get_transaction().commit() File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 240, in commit self._commit_begin(jars, subjars, subtransaction) File "/home/bpm/zope/lib/python/ZODB/Transaction.py", line 348, in _commit_begin jar.tpc_begin(self) File "/home/bpm/zope/lib/python/ZODB/Connection.py", line 729, in tpc_begin self._storage.tpc_begin(transaction) File "/home/bpm/zope/lib/python/ZODB/BaseStorage.py", line 163, in tpc_begin self._commit_lock_acquire() End of dump
signature.asc
Description: This is a digitally signed message part
_______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev