huoru
V2EX  ›  问与答

如何确认一个程序的状态,比如是否死锁?

  •  
  •   huoru · Mar 12, 2018 · 1471 views
  •   You need to sign in to view this topic
    This topic created in 3009 days ago, the information mentioned may be changed or developed.

    因为用到了 celery 做分布式计算,经常出现程序突然一直不打 log,或者接收到 SIGTTERM 挂掉的状态。

    pidbox received method revoke(signal=u'SIGTERM', terminate=True, task_id=u'91920c02-e411-4c77-98dd-5f86be24e8ae') [reply_to:None ticket:None]

    之前的一个问题我是这样解决的,用 strace 查看,看到了其调用 futex 后便一直无法释放,确认是因为 pymongo 的连接复用导致的死锁。

    感觉 strace,ltrace 吊炸天。当然,有时藏得比较深就不好找了。。

    请问各位在没有程序 log 的情况下,还有什么办法确认此程序出现什么问题了?

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1193 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:45 · PVG 07:45 · LAX 16:45 · JFK 19:45
    ♥ Do have faith in what you're doing.