[GH-ISSUE #769] 证书流水线自动的情况下会卡住,但手动执行又是正常的 #521

Closed
opened 2026-03-03 01:03:59 +03:00 by kerem · 11 comments
Owner

Originally created by @MuXia-0326 on GitHub (Jun 6, 2025).
Original GitHub issue: https://github.com/certimate-go/certimate/issues/769

软件版本 / Release Version

v0.3.16

问题描述 / Description

docker方式部署的

services:
  certimate:
    image: usual2970/certimate:latest
    container_name: certimate_server
    ports:
      - 8090:8090
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./data:/app/pb_data
    restart: unless-stopped

自动执行的会卡在这一步
Image

手动执行的正常的
Image

其他 / Miscellaneous

No response

Originally created by @MuXia-0326 on GitHub (Jun 6, 2025). Original GitHub issue: https://github.com/certimate-go/certimate/issues/769 ### 软件版本 / Release Version v0.3.16 ### 问题描述 / Description docker方式部署的 ```yaml services: certimate: image: usual2970/certimate:latest container_name: certimate_server ports: - 8090:8090 volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./data:/app/pb_data restart: unless-stopped ``` 自动执行的会卡在这一步 ![Image](https://github.com/user-attachments/assets/cccfc411-0d14-4455-b4e2-e8764c1aa7d3) 手动执行的正常的 ![Image](https://github.com/user-attachments/assets/adfaadb0-aeba-45ed-bdde-159f06fce5b9) ### 其他 / Miscellaneous _No response_
kerem 2026-03-03 01:03:59 +03:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@fudiwei commented on GitHub (Jun 6, 2025):

无法复现 😕

<!-- gh-comment-id:2948512248 --> @fudiwei commented on GitHub (Jun 6, 2025): 无法复现 😕
Author
Owner

@MuXia-0326 commented on GitHub (Jun 6, 2025):

无法复现 😕

我再观察观察

<!-- gh-comment-id:2948899636 --> @MuXia-0326 commented on GitHub (Jun 6, 2025): > 无法复现 😕 我再观察观察
Author
Owner

@MuXia-0326 commented on GitHub (Jun 6, 2025):

无法复现 😕

想到一个可能有问题的点,就是我部署这个项目的机器,每天都会重启一次,然后我每次卡住后再次手动执行流水线他又会重新申请证书,有没有可能跟证书是否存在的缓存标注的功能实现有关系 希望能提供一些帮助

<!-- gh-comment-id:2948904823 --> @MuXia-0326 commented on GitHub (Jun 6, 2025): > 无法复现 😕 想到一个可能有问题的点,就是我部署这个项目的机器,每天都会重启一次,然后我每次卡住后再次手动执行流水线他又会重新申请证书,有没有可能跟证书是否存在的缓存标注的功能实现有关系 希望能提供一些帮助
Author
Owner

@AkinoYuiko commented on GitHub (Jun 6, 2025):

Image
我也遇到同样的情况

<!-- gh-comment-id:2949132047 --> @AkinoYuiko commented on GitHub (Jun 6, 2025): ![Image](https://github.com/user-attachments/assets/73650126-d233-429a-ba18-c2c7ce8a009a) 我也遇到同样的情况
Author
Owner

@fudiwei commented on GitHub (Jun 8, 2025):

想到一个可能有问题的点,就是我部署这个项目的机器,每天都会重启一次,然后我每次卡住后再次手动执行流水线他又会重新申请证书,有没有可能跟证书是否存在的缓存标注的功能实现有关系 希望能提供一些帮助

是在执行过程中重启的?

<!-- gh-comment-id:2953764127 --> @fudiwei commented on GitHub (Jun 8, 2025): > 想到一个可能有问题的点,就是我部署这个项目的机器,每天都会重启一次,然后我每次卡住后再次手动执行流水线他又会重新申请证书,有没有可能跟证书是否存在的缓存标注的功能实现有关系 希望能提供一些帮助 是在执行过程中重启的?
Author
Owner

@MuXia-0326 commented on GitHub (Jun 8, 2025):

想到一个可能有问题的点,就是我部署这个项目的机器,每天都会重启一次,然后我每次卡住后再次手动执行流水线他又会重新申请证书,有没有可能跟证书是否存在的缓存标注的功能实现有关系 希望能提供一些帮助

是在执行过程中重启的?

不是的,是重启后再执行的

<!-- gh-comment-id:2953768068 --> @MuXia-0326 commented on GitHub (Jun 8, 2025): > > 想到一个可能有问题的点,就是我部署这个项目的机器,每天都会重启一次,然后我每次卡住后再次手动执行流水线他又会重新申请证书,有没有可能跟证书是否存在的缓存标注的功能实现有关系 希望能提供一些帮助 > > 是在执行过程中重启的? 不是的,是重启后再执行的
Author
Owner

@MuXia-0326 commented on GitHub (Jun 9, 2025):

又排查出一个新的现象

两个流水线配置及现象

  • 申请 *.copilot.xxx.top*.xxx.top 的证书
    • 手动执行正常
    • 自动执行卡住
    • 并且每次自动执行都会生成新的证书,手动执行却不会(自动执行判断逻辑失效,但卡住的原因未知)
  • 申请 *.xxx.xyz 的证书
    • 手动执行正常
    • 自动执行正常
    • 不会生成新的证书,证书有效期超过30天的判断逻辑正常生效

感觉这个可能对你排查bug会有帮助,辛苦作者了

<!-- gh-comment-id:2954490952 --> @MuXia-0326 commented on GitHub (Jun 9, 2025): 又排查出一个新的现象 两个流水线配置及现象 * 申请 `*.copilot.xxx.top` 和 `*.xxx.top` 的证书 * 手动执行正常 * 自动执行卡住 * 并且每次自动执行都会生成新的证书,手动执行却不会(自动执行判断逻辑失效,但卡住的原因未知) * 申请 `*.xxx.xyz` 的证书 * 手动执行正常 * 自动执行正常 * 不会生成新的证书,证书有效期超过30天的判断逻辑正常生效 感觉这个可能对你排查bug会有帮助,辛苦作者了
Author
Owner

@fudiwei commented on GitHub (Jun 9, 2025):

又排查出一个新的现象

两个流水线配置及现象

  • 申请 *.copilot.xxx.top*.xxx.top 的证书

    • 手动执行正常
    • 自动执行卡住
    • 并且每次自动执行都会生成新的证书,手动执行却不会(自动执行判断逻辑失效,但卡住的原因未知)
  • 申请 *.xxx.xyz 的证书

    • 手动执行正常
    • 自动执行正常
    • 不会生成新的证书,证书有效期超过30天的判断逻辑正常生效

感觉这个可能对你排查bug会有帮助,辛苦作者了

卡住的时候 docker logs 终端输出有什么信息吗?

<!-- gh-comment-id:2954890023 --> @fudiwei commented on GitHub (Jun 9, 2025): > 又排查出一个新的现象 > > 两个流水线配置及现象 > > * 申请 `*.copilot.xxx.top` 和 `*.xxx.top` 的证书 > > * 手动执行正常 > * 自动执行卡住 > * 并且每次自动执行都会生成新的证书,手动执行却不会(自动执行判断逻辑失效,但卡住的原因未知) > * 申请 `*.xxx.xyz` 的证书 > > * 手动执行正常 > * 自动执行正常 > * 不会生成新的证书,证书有效期超过30天的判断逻辑正常生效 > > 感觉这个可能对你排查bug会有帮助,辛苦作者了 卡住的时候 docker logs 终端输出有什么信息吗?
Author
Owner

@MuXia-0326 commented on GitHub (Jun 9, 2025):

又排查出一个新的现象
两个流水线配置及现象

  • 申请 *.copilot.xxx.top*.xxx.top 的证书

    • 手动执行正常
    • 自动执行卡住
    • 并且每次自动执行都会生成新的证书,手动执行却不会(自动执行判断逻辑失效,但卡住的原因未知)
  • 申请 *.xxx.xyz 的证书

    • 手动执行正常
    • 自动执行正常
    • 不会生成新的证书,证书有效期超过30天的判断逻辑正常生效

感觉这个可能对你排查bug会有帮助,辛苦作者了

卡住的时候 docker logs 终端输出有什么信息吗?

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x50 pc=0x514b670]

goroutine 1043 [running]:
github.com/usual2970/certimate/internal/workflow/node-processor.(*applyNode).Process(0xc000155f40, {0x80e43f8, 0xc00082bef0})
        /app/internal/workflow/node-processor/apply_node.go:105 +0x4d0
github.com/usual2970/certimate/internal/workflow/dispatcher.(*workflowInvoker).processNode(0xc0007c83c0, {0x80e43f8, 0xc00082bef0}, 0xc000914750)
        /app/internal/workflow/dispatcher/invoker.go:99 +0x394
github.com/usual2970/certimate/internal/workflow/dispatcher.(*workflowInvoker).Invoke(0xc0007c83c0, {0x80e4430, 0xc00092f6d0})
        /app/internal/workflow/dispatcher/invoker.go:40 +0xaf
github.com/usual2970/certimate/internal/workflow/dispatcher.(*WorkflowDispatcher).work(0xc00083ccf0, {0x80e4430, 0xc00092f6d0}, 0xc0003c7530)
        /app/internal/workflow/dispatcher/dispatcher.go:254 +0x33d
created by github.com/usual2970/certimate/internal/workflow/dispatcher.(*WorkflowDispatcher).dequeueWorker in goroutine 101
        /app/internal/workflow/dispatcher/dispatcher.go:207 +0x465

docker logs 里面有这个报错 不知道是不是

<!-- gh-comment-id:2954894450 --> @MuXia-0326 commented on GitHub (Jun 9, 2025): > > 又排查出一个新的现象 > > 两个流水线配置及现象 > > > > * 申请 `*.copilot.xxx.top` 和 `*.xxx.top` 的证书 > > > > * 手动执行正常 > > * 自动执行卡住 > > * 并且每次自动执行都会生成新的证书,手动执行却不会(自动执行判断逻辑失效,但卡住的原因未知) > > * 申请 `*.xxx.xyz` 的证书 > > > > * 手动执行正常 > > * 自动执行正常 > > * 不会生成新的证书,证书有效期超过30天的判断逻辑正常生效 > > > > 感觉这个可能对你排查bug会有帮助,辛苦作者了 > > 卡住的时候 docker logs 终端输出有什么信息吗? ``` panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x50 pc=0x514b670] goroutine 1043 [running]: github.com/usual2970/certimate/internal/workflow/node-processor.(*applyNode).Process(0xc000155f40, {0x80e43f8, 0xc00082bef0}) /app/internal/workflow/node-processor/apply_node.go:105 +0x4d0 github.com/usual2970/certimate/internal/workflow/dispatcher.(*workflowInvoker).processNode(0xc0007c83c0, {0x80e43f8, 0xc00082bef0}, 0xc000914750) /app/internal/workflow/dispatcher/invoker.go:99 +0x394 github.com/usual2970/certimate/internal/workflow/dispatcher.(*workflowInvoker).Invoke(0xc0007c83c0, {0x80e4430, 0xc00092f6d0}) /app/internal/workflow/dispatcher/invoker.go:40 +0xaf github.com/usual2970/certimate/internal/workflow/dispatcher.(*WorkflowDispatcher).work(0xc00083ccf0, {0x80e4430, 0xc00092f6d0}, 0xc0003c7530) /app/internal/workflow/dispatcher/dispatcher.go:254 +0x33d created by github.com/usual2970/certimate/internal/workflow/dispatcher.(*WorkflowDispatcher).dequeueWorker in goroutine 101 /app/internal/workflow/dispatcher/dispatcher.go:207 +0x465 ``` docker logs 里面有这个报错 不知道是不是
Author
Owner

@fudiwei commented on GitHub (Jun 9, 2025):

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x50 pc=0x514b670]

