CodeAnalysis icon indicating copy to clipboard operation
CodeAnalysis copied to clipboard

圈复杂度的codefile报错,代码检测错误codefile正常

Open zzzfwww opened this issue 1 year ago • 2 comments

背景:仓库有12G,所以使用的是客户端分析上报模式,对应到服务端里面配置OAuth的验证模式 问题:错误处理能获取到codefile的问题,但是圈复杂度codefile报错 详细日志如下: 服务端报错堆栈信息 4f1490903723364db6ac3c31dfc77bc 圈复杂度接口返回400 image 问题处理接口codefile返回正常没问题 image

这是什么问题?

zzzfwww avatar Dec 15 '23 07:12 zzzfwww

麻烦再点击下圈复杂度问题详情,然后看下scmproxy服务日志输出了什么错误信息

Lingghh avatar Jan 08 '24 07:01 Lingghh

上面提的issue里面有这个截图 image 这个是今天我再次尝试也是一样的 -2024-01-10 16:28:30,699-ERROR-util.scm.base: scmproxy error message: <class 'Exception'>:{method: latest_revision, error_message: [404] 项目可能不存在或没有项目访问权限} Traceback (most recent call last): File "/CodeAnalysis/server/projects/main/util/scm/errorcatch.py", line 37, in getattr value = getattr(self._obj, name) File "/CodeAnalysis/server/projects/main/util/scm/git.py", line 68, in latest_revision return self._git_proxy.latest_revision(self._scm_info) File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1112, in call return self.__send(self.__name, args) File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1452, in __request verbose=self.__verbose File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1154, in request return self.single_request(host, handler, request_body, verbose) File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1170, in single_request return self.parse_response(resp) File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1342, in parse_response return u.close() File "/usr/local/lib/python3.7/xmlrpc/client.py", line 656, in close raise Fault(**self._stack[0]) xmlrpc.client.Fault: <Fault 1: "<class 'Exception'>:{method: latest_revision, error_message: [404] 项目可能不存在或没有项目访问权限}"> @Lingghh 这个报错,明显有权限的,代码的issue问题接口都没问题,不过我们这个项目有个问题,就是我们gitlab部署的服务端不是80端口,是83端口,我主动去db里面修改了一下codeproj_baserepository 的scm_url字段

zzzfwww avatar Jan 10 '24 08:01 zzzfwww

已破案,属于分支包含有特殊的/导致获取git revision的url加上了不应该加上的特殊符号 / 如果马上解决的话需要对branch做一次quote

        tmp_branch = urllib.parse.quote(self._branch, safe="")
        r = self.get(GITLAB_APIS["get_revision"].format(
            project_id=self._enquote_project_path, branch_name=tmp_branch))

但是和官方确认,这个不一定会修复,可能引发安全问题,有需要的自己修改

zzzfwww avatar Mar 01 '24 02:03 zzzfwww

找到跟因,自己解决了

zzzfwww avatar Mar 04 '24 02:03 zzzfwww