- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我们开始在日志中看到一些奇怪的错误,这些错误通常在 ruby 未使用 OpenSSL 正确编译时出现。但它不一致...
我们收到如下错误:
RuntimeError:不支持的摘要算法 (SHA256)。
(还有其他摘要,如 sha1
)。 example error trace Faraday::SSLError (SSL_CTX_new: (null))
example error trace 我们在使用 service unicorn start
或 systemctl start unicorn
启动 unicorn 时成功重现了它。但只有一些请求...不是全部。某些在后台使用 OpenSSL 的请求确实有效。其他人没有。
但是,当我们使用 /etc/init.d/unicorn start
启动 unicorn 时,一切正常。(澄清一下,systemd 启动相同的 /etc/init.d
脚本)
我们尝试调试 ENV
变量、用户权限、文件/目录所有权、重新编译 ruby、从头开始引导新服务器……似乎没有任何帮助。
如果这有帮助:
我们缺少什么?我们可以尝试哪些我们没有想到的?
/etc/systemd/system
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 之前)我们正在为 VM 使用脚本化/可重复的构建过程(使用结构),这个问题在我们在 GCloud 上引导的多个 VM 上是一致的。然后,我们使用相同的引导脚本在 DigitalOcean 上尝试了一个虚拟机,问题似乎没有出现在那里。
在这两种情况下,我们都选择了 Ubuntu 16.04 64 位基础镜像,但显然在内核版本、基础安装包等方面存在一些差异......
问题就这样消失了。请参阅下面我的回答。
最佳答案
@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/
我指的是这个 URL https://cloud.google.com/speech/docs/getting-started开始使用谷歌语音 API。正如网站所建议的那样,我遵循了以下步骤 创建或选
只需输入 gcloud寻求帮助需要 5 秒。 $ gcloud ... gcloud 0.30s user 0.13s system 7% cpu 5.508 total $ gcloud vers
要查看所有 gcloud 项目,请使用命令 gcloud projects list .要切换到特定项目,请使用 gcloud config set project PROJECT_ID . 但是当您
如何更新 gcloud components在shell脚本中以编程方式? 调用 gcloud components update需要用户输入,例如: $ gcloud components upda
如果我转到谷歌云控制台中的“IAM & admin”并选择左侧的“IAM”选项卡,我会看到一个用户列表(用户名@mydomain)。 如何使用 gcloud 列出这些用户?我如何查看用户通过 gclo
我想编写一个 shell 脚本,它基本上完成了 gcloud 的所有安装步骤,如以下概述:https://cloud.google.com/sdk/?hl=en 但是,当您运行 install.sh
我正在使用 gcloud beta logging read 来读取一些日志,并使用 --format 选项来格式化为 csv: --format="csv(timestamp,jsonPayload
我们的项目正在使用 dataproc,我已经检查了主和工作计算引擎中指示的服务帐户,它对我的存储桶存储具有所需的权限。尽管如此,在日志查看器中,我看到了以下内容: (gsutil) Failed
Google API 客户端通常会识别 GOOGLE_APPLICATION_CREDENTIALS环境变量。如果找到,它应该指向带有服务帐户或用户凭据的 JSON 文件。 可以从 GCP Web 控
当我运行一个简单的命令时,大约需要 10 秒才能完成, λ time gcloud version Google Cloud SDK 293.0.0 beta 2019.05.17 bq 2.0.57
我正在使用 remote builder 运行云构建,能够将工作区中的所有文件复制到我自己的虚拟机,但无法复制隐藏文件 用于复制文件的命令 gcloud compute scp --compress
我在脚本中使用命令gcloud compute instances list,但担心确切的输出格式不是静态的。我该怎么办? 最佳答案 您应该使用大多数--format命令可用的gcloud标志。 例如
我有谷歌云任务 API 的问题。我需要创建具有很远计划时间的任务。最长计划时间为 30 天。是否有可能增加该限制或绕过某些问题? 最佳答案 如果我们查看云任务的配额,我们会看到任务的默认最长调度时间为
如果我发出 gcloud dataproc Clusters list 则会列出 0 个集群: $ gcloud dataproc clusters list Listed 0 items. 但是,如
我在脚本中使用 gcloud auth activate-service-account 来激活服务帐户。它输出 Activated service account credentials for:
gcloud 中的功能和选项有时会被弃用/删除。如果 CI 依赖它并且重构不是一个选项,同时我们需要使用后续版本中出现的新功能,我们可以在同一台计算机上安装多个版本的 gcloud 并同时使用吗? 最
我在脚本中使用 gcloud auth activate-service-account 来激活服务帐户。它输出 Activated service account credentials for:
通常我对 gcloud 命令没有任何问题。作为一个只在更新我的网站时使用的人,我的曝光是通过一个命令: gcloud app deploy 当出现标题中显示的错误时,建议我运行“gcloud info
在 linux 中,我使用的是 Google gcloud。我注意到,当我使用以下命令时,并非总是将新文件或修改过的文件上传到 Google Cloud Storage: gcloud 应用部署 我得
我们正在使用 Jenkins 构建数据并将数据推送到 Google Cloud Storage。 我们有一台构建机器;和多个不同的 Google 项目(测试;生产) 如果 'jenkins' 用户在
我是一名优秀的程序员,十分优秀!