meolu / walle-web

walle - 瓦力 Devops开源项目代码部署平台
https://walle-web.io
Apache License 2.0
11.85k stars 2.76k forks source link

BUG项目上线过程中,所有的任务已经成功执行完成,项目已经实现上线,但是上线状态显示上线失败 #695

Open fushiqinghuan111 opened 5 years ago

fushiqinghuan111 commented 5 years ago

问题描述 项目上线过程中,所有的任务已经成功执行完成,项目已经实现上线,但是上线状态显示上线失败 问题描述 日志堆栈贴上来。 logs/runtime.log

runtime...

logs/error.log 2019-02-12 14:54:05,382 ERROR /opt/walle-web/walle/model/member.py 94 member.project_master [] 2019-02-12 14:54:38,136 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 1 2019-02-12 14:54:38,136 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:38,140 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 1 2019-02-12 14:54:38,140 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:38,144 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 2 2019-02-12 14:54:38,144 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:38,147 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 3 2019-02-12 14:54:38,148 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:38,151 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 4 2019-02-12 14:54:38,152 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:38,155 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 5 2019-02-12 14:54:38,156 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:38,159 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 6 2019-02-12 14:54:38,160 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:38,163 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 7 2019-02-12 14:54:38,164 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:38,167 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 8 2019-02-12 14:54:38,167 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:42,692 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 1 2019-02-12 14:54:42,692 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:42,695 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 1 2019-02-12 14:54:42,696 ERROR /opt/walle-web/walle/model/task.py 202 task.enable 4 2019-02-12 14:54:42,699 ERROR /opt/walle-web/walle/model/task.py 201 task.enable 2 2019-02-12 14:54:42,700 ERROR /opt/walle-web

error...



**截图**
拖拽到此处即可上传

**运行环境**

 - OS: [e.g. Centos 7.2]
 - 版本 [e.g. 2.0.0]
fushiqinghuan111 commented 5 years ago

c9d9d3e655570f577741fe22d44dee9

a631807682 commented 5 years ago

一样的问题,导致后面的服务器不发布。

fushiqinghuan111 commented 5 years ago

一样的问题,导致后面的服务器不发布。

你有过上线成功的样例嘛 ,我没有过

a631807682 commented 5 years ago

一样的问题,导致后面的服务器不发布。

你有过上线成功的样例嘛 ,我没有过

没有,一直在Release转圈圈,提示失败实际上已经成功。 有可能是根据指令返回值判断成功失败,但是我是一个服务不会退出,我改一下试试。

更新

我成功了,以我的理解

  1. 首先因为这里判断成功的条件是指令执行成功,所以如果你是一个一直在运行的服务,则不能依赖walle去判断成功或失败,他只会一直等待,你需要自行通知walle成功或失败。
  2. UI控制台和untime.log只有成功或失败的指令,没有正在执行的指令,所以找问题得找你下一步的自定义的指令。
lvxj commented 5 years ago

一样的问题,导致后面的服务器不发布。

你有过上线成功的样例嘛 ,我没有过

没有,一直在Release转圈圈,提示失败实际上已经成功。 有可能是根据指令返回值判断成功失败,但是我是一个服务不会退出,我改一下试试。

更新

我成功了,以我的理解

  1. 首先因为这里判断成功的条件是指令执行成功,所以如果你是一个一直在运行的服务,则不能依赖walle去判断成功或失败,他只会一直等待,你需要自行通知walle成功或失败。
  2. UI控制台和untime.log只有成功或失败的指令,没有正在执行的指令,所以找问题得找你下一步的自定义的指令。

如何成功的?修改了源码?

a631807682 commented 5 years ago

一样的问题,导致后面的服务器不发布。

你有过上线成功的样例嘛 ,我没有过

没有,一直在Release转圈圈,提示失败实际上已经成功。 有可能是根据指令返回值判断成功失败,但是我是一个服务不会退出,我改一下试试。

更新

我成功了,以我的理解

  1. 首先因为这里判断成功的条件是指令执行成功,所以如果你是一个一直在运行的服务,则不能依赖walle去判断成功或失败,他只会一直等待,你需要自行通知walle成功或失败。
  2. UI控制台和untime.log只有成功或失败的指令,没有正在执行的指令,所以找问题得找你下一步的自定义的指令。

如何成功的?修改了源码?

修改那些前置后置任务的shell指令。 比如说我要启动一个永恒的服务,则启动这个服务不等待返回,再用一个指令检测服务状态直接返回0或1 。 举个栗子,我执行一个mv a b的指令,可能会返回成功也可能会返回失败,我转换成一个后台指令,则一定会执行mkdir的指令,并且指令结果也根据mkdir指令的结果确定。 在实际中mv a b就是你程序的实际指令,mkdir就是你状态监测指令。

eval 'mv a b &' && mkdir c

但是我仍然觉得系统应该支持启动这样的服务,无论是增加状态检测钩子,或者让用户选择其他确定程序状态的方式,又或者是其他方式。

fushiqinghuan111 commented 5 years ago

image eval 'sh /cas/neon/neon-api-desk/walle.sh' 这样执行还是不行啊

a631807682 commented 5 years ago

eval 'sh /cas/neon/neon-api-desk/walle.sh'

eval 'sh /cas/neon/neon-api-desk/walle.sh &' && echo 'check status'
fushiqinghuan111 commented 5 years ago

![Uploading QQ截图20190226161552.png…]()

这个状态依旧不受控制呢 无论我check什么

fushiqinghuan111 commented 5 years ago

![Uploading QQ截图20190226161552.png…]()

a631807682 commented 5 years ago

这个状态依旧不受控制呢 无论我check什么

&的目的是让他异步后台运行,&& echo 'check status'目的是让echo指令同步执行,则返回结果为echo这种一定会成功的指令的返回结果。

fushiqinghuan111 commented 5 years ago

我的内部执行指令 已经重定向了 所有不存在持续执行的情况

fushiqinghuan111 commented 5 years ago

可不可来张截图 看一下你的前置和后置指令 (同样是java嘛)

fushiqinghuan111 commented 5 years ago

image

a631807682 commented 5 years ago

你现在的状态是一直卡在转圈圈?还是直接失败? 我不确定我们一样不一样,我才看到你用的.sh,按理来说直接return 0就是成功了,不会一直卡着。 不是java,是nodejs

release前置

if pgrep 'node path'; then pkill 'node path'; fi

release后置任务

eval 'nohup node path >/dev/null 2>&1 &' && ps -ef | grep 'node path'

fushiqinghuan111 commented 5 years ago

image

fushiqinghuan111 commented 5 years ago

依旧测试失败

fushiqinghuan111 commented 5 years ago

咱们两个情况应该不同