当前位置:论坛首页 > Linux面板 > 求助

【BUG记录】TypeError: 'bool' object is not iterable

发表在 Linux面板2022-3-3 13:42 [复制链接] 10 4373

Traceback (most recent call last):  File "/www/server/panel/BTPanel/__init__.py", line 1762, in publicObject    return run_exec().run(toObject, defs, get)  File "/www/server/panel/BTPanel/__init__.py", line 1710, in run    result = getattr(toObject,get.action)(get)  File "class/panelProjectController.py", line 76, in model    result = run_object(pdata)  File "/www/server/panel/class/projectModel/nodejsModel.py", line 1353, in stop_project    if pids: self.kill_pids(pids=pids)  File "/www/server/panel/class/projectModel/nodejsModel.py", line 1171, in kill_pids    pids = sorted(pids,reverse=True)TypeError: 'bool' object is not iterable
1646285979(1).png
使用道具 举报 只看该作者 回复
发表于 2022-3-3 14:34:52 | 显示全部楼层
您好,您这个是node项目内操作停止时报错的吗?还是做了什么操作提示错误信息
使用道具 举报 回复 支持 反对
发表于 2022-3-4 21:41:11 | 显示全部楼层
node 项目停止和删除都会报这个错
使用道具 举报 回复 支持 反对
发表于 2022-3-4 22:58:54 | 显示全部楼层
流年时光岁月 发表于 2022-3-4 21:41
node 项目停止和删除都会报这个错

经过测试,并未复现此问题;

可以尝试自助修复,删除面板依赖的python,然后执行修复命令,修复不会影响现有数据
  1. rm -rf /www/server/panel/pyenv
  2. curl http://download.bt.cn/install/update_panel.sh|bash
复制代码
使用道具 举报 回复 支持 反对
发表于 2022-3-24 11:07:15 | 显示全部楼层
堡塔安全赤井秀一 发表于 2022-3-4 22:58
经过测试,并未复现此问题;

可以尝试自助修复,删除面板依赖的python,然后执行修复命令,修复不会影响 ...

发现了同样的问题 7.9.0
使用道具 举报 回复 支持 反对
发表于 2022-3-24 11:08:02 | 显示全部楼层
lrvinye 发表于 2022-3-24 11:07
发现了同样的问题 7.9.0

按照楼上的方法重新下载python环境试试
使用道具 举报 回复 支持 反对
发表于 2022-3-24 11:43:50 | 显示全部楼层
本帖最后由 lrvinye 于 2022-3-24 11:47 编辑
lrvinye 发表于 2022-3-24 11:07
发现了同样的问题 7.9.0

7.9.0 版本 出现此错误
已找到BUG,请BT官方及时处理

在 /www/server/panel/class/projectModel/nodejsModel.py 文件中

1159行
应该返回 all_pids 参数而 不是 True
修改为如下代码后修复此错误
  1. def get_project_state_by_cwd(self,project_name):
  2.         '''
  3.             @name 通过cwd获取项目状态
  4.             @author hwliang<2022-01-17>
  5.             @param project_name<string> 项目名称
  6.             @return bool or list
  7.         '''
  8.         project_find = self.get_project_find(project_name)
  9.         self._pids = psutil.pids()
  10.         if not project_find: return []
  11.         all_pids = []
  12.         for i in self._pids:
  13.             try:
  14.                 p = psutil.Process(i)
  15.                 if p.cwd() == project_find['path']:
  16.                     pname = p.name()
  17.                     if pname in ['node','npm','pm2','yarn'] or pname.find('node ') == 0:
  18.                         cmdline = ','.join(p.cmdline())
  19.                         if cmdline.find('God Daemon') != -1:continue
  20.                         env_list = p.environ()
  21.                         if 'name' in env_list:
  22.                             if not env_list['name'] == project_name: continue
  23.                         if 'NODE_PROJECT_NAME' in env_list:
  24.                             if not env_list['NODE_PROJECT_NAME'] == project_name: continue
  25.                         all_pids.append(i)
  26.             except: continue
  27.         if all_pids:
  28.             pid_file = "{}/{}.pid".format(self._node_pid_path,project_name)
  29.             public.writeFile(pid_file,str(all_pids[0]))
  30.             return all_pids
  31.         return False
复制代码

但是停止项目后,任然会自动重新启动

使用道具 举报 回复 支持 反对
发表于 2022-3-24 12:08:46 | 显示全部楼层
堡塔安全赤井秀一 发表于 2022-3-24 11:08
按照楼上的方法重新下载python环境试试

7.9.0 版本 出现此错误
已找到BUG,请BT官方及时处理

在 /www/server/panel/class/projectModel/nodejsModel.py 文件中

1159行
应该返回 all_pids 参数而 不是 True
修改为如下代码后修复此错误

但是停止项目后,任然会自动重新启动

  1. def get_project_state_by_cwd(self,project_name):
  2.         '''
  3.             @name 通过cwd获取项目状态
  4.             @author hwliang<2022-01-17>
  5.             @param project_name<string> 项目名称
  6.             @return bool or list
  7.         '''
  8.         project_find = self.get_project_find(project_name)
  9.         self._pids = psutil.pids()
  10.         if not project_find: return []
  11.         all_pids = []
  12.         for i in self._pids:
  13.             try:
  14.                 p = psutil.Process(i)
  15.                 if p.cwd() == project_find['path']:
  16.                     pname = p.name()
  17.                     if pname in ['node','npm','pm2','yarn'] or pname.find('node ') == 0:
  18.                         cmdline = ','.join(p.cmdline())
  19.                         if cmdline.find('God Daemon') != -1:continue
  20.                         env_list = p.environ()
  21.                         if 'name' in env_list:
  22.                             if not env_list['name'] == project_name: continue
  23.                         if 'NODE_PROJECT_NAME' in env_list:
  24.                             if not env_list['NODE_PROJECT_NAME'] == project_name: continue
  25.                         all_pids.append(i)
  26.             except: continue
  27.         if all_pids:
  28.             pid_file = "{}/{}.pid".format(self._node_pid_path,project_name)
  29.             public.writeFile(pid_file,str(all_pids[0]))
  30.             return all_pids
  31.         return False
复制代码



使用道具 举报 回复 支持 反对
发表于 2022-3-26 21:00:46 | 显示全部楼层
lrvinye 发表于 2022-3-24 12:08
7.9.0 版本 出现此错误
已找到BUG,请BT官方及时处理

非常感谢您的反馈,我们核对下
使用道具 举报 回复 支持 反对
发表于 2022-3-27 09:19:04 | 显示全部楼层
你好,此问题已经修复,请前往首页--右上角点击修复面板;宝塔币已经发送到论坛绑定的手机号中
使用道具 举报 回复 支持 反对
发表于 2024-9-19 15:30:12 | 显示全部楼层
9.2.0也会出现
44444.png
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表