【问题标题】:Gitlab CI Runner get stuck, ssh not respondingGitlab CI Runner 卡住,ssh 没有响应
【发布时间】:2018-12-19 08:30:09
【问题描述】:

我在 aws EC2 实例中创建了一个 gitlab 运行器,并且我有以下 ci 脚本:

stages:
- unit_test
- cleanup_build_when_fail
- deploy_to_sit

unit_test:
  stage: unit_test
  script:
  - export PATH=$PATH:/opt/gradle/gradle-5.0/bin
  - export SPRING_PROFILES_ACTIVE=test
  - gradle clean test
  - echo "unit_test completed!"
  when: always

 ... with other scripts

有时,unit_test 阶段会在 1 分钟内正确完成。

但有时它会卡住直到超时,当它卡住时,ec2 实例甚至没有响应。我必须重新启动 ec2 实例才能再次连接到它。这是卡住时的输出:

$ export PATH=$PATH:/opt/gradle/gradle-5.0/bin
$ export SPRING_PROFILES_ACTIVE=test
$ gradle clean test
> Task :clean UP-TO-DATE
> Task :compileJava
> Task :processResources
> Task :classes
> Task :compileTestJava
> Task :processTestResources
> Task :testClasses

我不知道如何解决这个问题,请帮忙。

更新:任务没有超时,这是我从 gitlab 看到的

Duration: 16 minutes 58 seconds
Timeout: 15m (from project)

【问题讨论】:

  • 你在测试什么?您没有任何 HTTP 调用或其他可以阻止/卡在其中的操作吗?
  • 测试启动一个 spring boot 应用程序并对测试数据库执行 crud 操作。如果 HTTP 调用阻塞了 CI,我认为默认超时应该断开连接。测试可能会卡住一个多小时

标签: gradle amazon-ec2 gitlab-ci gitlab-ci-runner


【解决方案1】:

终于找到了我的解决方案,就是 OOM。

解决方案是为您的构建设置最大内存限制,例如:nodejs(yarn) 或 spring (gradle)

【讨论】:

    猜你喜欢
    • 2019-07-15
    • 1970-01-01
    • 2018-07-31
    • 2015-10-07
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2017-10-06
    相关资源
    最近更新 更多