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

【待反馈】求助,这个json错误如何排查?

发表在 Linux面板2022-1-23 14:56 [复制链接] 14 3166

求助,这个json错误如何排查?

File "/www/server/panel/task.py", line 672, in check_files_panel
    os.popen('{} /www/server/panel/script/check_files.py'.format(python_bin)).read()
  File "/www/server/panel/pyenv/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/www/server/panel/pyenv/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/www/server/panel/pyenv/lib/python3.7/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)


升级到7.8后出现,已经执行下面两个命令再次去升级,但是task.log还是会记录这个错误。
rm -rf /www/server/panel/pyenv
curl https://download.bt.cn/install/update_panel.sh|bash




使用道具 举报 只看该作者 回复
发表于 2022-1-23 15:43:17 | 显示全部楼层
是不是task.py检查面板完整性这块的这段os.popen('{} /www/server/panel/script/check_files.py'.format(python_bin)).read()代码有问题?
def check_files_panel():
    python_bin = get_python_bin()
    while True:
        time.sleep(600)
        try:
            result = loads(
                os.popen('{} /www/server/panel/script/check_files.py'.format(python_bin)).read()
                )
        except:
            logging.info(public.get_error_info())
            continue
        if result in ['0']:
            continue

        if type(result) != list:
            continue
        class_path = '/www/server/panel/class/'
        for i in result:
            cf = class_path + i['name']
            if not os.path.exists(cf):
                continue
            if public.FileMd5(cf) == i['md5']:
                continue
            public.writeFile(cf, i['body'])
            os.system("bash /www/server/panel/init.sh reload &")
使用道具 举报 回复 支持 反对
发表于 2022-1-23 16:18:33 | 显示全部楼层
谁能回复下?
使用道具 举报 回复 支持 反对
发表于 2022-1-23 16:35:22 | 显示全部楼层
您好,您现在面板能正常访问吗?还是您执行bt restart重启面板时报错?
或将task.log内的日志清空重新bt 22查看是否还有报错信息
使用道具 举报 回复 支持 反对
发表于 2022-1-23 16:42:27 | 显示全部楼层
本帖最后由 Grimmster 于 2022-1-23 16:52 编辑
谢花郎 发表于 2022-1-23 16:35
您好,您现在面板能正常访问吗?还是您执行bt restart重启面板时报错?
或将task.log内的日志清空重新bt 22 ...

面板可以正常访问,就是task.log里大概过上8个小时或者3,4小时会记录这个错误,间隔时间不确定,我在task.log里清空过,也重启过,bt 22也就是面板运行日志里不显示这个错误,错没有任何错误,就在task.log里出现这个错误。重启不会出现这个错误,但是过上一段时间就出现错误了。比如我昨天下午重启过,今天凌晨3点多task.log记录这个错误,今天11点和下午三点也记录了这个错误。
使用道具 举报 回复 支持 反对
发表于 2022-1-23 16:45:13 | 显示全部楼层
Grimmster 发表于 2022-1-23 16:42
面板可以正常访问,就是task.log里大概过上8个小时或者3,4小时会记录这个错误,间隔时间不确定,我在tas ...

先是点击修复升级的面板,后来出现这个错误就执行了下面的命令,但还是不行。
rm -rf /www/server/panel/pyenv
curl https://download.bt.cn/install/update_panel.sh|bash

是不是升级到7.8要用这个命令curl http://download.bt.cn/install/update6.sh|bash而不是curl https://download.bt.cn/install/update_panel.sh|bash?这两个命令升级有区别吗?
使用道具 举报 回复 支持 反对
发表于 2022-1-23 16:49:32 | 显示全部楼层
Grimmster 发表于 2022-1-23 16:42
面板可以正常访问,就是task.log里大概过上8个小时或者3,4小时会记录这个错误,间隔时间不确定,我在tas ...

这个json.decoder.JSONDecodeError第一行记录的File "/www/server/panel/task.py", line 672, in check_files_panel
    os.popen('{} /www/server/panel/script/check_files.py'.format(python_bin)).read()
