GCP第一代Cloud Function已设9分钟最大超时,却在5分钟时因gunicorn worker timeout崩溃的问题排查求助
大家好,我最近碰到一个棘手的问题,想向各位请教排查思路:
我维护着一个第一代Google Cloud Function,已经把它的超时时间设置到了1st gen允许的最大值——540秒(9分钟)。这个Python函数的逻辑很明确:先触发一个Dataform工作流执行,之后每隔5秒轮询一次该工作流的运行状态。
但从两天前开始,这个函数总是卡在运行到300000ms(也就是5分钟)的时候崩溃,抛出以下异常信息:
File "/layers/google.python.pip/pip/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 135, in handle
self.handle_request(listener, req, client, addr)
File "/layers/google.python.pip/pip/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 178, in handle_request
respiter = self.wsgi(environ, resp.start_response)
同时日志里还会出现这条关键报错:
[1] [CRITICAL] WORKER TIMEOUT (pid:13)
我现在有点摸不着头绪,已经在谷歌和本站搜索了GCP Cloud Function gunicorn worker timeout这个关键词,但搜出来的结果大多是关于进程本身超时的内容,完全找不到和我这个场景匹配的情况——明明已经把Cloud Function的超时拉到最大了,怎么还会在5分钟就触发gunicorn的worker超时呢?
有没有大佬遇到过类似的问题,或者能给我一些具体的排查方向?
备注:内容来源于stack exchange,提问作者Jeffrey Van Laethem

