[Erp5-report] r19090 - in /erp5/trunk/products/CMFActivity/Activity: SQLDict.py SQLQueue.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 5 23:39:58 CET 2008


Author: vincent
Date: Tue Feb  5 23:39:58 2008
New Revision: 19090

URL: http://svn.erp5.org?rev=19090&view=rev
Log:
Lower log priority from PANIC to ERROR for message status handling definitive errors (reserve PANIC priority to permanent data inconsistency).
When a PANIC level error happens, re-raise after logging instead of simply returning.

Modified:
    erp5/trunk/products/CMFActivity/Activity/SQLDict.py
    erp5/trunk/products/CMFActivity/Activity/SQLQueue.py

Modified: erp5/trunk/products/CMFActivity/Activity/SQLDict.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLDict.py?rev=19090&r1=19089&r2=19090&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLDict.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLDict.py Tue Feb  5 23:39:58 2008
@@ -294,7 +294,7 @@
         try:
           makeMessageListAvailable(to_free_uid_list)
         except:
-          LOG('SQLDict', PANIC, 'Failed to free messages: %r' % (to_free_uid_list, ), error=sys.exc_info())
+          LOG('SQLDict', ERROR, 'Failed to free messages: %r' % (to_free_uid_list, ), error=sys.exc_info())
         else:
           if len(to_free_uid_list):
             LOG('SQLDict', TRACE, 'Freed messages %r' % (to_free_uid_list, ))
@@ -350,7 +350,7 @@
       try:
         activity_tool.SQLDict_delMessage(uid=deletable_uid_list)
       except:
-        LOG('SQLDict', PANIC, 'Failed to delete messages %r' % (deletable_uid_list, ), error=sys.exc_info())
+        LOG('SQLDict', ERROR, 'Failed to delete messages %r' % (deletable_uid_list, ), error=sys.exc_info())
       else:
         LOG('SQLDict', TRACE, 'Deleted messages %r' % (deletable_uid_list, ))
     if len(delay_uid_list):
@@ -358,19 +358,19 @@
         # If this is a conflict error, do not lower the priority but only delay.
         activity_tool.SQLDict_setPriority(uid=delay_uid_list, delay=VALIDATION_ERROR_DELAY)
       except:
-        LOG('SQLDict', PANIC, 'Failed to delay %r' % (delay_uid_list, ), error=sys.exc_info())
+        LOG('SQLDict', ERROR, 'Failed to delay %r' % (delay_uid_list, ), error=sys.exc_info())
       make_available_uid_list += delay_uid_list
     if len(final_error_uid_list):
       try:
         activity_tool.SQLDict_assignMessage(uid=final_error_uid_list,
                                             processing_node=INVOKE_ERROR_STATE)
       except:
-        LOG('SQLDict', PANIC, 'Failed to set message to error state for %r' % (final_error_uid_list, ), error=sys.exc_info())
+        LOG('SQLDict', ERROR, 'Failed to set message to error state for %r' % (final_error_uid_list, ), error=sys.exc_info())
     if len(make_available_uid_list):
       try:
         makeMessageListAvailable(make_available_uid_list)
       except:
-        LOG('SQLDict', PANIC, 'Failed to unreserve %r' % (make_available_uid_list, ), error=sys.exc_info())
+        LOG('SQLDict', ERROR, 'Failed to unreserve %r' % (make_available_uid_list, ), error=sys.exc_info())
       else:
         LOG('SQLDict', TRACE, 'Freed messages %r' % (make_available_uid_list, ))
     try:
@@ -421,12 +421,12 @@
           # Unfortunately, database adapters may raise an exception against abort.
           LOG('SQLDict', PANIC,
               'abort failed, thus some objects may be modified accidentally')
-          return True # Stop processing messages for this tic call for this queue.
+          raise
         to_free_uid_list = [x[0] for x in message_uid_priority_list]
         try:
           makeMessageListAvailable(to_free_uid_list)
         except:
-          LOG('SQLDict', PANIC, 'Failed to free messages: %r' % (to_free_uid_list, ), error=sys.exc_info())
+          LOG('SQLDict', ERROR, 'Failed to free messages: %r' % (to_free_uid_list, ), error=sys.exc_info())
         else:
           LOG('SQLDict', TRACE, 'Freed messages %r' % (to_free_uid_list))
       # Abort if something failed.
@@ -445,12 +445,12 @@
             abortTransactionSynchronously()
           except:
             LOG('SQLDict', PANIC, 'Failed to abort executed messages which also failed to commit. Some objects may be modified accidentally.')
-            return True # Stop processing messages for this tic call for this queue.
+            raise
         failed_message_uid_list = [x[0] for x in message_uid_priority_list]
         try:
           makeMessageListAvailable(failed_message_uid_list)
         except:
-          LOG('SQLDict', PANIC, 'Failed to free remaining messages: %r' % (failed_message_uid_list, ), error=sys.exc_info())
+          LOG('SQLDict', ERROR, 'Failed to free remaining messages: %r' % (failed_message_uid_list, ), error=sys.exc_info())
         else:
           LOG('SQLDict', TRACE, 'Freed messages %r' % (failed_message_uid_list, ))
       self.finalizeMessageExecution(activity_tool, message_uid_priority_list)

Modified: erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLQueue.py?rev=19090&r1=19089&r2=19090&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLQueue.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLQueue.py Tue Feb  5 23:39:58 2008
@@ -176,7 +176,7 @@
         try:
           makeMessageListAvailable(to_free_uid_list)
         except:
-          LOG('SQLQueue', PANIC, 'Failed to free messages: %r' % (to_free_uid_list, ), error=sys.exc_info())
+          LOG('SQLQueue', ERROR, 'Failed to free messages: %r' % (to_free_uid_list, ), error=sys.exc_info())
         else:
           if len(to_free_uid_list):
             LOG('SQLQueue', TRACE, 'Freed messages %r' % (to_free_uid_list, ))
@@ -216,14 +216,14 @@
           try:
             makeMessageListAvailable(delay_uid_list)
           except:
-            LOG('SQLQueue', PANIC, 'Failed to unreserve %r' % (uid, ), error=sys.exc_info())
+            LOG('SQLQueue', ERROR, 'Failed to unreserve %r' % (uid, ), error=sys.exc_info())
           else:
             LOG('SQLQueue', TRACE, 'Freed message %r' % (uid, ))
     if len(deletable_uid_list):
       try:
         activity_tool.SQLQueue_delMessage(uid=deletable_uid_list)
       except:
-        LOG('SQLQueue', PANIC, 'Failed to delete messages %r' % (deletable_uid_list, ), error=sys.exc_info())
+        LOG('SQLQueue', ERROR, 'Failed to delete messages %r' % (deletable_uid_list, ), error=sys.exc_info())
       else:
         LOG('SQLQueue', TRACE, 'Deleted messages %r' % (deletable_uid_list, ))
     if len(delay_uid_list):
@@ -231,11 +231,11 @@
         # If this is a conflict error, do not lower the priority but only delay.
         activity_tool.SQLQueue_setPriority(uid=delay_uid_list, delay=VALIDATION_ERROR_DELAY)
       except:
-        LOG('SQLQueue', PANIC, 'Failed to delay %r' % (delay_uid_list, ), error=sys.exc_info())
+        LOG('SQLQueue', ERROR, 'Failed to delay %r' % (delay_uid_list, ), error=sys.exc_info())
       try:
         makeMessageListAvailable(delay_uid_list)
       except:
-        LOG('SQLQueue', PANIC, 'Failed to unreserve %r' % (delay_uid_list, ), error=sys.exc_info())
+        LOG('SQLQueue', ERROR, 'Failed to unreserve %r' % (delay_uid_list, ), error=sys.exc_info())
       else:
         LOG('SQLQueue', TRACE, 'Freed messages %r' % (delay_uid_list, ))
     if len(final_error_uid_list):
@@ -243,7 +243,7 @@
         activity_tool.SQLQueue_assignMessage(uid=final_error_uid_list,
                                              processing_node=INVOKE_ERROR_STATE)
       except:
-        LOG('SQLQueue', PANIC, 'Failed to set message to error state for %r' % (final_error_uid_list, ), error=sys.exc_info())
+        LOG('SQLQueue', ERROR, 'Failed to set message to error state for %r' % (final_error_uid_list, ), error=sys.exc_info())
     try:
       for m in notify_user_list:
         m.notifyUser(activity_tool)
@@ -293,7 +293,7 @@
           except:
             # Unfortunately, database adapters may raise an exception against abort.
             LOG('SQLQueue', PANIC, 'abort failed, thus some objects may be modified accidentally')
-            return True # Stop processing messages for this tic call for this queue.
+            raise
           # We must make sure that the message is not set as executed.
           # It is possible that the message is executed but the commit
           # of the transaction fails
@@ -301,7 +301,7 @@
           try:
             makeMessageListAvailable([value[0]])
           except:
-            LOG('SQLQueue', PANIC, 'Failed to free message: %r' % (value, ), error=sys.exc_info())
+            LOG('SQLQueue', ERROR, 'Failed to free message: %r' % (value, ), error=sys.exc_info())
           else:
             LOG('SQLQueue', TRACE, 'Freed message %r' % (value, ))
         if time() > processing_stop_time:
@@ -314,7 +314,7 @@
         try:
           makeMessageListAvailable(to_free_uid_list)
         except:
-          LOG('SQLQueue', PANIC, 'Failed to free remaining messages: %r' % (to_free_uid_list, ), error=sys.exc_info())
+          LOG('SQLQueue', ERROR, 'Failed to free remaining messages: %r' % (to_free_uid_list, ), error=sys.exc_info())
         else:
           LOG('SQLQueue', TRACE, 'Freed messages %r' % (to_free_uid_list, ))
       self.finalizeMessageExecution(activity_tool, processed_message_uid_list)




More information about the Erp5-report mailing list