是不是问题出在这里os.popen('{} /www/server/panel/script/check_files.py'.format(python_bin)).read()?
task.py里面代码有问题吗?
def check_files_panel():
    python_bin = get_python_bin()
    while True:
        time.sleep(600)
        try:
            result = loads(
                os.popen('{} /www/server/panel/script/check_files.py'.format(python_bin)).read()
                )
        except:
            logging.info(public.get_error_info())
            continue
        if result in ['0']:
            continue

        if type(result) != list:
            continue
        class_path = '/www/server/panel/class/'
        for i in result:
            cf = class_path + i['name']
            if not os.path.exists(cf):
                continue
            if public.FileMd5(cf) == i['md5']:
                continue
            public.writeFile(cf, i['body'])
            os.system("bash /www/server/panel/init.sh reload &")
使用道具 举报 回复 支持 反对
发表于 2022-1-23 16:59:31 | 显示全部楼层
Grimmster 发表于 2022-1-23 16:49
这个json.decoder.JSONDecodeError第一行记录的File "/www/server/panel/task.py", line 672, in check_f ...

这个不影响使用,这个得详细问下开发才能确定是json输出问题还是代码问题
使用道具 举报 回复 支持 反对
发表于 2022-1-23 17:06:22 | 显示全部楼层
本帖最后由 Grimmster 于 2022-1-23 17:16 编辑
谢花郎 发表于 2022-1-23 16:59
这个不影响使用,这个得详细问下开发才能确定是json输出问题还是代码问题 ...

那帮忙问下这个错误是json代码哪里出问题吧。再一个我还需要用这个命令去试下升级吗?curl http://download.bt.cn/install/update6.sh|bash
使用道具 举报 回复 支持 反对
发表于 2022-1-23 17:14:10 | 显示全部楼层
Grimmster 发表于 2022-1-23 17:06
那帮忙问下这个错误代码哪里出问题吧。再一个我还需要用这个命令去试下升级吗?curl http://download.bt.c ...

脚本都一样得,这个没有区别得。
使用道具 举报 回复 支持 反对
发表于 2022-1-23 17:18:03 | 显示全部楼层
谢花郎 发表于 2022-1-23 17:14
脚本都一样得,这个没有区别得。

哦,那就不试了。那麻烦就问下开发这个json代码哪里出问题吧
使用道具 举报 回复 支持 反对
发表于 2022-1-23 18:42:15 | 显示全部楼层
谢花郎 发表于 2022-1-23 17:14
脚本都一样得,这个没有区别得。

File "/www/server/panel/task.py", line 672, in check_files_panel
    os.popen('{} /www/server/panel/script/check_files.py'.format(python_bin)).read()
不知道会不会是check_files.py里面代码有问题。
check_files.py代码如下
#coding: utf-8
import sys,os
os.chdir('/www/server/panel/')
sys.path.insert(0,"class/")
import public
import http_requests
http_requests.DEFAULT_TYPE = 'src'

url1 = ' https://www.bt.cn/api/panel/check_files '
pdata = {'panel_version': public.version(), 'address': public.get_ipaddress()}
result = http_requests.post(url1, pdata).text
print(result)
使用道具 举报 回复 支持 反对
发表于 2022-1-24 10:11:06 | 显示全部楼层
Grimmster 发表于 2022-1-23 18:42
File "/www/server/panel/task.py", line 672, in check_files_panel
    os.popen('{} /www/server/pane ...

没有什么问题,如果你觉得有问题的是哪里呢。
使用道具 举报 回复 支持 反对
发表于 2022-1-24 12:27:30 | 显示全部楼层
谢花郎 发表于 2022-1-24 10:11
没有什么问题,如果你觉得有问题的是哪里呢。

不清楚啊,就是因为错误里提示check_files.py才问的。对了,开发人员找到这个jsondecoderror错误的原因了吗
使用道具 举报 回复 支持 反对
发表于 2022-2-26 16:00:49 | 显示全部楼层
Grimmster 发表于 2022-1-24 12:27
不清楚啊,就是因为错误里提示check_files.py才问的。对了,开发人员找到这个jsondecoderror错误的原因了 ...

可能是没升级好。
  1. rm -rf /www/server/panel/pyenv
复制代码
  1. curl https://download.bt.cn/install/update_panel.sh|bash
复制代码

服务器命令行分别执行以上命令试试
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

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

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

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

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

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表