TencentBlueKing/bamboo-engine

第一次执行会出现进程无法找到的问题,pipeline.eri.models.Process.DoesNotExist

MRongM opened this issue · 3 comments

2022-03-22 17:03:48,144: ERROR/ForkPoolWorker-7] [p153b291216b64dbf93aab8d7bc79dfac]execute node(e9d1bf39b2ed347d6826feea3ae14aa55) prepare fail
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/bamboo_engine/engine.py", line 566, in execute
process_info = self.runtime.get_process_info(process_id)
File "/usr/local/lib/python3.6/site-packages/bamboo_engine/metrics.py", line 81, in _wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipeline/eri/imp/process.py", line 107, in get_process_info
raise Process.DoesNotExist("Process with id({}) does not exist".format(process_id))
pipeline.eri.models.Process.DoesNotExist: Process with id(663) does not exist

请确认 celery worker 进程使用的 DB 是否和启动请求发起进程使用的 DB 是同一个

2022-03-22 17:03:48,144: ERROR/ForkPoolWorker-7] [p153b291216b64dbf93aab8d7bc79dfac]execute node(e9d1bf39b2ed347d6826feea3ae14aa55) prepare fail Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/bamboo_engine/engine.py", line 566, in execute process_info = self.runtime.get_process_info(process_id) File "/usr/local/lib/python3.6/site-packages/bamboo_engine/metrics.py", line 81, in _wrapper return func(*args, **kwargs) File "/usr/local/lib/python3.6/site-packages/pipeline/eri/imp/process.py", line 107, in get_process_info raise Process.DoesNotExist("Process with id({}) does not exist".format(process_id)) pipeline.eri.models.Process.DoesNotExist: Process with id(663) does not exist

找到原因了么, 直接在django shell 执行是正常的, 用自己写的http接口请求执行同一段逻辑就会报这个错。是不是跟db transaction 有关呢?

已经确认了, 如果用了transaction因为在同一个view里调用run_pipeline 里面会创建process,然后worker执行的时候你的view还没有commit这个transaction就会出现这个问题。正常用在脚本调用是不会有这个问题的,查了一下午…