gpt4 book ai didi

ruby - ruby、openssl、unicorn、systemd (Gcloud) 的非常奇怪的行为

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:23 25 4
gpt4 key购买 nike

我们开始在日志中看到一些奇怪的错误,这些错误通常在 ruby​​ 未使用 OpenSSL 正确编译时出现。但它不一致...

我们收到如下错误:

我们在使用 service unicorn startsystemctl start unicorn 启动 unicorn 时成功重现了它。但只有一些请求...不是全部。某些在后台使用 OpenSSL 的请求确实有效。其他人没有。

但是,当我们使用 /etc/init.d/unicorn start 启动 unicorn 时,一切正常。(澄清一下,systemd 启动相同的 /etc/init.d脚本)

我们尝试调试 ENV 变量、用户权限、文件/目录所有权、重新编译 ruby​​、从头开始引导新服务器……似乎没有任何帮助。

如果这有帮助:

我们缺少什么?我们可以尝试哪些我们没有想到的?

更新 1

  • output of some debug commands ,例如OpenSSL、 ruby 等
  • 正在设置 PATH inside the init.d script
  • unicorn 正在executed via su into www-data user
  • 同样的问题发生在我们使用this unicorn.service时。文件在 /etc/systemd/system
  • 我们在 Gcloud 上运行 Ubuntu 16.04
  • Ruby 通过 apt 安装(明确删除,以防预安装平台)并从头开始编译。我们目前正在运行 2.3.4 并尝试了 2.3.6。手动或使用 ruby-build 编译.没有 rbenv,也没有 RVM
  • 我们通过 apt 安装 libssl-dev(我们正在运行 apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-开发 libffi-dev libgdbm3 libgdbm-dev 在构建 ruby​​ 之前)

更新 2

我们正在为 VM 使用脚本化/可重复的构建过程(使用结构),这个问题在我们在 GCloud 上引导的多个 VM 上是一致的。然后,我们使用相同的引导脚本在 DigitalOcean 上尝试了一个虚拟机,问题似乎没有出现在那里。

在这两种情况下,我们都选择了 Ubuntu 16.04 64 位基础镜像,但显然在内核版本、基础安装包等方面存在一些差异......

更新 3

问题就这样消失了。请参阅下面我的回答。

最佳答案

@gingerlime 我在 GCP 上遇到了与我们的 Jenkins 类似的情况,我们使用的是 ChefDK 3.1.0(ruby embeed 2.5.1p57)——也尝试了其他的,在运行 systemd 的 Jenkins 上。 (Ubuntu 16.04) 和 upstart (Ubuntu 14.04)——我们尝试了两个版本,现在在 4.15.0-1023-gcp 中运行超过 16.04内核版本,使用 kitchen-docker 运行一些作业并且这个问题总是在一些情况下出现。

我深入研究发现这只发生在 Etc.getlogin 时。类被调用(for me here),这不会返回任何错误,它返回正确的信息,类的正确类型(String),但是一旦它被调用,Unsupported digest algorithm得到提升。

如果我通过 root 手动启动进程或 jenkins用户,这个问题不会发生。我试图实现 Etc.getlogin以几种不同的方式,比如使用 ENV['USER'] 、固定字符串或来自 Etc 的其他类, 比如 getpwuid ,模拟来自 Etc.getlogin 的返回类和值,并且不会引发错误。

我不确定这是否是与 GCP 实例使用的 ruby​​ 版本和自定义内核相关的错误,但它发生在与您类似的情况下,对我来说,Etc.getlogin是问题所在。现在,我通过使用未从该函数获取调用的自定义配置进行了修复,并且它工作正常。

关于ruby - ruby、openssl、unicorn、systemd (Gcloud) 的非常奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49035866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com