goroutine 1043 [running]:
github.com/usual2970/certimate/internal/workflow/node-processor.(*applyNode).Process(0xc000155f40, {0x80e43f8, 0xc00082bef0})
        /app/internal/workflow/node-processor/apply_node.go:105 +0x4d0
github.com/usual2970/certimate/internal/workflow/dispatcher.(*workflowInvoker).processNode(0xc0007c83c0, {0x80e43f8, 0xc00082bef0}, 0xc000914750)
        /app/internal/workflow/dispatcher/invoker.go:99 +0x394
github.com/usual2970/certimate/internal/workflow/dispatcher.(*workflowInvoker).Invoke(0xc0007c83c0, {0x80e4430, 0xc00092f6d0})
        /app/internal/workflow/dispatcher/invoker.go:40 +0xaf
github.com/usual2970/certimate/internal/workflow/dispatcher.(*WorkflowDispatcher).work(0xc00083ccf0, {0x80e4430, 0xc00092f6d0}, 0xc0003c7530)
        /app/internal/workflow/dispatcher/dispatcher.go:254 +0x33d
created by github.com/usual2970/certimate/internal/workflow/dispatcher.(*WorkflowDispatcher).dequeueWorker in goroutine 101
        /app/internal/workflow/dispatcher/dispatcher.go:207 +0x465

