gitlab 16.x - ERR unknown command ‘HELLO‘

这篇具有很好参考价值的文章主要介绍了gitlab 16.x - ERR unknown command ‘HELLO‘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

现象

gitlab部分操作报错500。通过Rails日志发现以下报错:

报错:

RedisClient::CommandError

ERR unknown command 'HELLO'

{
    "severity": "ERROR",
    "time": "2024-04-22T02:50:16.906Z",
    "correlation_id": "01HW1VC67EJEGKQ1A1CW9TMVPV",
    "meta.caller_id": "UserSettings::PersonalAccessTokensController#create",
    "meta.remote_ip": "10.1.11.11",
    "meta.feature_category": "system_access",
    "meta.user": "root",
    "meta.user_id": 1,
    "meta.client_id": "user/1",
    "exception.class": "RedisClient::CommandError",
    "exception.message": "ERR unknown command 'HELLO'",
    "exception.backtrace": [
        "lib/gitlab/instrumentation/redis_client_middleware.rb:26:in `block in call_pipelined'",
        "lib/gitlab/instrumentation/redis_helper.rb:17:in `instrument_call'",
        "lib/gitlab/instrumentation/redis_client_middleware.rb:25:in `call_pipelined'",
        "lib/gitlab/patch/redis_client.rb:12:in `ensure_connected'",
        "config/initializers/forbid_sidekiq_in_transactions.rb:82:in `block (2 levels) in \u003cmodule:NoEnqueueingFromTransactions\u003e'",
        "app/services/notification_service.rb:95:in `access_token_created'",
        "app/services/personal_access_tokens/create_service.rb:20:in `execute'",
        "app/controllers/user_settings/personal_access_tokens_controller.rb:33:in `create'",
        "app/controllers/application_controller.rb:468:in `set_current_admin'",
        "lib/gitlab/session.rb:11:in `with_session'",
        "app/controllers/application_controller.rb:459:in `set_session_storage'",
        "lib/gitlab/i18n.rb:114:in `with_locale'",
        "lib/gitlab/i18n.rb:120:in `with_user_locale'",
        "app/controllers/application_controller.rb:450:in `set_locale'",
        "app/controllers/application_controller.rb:443:in `set_current_context'",
        "lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'",
        "lib/gitlab/middleware/memory_report.rb:13:in `call'",
        "lib/gitlab/middleware/speedscope.rb:13:in `call'",
        "lib/gitlab/database/load_balancing/rack_middleware.rb:23:in `call'",
        "lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'",
        "lib/gitlab/etag_caching/middleware.rb:21:in `call'",
        "lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'",
        "lib/gitlab/metrics/web_transaction.rb:46:in `run'",
        "lib/gitlab/metrics/rack_middleware.rb:16:in `call'",
        "lib/gitlab/middleware/go.rb:20:in `call'",
        "lib/gitlab/middleware/query_analyzer.rb:11:in `block in call'",
        "lib/gitlab/database/query_analyzer.rb:40:in `within'",
        "lib/gitlab/middleware/query_analyzer.rb:11:in `call'",
        "lib/gitlab/middleware/multipart.rb:173:in `call'",
        "lib/gitlab/middleware/read_only/controller.rb:50:in `call'",
        "lib/gitlab/middleware/read_only.rb:18:in `call'",
        "lib/gitlab/middleware/unauthenticated_session_expiry.rb:18:in `call'",
        "lib/gitlab/middleware/same_site_cookies.rb:27:in `call'",
        "lib/gitlab/middleware/path_traversal_check.rb:35:in `call'",
        "lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'",
        "lib/gitlab/middleware/basic_health_check.rb:25:in `call'",
        "lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'",
        "lib/gitlab/middleware/request_context.rb:15:in `call'",
        "lib/gitlab/middleware/webhook_recursion_detection.rb:15:in `call'",
        "config/initializers/fix_local_cache_middleware.rb:11:in `call'",
        "lib/gitlab/middleware/compressed_json.rb:44:in `call'",
        "lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'",
        "lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call'",
        "lib/gitlab/metrics/requests_rack_middleware.rb:79:in `call'",
        "lib/gitlab/middleware/release_env.rb:13:in `call'"
    ],
    "user.username": "root",
    "tags.program": "web",
    "tags.locale": "en",
    "tags.feature_category": "system_access",
    "tags.correlation_id": "01HW1VC67EJEGKQ1A1CW9TMVPV",
    "extra.storage": "queues"
}

排查

日志报错是Redis执行HELLO命令报错,这个命令适用于指定RESP版本。

  1. Gitlab官方文档要求16.0以上版本,需要使用Redis 6.x or 7.x
  2. Redis 6.x 开始支持RESP3
  3. 连接到Redis,执行Hello 2成功;执行Hello 3报错:ERR unknown command 'HELLO'

gitlab 16.x - ERR unknown command ‘HELLO‘,# gitlab,gitlab,运维

结合以上3点,怀疑Gitlab 16.x版本之前使用RESP2,之后使用RESP3。

进入Redis,执行monitor,复现问题查看操作:

再次看到与HELLO 3命令相关。

