[英]Traceback errors on python script within the discord\client.py error?
[英]How to debug an error with python script with no traceback errors?
def make_offsite_copies_primary():
"""multi-threaded function to update OFFSITE_PREFIX volumes to primary."""
start_date = time.strftime("%m/%d/%y",
time.localtime(time.time() - DR_TAPE_DATE_RANGE))
for pool in run_command([vmpool, "-listall", "-b"]).readlines():
if pool.startswith(OFFSITE_PREFIX):
pool = pool.split()[0]
logentry("***\tupdating images for pool: %s" % (pool))
command = [bpchangeprimary, "-pool", pool, "-sd", start_date]
RunMTCommand.lck.acquire()
# If we've reached maxthreads, then wait for one to finish
if len(RunMTCommand.tlist) >= RunMTCommand.maxthreads:
RunMTCommand.lck.release()
RunMTCommand.evnt.wait()
else:
RunMTCommand.lck.release()
# For some reason, we often get a "-15" RC, when updating the
# MLC-Duplication pool. Let's just ignore it for now.
RunMTCommand.newthread(command, [0, 13, -15])
for bpchange_thread in RunMTCommand.tlist:
bpchange_thread.join()
此功能发出NetBackup命令以将备份的副本升级为主副本。
运行此脚本后,它将按预期开始登录终端:
Mon Aug 24 10:04:08 2015 - 17684 - *** updating images for pool: MLC-2week
Mon Aug 24 10:04:08 2015 - 17684 - *** updating images for pool: MLC-1month
Mon Aug 24 10:04:08 2015 - 17684 - *** updating images for pool: MLC-1year
Mon Aug 24 10:04:08 2015 - 17684 - *** updating images for pool: MLC-Shadow-2week
Mon Aug 24 10:04:08 2015 - 17684 - *** updating images for pool: MLC-2week-DR-Files
Mon Aug 24 10:04:08 2015 - 17684 - *** updating images for pool: MLC-Offsite
etc.
但是,脚本中似乎未调用bpchangeprimary命令,因为备份副本不会更改。
如果直接从命令行键入“ bpchangeprimary -pool MLC-LTO4-Offsite -sd 08/22/2015”,则将对备份副本进行预期的更改。 但是,此行在函数内部:
command = [bpchangeprimary, "-pool", pool, "-sd", start_date]
应该完成相同的事情,但是不是,所以我猜想此函数有问题。 更糟的是,没有回溯错误。
任何帮助,或有关如何解决此问题的提示将不胜感激。
实际上, command = [bpchangeprimary, "-pool", pool, "-sd", start_date]
只是准备要执行的命令,而实际上并没有执行它。
因此,您在当前位置的logentry()
调用会产生误导性的日志条目。
仅在此调用之后/之后尝试执行命令:
RunMTCommand.newthread(command, [0, 13, -15])
首先,将您的logentry()
调用(或调整其内容并添加一个新的调用)进一步下移至if... then... else...
逻辑之下,以限制线程数-首先获取有意义的日志记录。
这至少应该告诉我们执行是否超出了线程限制逻辑:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.