docker logs 里面有这个报错 不知道是不是

嘶……那这是有空指针异常所以进程挂掉了,然后 docker 健康检查发现容器挂了又自动重启了。进程意外退出导致挂起的工作流,在服务重启后不会自动恢复,所以你看到的现象就是“卡死”。

为啥有空指针等我排查一下。

<!-- gh-comment-id:2954910255 --> @fudiwei commented on GitHub (Jun 9, 2025): > ``` > panic: runtime error: invalid memory address or nil pointer dereference > [signal SIGSEGV: segmentation violation code=0x1 addr=0x50 pc=0x514b670] > > goroutine 1043 [running]: > github.com/usual2970/certimate/internal/workflow/node-processor.(*applyNode).Process(0xc000155f40, {0x80e43f8, 0xc00082bef0}) > /app/internal/workflow/node-processor/apply_node.go:105 +0x4d0 > github.com/usual2970/certimate/internal/workflow/dispatcher.(*workflowInvoker).processNode(0xc0007c83c0, {0x80e43f8, 0xc00082bef0}, 0xc000914750) > /app/internal/workflow/dispatcher/invoker.go:99 +0x394 > github.com/usual2970/certimate/internal/workflow/dispatcher.(*workflowInvoker).Invoke(0xc0007c83c0, {0x80e4430, 0xc00092f6d0}) > /app/internal/workflow/dispatcher/invoker.go:40 +0xaf > github.com/usual2970/certimate/internal/workflow/dispatcher.(*WorkflowDispatcher).work(0xc00083ccf0, {0x80e4430, 0xc00092f6d0}, 0xc0003c7530) > /app/internal/workflow/dispatcher/dispatcher.go:254 +0x33d > created by github.com/usual2970/certimate/internal/workflow/dispatcher.(*WorkflowDispatcher).dequeueWorker in goroutine 101 > /app/internal/workflow/dispatcher/dispatcher.go:207 +0x465 > ``` > > docker logs 里面有这个报错 不知道是不是 嘶……那这是有空指针异常所以进程挂掉了,然后 docker 健康检查发现容器挂了又自动重启了。进程意外退出导致挂起的工作流,在服务重启后不会自动恢复,所以你看到的现象就是“卡死”。 为啥有空指针等我排查一下。
Author
Owner

@MuXia-0326 commented on GitHub (Jun 9, 2025):

好的,辛苦

<!-- gh-comment-id:2954916242 --> @MuXia-0326 commented on GitHub (Jun 9, 2025): 好的,辛苦
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/certimate#521
No description provided.