一条线

有一个很经典的故事,斯坦门次为福特公司画了一条线,收了1000美元,其中画一条线的价值是1美元,知道在哪里画条线值999美元。这个故事让我深有感触。

前些天和同时排查一个问题数据库问题,我们staging环境有一个服务总是卡死,导致一些api超时无法访问,最终排查是数据库死锁,又经过一系列排查,具体到了一个函数内,这个函数中会先去获取一个数据库的advisory lock,然后再执行SQL,这一系列操作都在try cache中,也是为了方便回滚数据库,一切看起来都没问题。

为了复现这种情况,我们手动获取advisory lock,然后触发该函数,结果卡死。找不到具体原因,另一个同事看我们讨论激烈,过来询问并一语道破,这个数据库驱动是C写的,Python并不能抓取到C中的异常,所以会一直等待释放。

真是直接命中问题所在,和这个同事相比,不是经验问题,和我同岁,工作年限比我少,为什么他可以很快解决,而我并不能。

这是一个值得思考反思的问题。