gitlab 16.x - ERR unknown command ‘HELLO‘,# gitlab,gitlab,运维

结论&后续处理

结论(踩坑)

  1. 部分公有云Redis 6.x版本,不支持RESP3协议。
  2. Gitlab官方虽然明确说明16.x要使用Redis 6.x or 7.x,但是没有阐述原因。我想其中一个原因就是新的ruby代码对于RESP3协议的依赖。如果官网明确说明,并且附上前置检查步骤会更好。

后续处理文章来源地址https://www.toymoban.com/news/detail-858508.html

  1. 可以自己部署6.x版本redis高可用节点。
  2. 可以选择支持RESP3协议的公有云Redis实例使用。

到了这里,关于gitlab 16.x - ERR unknown command ‘HELLO‘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 错误code128:npm ERR! An unknown git error occurred command git --no-replace-objects ls-remote ssh://

    目录 一、遇到问题 二、出现问题的原因  三、解决办法 四、类似的错误 在使用命令npm install下载依赖项的时候就遇到了这个问题,切换了国内的淘宝源也下载不了。  git上面拉取东西时候出现了问题 1. 项目里面执行这个命令  这个命令的作用是将 Git 在使用 SSH 克隆(或拉

    2024年02月08日
    浏览(42)
  • ts-node 报错 ERR_UNKNOWN_FILE_EXTENSION

    项目里想用 ts-node 跑个脚本,执行: 代码是 TypeScript + ES Module (真香),于是 ts-node 开始抱怨: 在 tsconfig.json 中添加 \\\"ts-node\\\": { \\\"esm\\\": true } 即可。 (如果还报错,请参考这篇文章) ts-node 默认将文件视为 CommonJS ,需要显式声明为 ES Module 。 (个人理解) Troubleshooting | ts-nod

    2024年02月22日
    浏览(35)
  • Node笔记 ts-node 报错 ERR_UNKNOWN_FILE_EXTENSION

    项目里想用 ts-node 跑个脚本,执行: 代码是 TypeScript + ES Module (真香),于是 ts-node 开始抱怨: 在 tsconfig.json 中添加 \\\"ts-node\\\": { \\\"esm\\\": true } 即可。 (如果还报错,请参考这篇文章) ts-node 默认将文件视为 CommonJS ,需要显式声明为 ES Module 。 (个人理解) Troubleshooting | ts-nod

    2024年02月15日
    浏览(38)
  • npm install 出现 npm ERR! command failed 解决办法

    本地使用npm install 时出现如下异常,可以看下本地是否安装过历史版本的node导致的版本冲突。 解决方案: 先将历史版本的 node 卸载,再重新安装后,再执行npm install  转自下面这篇文章 npm install 时 node-sass npm ERR command failed问题解决

    2024年02月12日
    浏览(58)
  • selenium.common.exceptions.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED

    错误内容 我是在 腾讯云轻量服务器 出现这个问题 ps.出现第二次了 都是跟这个dns有关 解决办法 找下阿里云的dns服务 阿里云的dns服务 添加如下内容(可能经常换 换的话就点击链接替换下) 重启网卡

    2024年02月11日
    浏览(69)
  • android webview 打开腾讯文档不跳转到申请权限界面显示ERR_UNKNOWN_URL_SCHEME

    webview 只识别https和http开头的地址 webview调用setWebViewClient方法,重写shouldOverrideUrlLoading方法,返回return super.shouldOverrideUrlLoading(view, url);就可以跳转到申请权限界面了,要登录QQ去申请权限的时候报错,因为这里会返回一个带intent://的地址,只能跳转到外部。要设置 以下是具体

    2024年02月06日
    浏览(46)
  • selenium 使用ip代理报错 unknown error: net::ERR_TUNNEL_CONNECTION_FAILED 解决办法

    在使用 selenium 框架作为爬虫框架进行内容爬取时,难免会用到 ip 代理池。第一次使用 selenium 的 --proxy-server 参数进行代理访问时,我遇到了如下报错: 在 selenium 框架中想使用 ip 代理的方式访问 url,必须先安装 selenium-wire 模块,再从 seleniumwire 导入 webdriver 后使用。否则就会

    2024年02月11日
    浏览(77)
  • 使用pip config配置国内源时提示pip ERROR: unknown command “config“的解决办法

    pip 版本较低,不支持 config 方法 升级 pip 到最新版本

    2024年02月14日
    浏览(33)
  • npm install时 node-sass npm ERR command failed问题解决

    出现错误后,找了很多方法,网上关于这个问题的解决方法也很多,尝试了两三天,最后发现了一个终极解决方案, 亲测有效!!! ,下面是链接。 npm install 时 node-sass npm ERR command failed问题解决

    2024年02月15日
    浏览(55)
  • git clone 报错:fatal: unable to connect to github.com:github.com[0: x.x.x.x]: errno=Unknown err

    错误信息 原因分析: 应该使用https读数据 解决方法: 但是仍然会报错,报错信息如下: 再次解决: 使用git clone 再次拷贝项目,成功!!!

    2024年02月16日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包