3
我有一個cronjob處理電子郵件並將它們存儲在系統中。它已經運行了一年多了,但現在突然之間它開始隨時隨地給出這些奇怪的交易錯誤。Django交易錯誤
2010-09-02-01:45:11 ERROR Exception occured during mail processing
Traceback (most recent call last):
File "/var/www/example.com/project/scripts/cronjobs.py", line 453, in process_msg
source, email, 'i' if rejection_reason else 'v', rejection_reason)
File "/usr/lib/python2.5/site-packages/django/db/transaction.py", line 267, in _commit_manually
leave_transaction_management()
File "/usr/lib/python2.5/site-packages/django/db/transaction.py", line 77, in leave_transaction_management
raise TransactionManagementError("Transaction managed block ended with pending COMMIT/ROLLBACK")
TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK
它發生沒有任何理由,沒有任何其他情景信息可用於我。這裏是我的process_msg函數的結構:
@commit_manually
def save_email(u,l, d, t, s, e, status, reason):
try:
# ... bla bla bla ...
commit()
exception, e:
rollback()
raise e
def process_msg(m):
try:
#....
save_email(u, l, d, t
source, email, 'i' if rejection_reason else 'v', rejection_reason)
#....
except Exception, e:
logger.error('Error while processing email', exc_info=True)
return None
else:
return True
我該如何探究這個問題?
使用調試器不是一個選項。它是一個觸發它的cronjob,錯誤隨機出現 – sharjeel 2011-03-21 11:55:53