Miles' Blog

Welcome 2 My Planet

Available categories: [/] [working on downwap.] [trouble shooting] [working on Yup Mailman]

Another way to deadlock | 另类死锁 [Permalink]

Sat Oct 08 17:41:45 CST 2005

前段时间系统频繁出现死锁。按照目前站点压力来看绝对不正常,但是一直也没有找到原因所在。今天翻代码的时候,无意中发现DBHandler类在open()方法中,从pool获取conn之后执行了conn.setAutoCommit(false);而之后没有任何地方有显式的conn.commit();。因为close时候实际只是把conn送回pool,所以这样一来,唯一的机会就在下次这个conn再被取出并执行conn.setAutoCommit(false);的时候隐式commit了(*根据规范,setAutoCommit()会提交当前所有trans)。

因此,压力越大这个BUG造成的问题就越不突出。因为频繁的访问会使得conn在pool中闲置的时间比较短,也就比较有机会频繁的调用到setAutoCommit();。而这个推测和实际观察结果也是吻合的。

综上,BUG不求多,求精。这一个就够把我整死了。

Posted by: miles

Comments on this entry





Author (*):
Verify Code (*):8 9 7 9
E-mail:
URL:
Comment (*):
Remember me?

Available categories: [/] [working on downwap.] [trouble shooting] [working on Yup Mailman]

Powered By blojsom   RSS Feed  RSS2 Feed  RDF Feed