2

私は、さまざまな python スクリプトをワーカーとして常に実行しているシステムを持っています。それらは終了時に再起動されるため、それぞれが 1 日に数百回実行されます。数日おきにそのうちの1つが次のエラーでランダムにクラッシュすることを除いて、すべて問題ありません

XXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\n...
XXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\n...
Error processing line 1 of /usr/lib/python2.7/dist-packages/zope.interface-3.6.1-nspkg.pth:
  Traceback (most recent call last):
    File \"/usr/lib/python2.7/site.py\", line 157, in addpackage
      exec line
    File \"<string>\", line 1
    import sys,types,os; p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('zope',)); ie = os.path.exists(os.path.join(p,'__init__.py')); m = not ie and sys.modules.setdefault('zope',types.ModuleType('zope')); mp = (m or []) and m.__dict__.setdefault('__path__',[]); (p not in mp) and mp.append(p)
        SyntaxError: unexpected EOF while parsing
        Remainder of file ignored
XXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\n...
MemoryError

トレースを変更した場合は申し訳ありませんが、私のロギングはそれに醜いことをします。また、XXX行を切り捨てていることに注意してください:XXX ambiguity!\n実際にはおそらく 100 回繰り返されます。

私はzope.interface自分のコードのどこにも使用していません。トルネードの依存関係としてインストールされました。より具体的tornado.twistedには、これも使用していません。ただし、問題は python (またはスクリプトを実行するためにそれを使用する方法) にあると考える傾向があり、指を指しているスタックzope.interfaceは単なる症状です。

スクリプト自体は を使用して実行され/usr/bin/nice、通常は次の形式を取ります。

#!/usr/bin/env python
from sharedlib import queue
import time
import logging

logger = logging.getLogger(__name__)

def main():
    for item in queue.rest:  # queue.rest yields from an immutable source
        logger.info("An item in the queue: %s", item)

if __name__ == '__main__':
    main()
    time.sleep(600)  # Used for throttling the rate of script execution

前もって感謝します-これは私を壁に追いやっています。

4

0 に答える 0