起因:
應用程序日志里面發現報錯:當前事務無法提交,而且無法支持寫入日志文件的操作 且是間歇性出現。
問題:
直接從報錯內容上看看不出什么問題,於是百度了,百度的結果就是 出現這個問題的原因就是事務已經被回滾,但是又去完成事務(commit/rollback)
結合自身的過程的代碼,發現代碼非常長,無法發現具體報錯的地方。
解決思路:
只知道這個過程有問題,但是過程非常的長,無法定位,如果使用臨時表也基本無法定位那個代碼有問題。開發懷疑是 在 提交代碼前有一個 drop 臨時表的操作,於是修改了過程。
修改了過程之后,過程中定位報錯的flag不再范圍null,發現是從try catch中catch代碼塊中出現。於是讓開發加了過程讓異常拋出,發現是死鎖造成,因為新功能上線出現死鎖導致。(馬上加上死鎖監控)
原因:
因為死鎖,導致事務被回滾,返回到catch后,catch又有個kill 然后導致出現這個錯誤。
