应用部署不成功,gitlab-service后台提示error.file.create

  • Choerodon平台版本:0.18.0

  • 运行环境:自主搭建

  • 问题描述:

    我创建应用完成后,在部署流水线-应用部署 所有步骤完成后,无任何提示,在实例中无法看到部署的实例。

  • 执行的操作:
    1.”部署流水线-应用部署“
    2.打开”实例“,无法看到实例

  • 报错信息(请尽量使用代码块的形式展现):
    1.查看 gitlab-service 的日志, java stacktrace 提示 error.file.create,具体提示调用 RepositoryController.createFile 出错
    stacktrace 如下:

2019-07-18 18:40:59.230  INFO 7 --- [  XNIO-3 task-4] i.c.r.h.ControllerExceptionHandler       : exception info io.choerodon.core.exception.FeignException: error.file.create
	at io.choerodon.gitlab.api.controller.v1.RepositoryController.lambda$createFile$19(RepositoryController.java:293)
	at io.choerodon.gitlab.api.controller.v1.RepositoryController$$Lambda$760.00000000EC237300.get(Unknown Source)
	at java.util.Optional.orElseThrow(Optional.java:290)
	at io.choerodon.gitlab.api.controller.v1.RepositoryController.createFile(RepositoryController.java:293)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at 
  1. 查看gitlab-service源码,发现 RepositoryController.createFile 方法,调用 RepositoryServiceImpl的createFile方法,其中try…catch 到 GitLabApiException异常返回 null,无法进一步知道具体异常。
@Override
    public RepositoryFile createFile(Integer projectId, String path, String content, String commitMessage, Integer userId, String branchName) {
        GitLabApi gitLabApi = gitlab4jclient.getGitLabApi(userId);
        RepositoryFile repositoryFile = new RepositoryFile();
        try {
            repositoryFile.setContent(content);
            repositoryFile.setFilePath(path);
            repositoryFile = gitLabApi.getRepositoryFileApi().createFile(
                    repositoryFile, projectId, StringUtils.isEmpty(branchName) ? "master" : branchName, "ADD FILE");
        } catch (GitLabApiException e) {
            return null;
        }
        return repositoryFile;
    }

/Users/administrator/github/gitlab-service/src/main/java/io/choerodon/gitlab/infra/common/client/Gitlab4jClient.java

  • 建议:

    RepositoryServiceImpl的createFile方法,其中try…catch 到 GitLabApiException异常返回 null,无法进一步知道Gitlab4jclient的具体异常。

请问高手,有无遇到这类情况?

  1. gitlab-service的异常请求在0.19版本都已经做了修复了, 这边先给gitlab-service切一个0.18.1版本的tag用于查看创建文件的异常信息,大概一个多小时之后可以重新升级下gitlab-service

  2. 是每次部署都会有创建文件的错误吗?还是偶尔出现?

因为我刚搭建完c7n的集群,正在开始做POC,刚到这个环节,第一次发现的。

更新下c7n helm仓库, 升级gitlab-service,重新部署实例,看下gitlab-service异常是什么

helm repo update 
helm upgrade gitlab-service c7n/gitlab-service \
    -f <(helm get values gitlab-service) \
    --version 0.18.1

1.更新完,gitla-service的异常如下,貌似调用gitlab的相关api报500错误。

2019-07-19 12:59:54.828  INFO 7 --- [  XNIO-3 task-6] i.c.g.a.s.impl.RepositoryServiceImpl     : 状态码为: 500
2019-07-19 12:59:54.833  INFO 7 --- [  XNIO-3 task-6] i.c.r.h.ControllerExceptionHandler       : exception info io.choerodon.core.exception.FeignException: org.gitlab4j.api.GitLabApiException: 500 Internal Server Error
	at io.choerodon.gitlab.app.service.impl.RepositoryServiceImpl.createFile(RepositoryServiceImpl.java:168)
	at io.choerodon.gitlab.api.controller.v1.RepositoryController.createFile(RepositoryController.java:291)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at 

2.补充以下,gitlab在Kibana中的日志,显示如下, 不知道是否可以找到对应gitlab的错误日志?

2019-07-19_05:34:52.62235 gitlab.epcloud-test-local.infinitus-int.com:30080 127.0.0.1:0 - - [2019/07/19:13:34:52 +0800] "POST /api/v4/projects/2/repository/files/release-choerodon-todo-servie-66e11.yaml HTTP/1.1" 500 39 "" "Jersey/2.26 (HttpUrlConnection 1.8.0_202)" 0.041

gitlab是按照安装文档上的版本搭建的吗? 500一般都是程序里面的错误了

gitlab 是按照0.18 文档搭建的,中途试gitlab启动不了,删了PVC和PV重新装过,但是重装前mysql还是旧的。

那直接看gitlab容器里面的日志 创建文件的地方除了500 还有没有其它具体点的错误?

重新安装gitlab和devops,问题解决