From 7ad293af70c26e970bfaf7b198db79f326df6e8b Mon Sep 17 00:00:00 2001
From: Stan Hu <stanhu@gmail.com>
Date: Thu, 25 May 2023 15:01:26 -0700
Subject: [PATCH] Update grpc to v1.55.0

This fixes a number of Ruby 3.1 and 3.2 issues. It also fixes a GitLab
build issue on ArchLinux: https://bugs.archlinux.org/task/78379

Release notes:

* https://github.com/grpc/grpc/releases/tag/v1.43.0
* https://github.com/grpc/grpc/releases/tag/v1.44.0
* https://github.com/grpc/grpc/releases/tag/v1.45.0
* https://github.com/grpc/grpc/releases/tag/v1.46.0
* https://github.com/grpc/grpc/releases/tag/v1.47.0
* https://github.com/grpc/grpc/releases/tag/v1.48.0
* https://github.com/grpc/grpc/releases/tag/v1.49.0
* https://github.com/grpc/grpc/releases/tag/v1.50.0
* https://github.com/grpc/grpc/releases/tag/v1.51.0
* https://github.com/grpc/grpc/releases/tag/v1.52.0
* https://github.com/grpc/grpc/releases/tag/v1.53.0
* https://github.com/grpc/grpc/releases/tag/v1.54.0
* https://github.com/grpc/grpc/releases/tag/v1.55.0

Full diff: https://github.com/grpc/grpc/compare/v1.42.0..v1.55.0

https://github.com/grpc/grpc/pull/29869 added braces around the
`debug_error_string`, so just strip these out.

Changelog: changed
---
 Gemfile                                             |  2 +-
 Gemfile.checksum                                    | 13 +++++++------
 Gemfile.lock                                        |  6 +++---
 .../processor/grpc_error_processor.rb               |  3 ++-
 .../processor/grpc_error_processor_spec.rb          |  2 +-
 5 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/Gemfile b/Gemfile
index bbe364f75bf68..082b4e59f568b 100644
--- a/Gemfile
+++ b/Gemfile
@@ -510,7 +510,7 @@ gem 'gitaly', '~> 15.9.0-rc3'
 # KAS GRPC protocol definitions
 gem 'kas-grpc', '~> 0.1.0'
 
-gem 'grpc', '~> 1.42.0'
+gem 'grpc', '~> 1.55.0'
 
 gem 'google-protobuf', '~> 3.23', '>= 3.23.1'
 
diff --git a/Gemfile.checksum b/Gemfile.checksum
index 4fdcc2cff6fdd..25552b8d4d2a1 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -269,12 +269,13 @@
 {"name":"graphql","version":"1.13.12","platform":"ruby","checksum":"1d82666cf201193a8d0cb54cea38576b820418db4869b549f61a35f3a2d97ac3"},
 {"name":"graphql-client","version":"0.17.0","platform":"ruby","checksum":"5aaf02ce8f2dbc8e3ba05a7eaeb3ad9336762c4424c6093f4438fbb9490eeb5d"},
 {"name":"graphql-docs","version":"2.1.0","platform":"ruby","checksum":"7eb82402f8fda455104b2b60364e9ada145d79d3121a8f915790d49da38bb576"},
-{"name":"grpc","version":"1.42.0","platform":"ruby","checksum":"b3d2649e67c6a636544996843d9ec191699c54c1aca797dbfea4dff36c14584a"},
-{"name":"grpc","version":"1.42.0","platform":"x64-mingw32","checksum":"6aac1b6576134b0a83e000b1269f60d502eb24aee96c64e2658c3f24f8e32ac0"},
-{"name":"grpc","version":"1.42.0","platform":"x86-linux","checksum":"4aa50538aa929f1f3bcefb11c65ee1a1606b5aef838ea4d4e93c100b5f4263a5"},
-{"name":"grpc","version":"1.42.0","platform":"x86-mingw32","checksum":"eeb2a9381bea43fafe879b6ddaa011351a44d0894d48bdc965a07bcb67c6eb56"},
-{"name":"grpc","version":"1.42.0","platform":"x86_64-darwin","checksum":"20fa202d46d8a055628260622e98fb6439529fbac283f0552af620b909f78535"},
-{"name":"grpc","version":"1.42.0","platform":"x86_64-linux","checksum":"92e2ceb2aca335d5755163dd8030082091d5b0e63c117b1ca07051b66c53eb2e"},
+{"name":"grpc","version":"1.55.0","platform":"ruby","checksum":"529332f8e5e98f5b138afd5c4a9c7bdc9e247f4c10c84c1adbf1a114eba161ae"},
+{"name":"grpc","version":"1.55.0","platform":"x64-mingw-ucrt","checksum":"6b5c7b7358476469c5ecb46f35e1eff6983efc9395d9db8db0a2eb4207c82ffb"},
+{"name":"grpc","version":"1.55.0","platform":"x64-mingw32","checksum":"73755c256fc0fe5361a979cd609414ebdaa5862f5821fba20ea31110f1d87405"},
+{"name":"grpc","version":"1.55.0","platform":"x86-linux","checksum":"37c20569a17b1cff91155f193b0df41eb42fd0aed9051fa91ccca273a259e393"},
+{"name":"grpc","version":"1.55.0","platform":"x86-mingw32","checksum":"6b4144b5af8086b46b2e62b5fbda50fc19105a4efefafaca63e15b0384c42274"},
+{"name":"grpc","version":"1.55.0","platform":"x86_64-darwin","checksum":"d7f57eb84811d7ea2a9464ec88d9296a92801f643a4d7cf76cf4896edf12a25c"},
+{"name":"grpc","version":"1.55.0","platform":"x86_64-linux","checksum":"4ee73555759774db22ba23ff79c332cce7ae08b0ba4d4b33ab4747e83e0a8518"},
 {"name":"gssapi","version":"1.3.1","platform":"ruby","checksum":"c51cf30842ee39bd93ce7fc33e20405ff8a04cda9dec6092071b61258284aee1"},
 {"name":"guard","version":"2.16.2","platform":"ruby","checksum":"71ba7abaddecc8be91ab77bbaf78f767246603652ebbc7b976fda497ebdc8fbb"},
 {"name":"guard-compat","version":"1.2.1","platform":"ruby","checksum":"3ad21ab0070107f92edfd82610b5cdc2fb8e368851e72362ada9703443d646fe"},
diff --git a/Gemfile.lock b/Gemfile.lock
index a1043e141cf92..29fff85e16b5c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -750,8 +750,8 @@ GEM
       graphql (~> 1.12)
       html-pipeline (~> 2.9)
       sass (~> 3.4)
-    grpc (1.42.0)
-      google-protobuf (~> 3.18)
+    grpc (1.55.0)
+      google-protobuf (~> 3.23)
       googleapis-common-protos-types (~> 1.0)
     gssapi (1.3.1)
       ffi (>= 1.0.1)
@@ -1777,7 +1777,7 @@ DEPENDENCIES
   graphlyte (~> 1.0.0)
   graphql (~> 1.13.12)
   graphql-docs (~> 2.1.0)
-  grpc (~> 1.42.0)
+  grpc (~> 1.55.0)
   gssapi (~> 1.3.1)
   guard-rspec
   haml_lint (~> 0.40.0)
diff --git a/lib/gitlab/error_tracking/processor/grpc_error_processor.rb b/lib/gitlab/error_tracking/processor/grpc_error_processor.rb
index ab0df39e5128c..c141398bee0d4 100644
--- a/lib/gitlab/error_tracking/processor/grpc_error_processor.rb
+++ b/lib/gitlab/error_tracking/processor/grpc_error_processor.rb
@@ -6,7 +6,8 @@ module Processor
       module GrpcErrorProcessor
         extend Gitlab::ErrorTracking::Processor::Concerns::ProcessesExceptions
 
-        DEBUG_ERROR_STRING_REGEX = RE2('(.*) debug_error_string:(.*)')
+        # Braces added by gRPC Ruby code: https://github.com/grpc/grpc/blob/0e38b075ffff72ab2ad5326e3f60ba6dcc234f46/src/ruby/lib/grpc/errors.rb#L46
+        DEBUG_ERROR_STRING_REGEX = RE2('(.*) debug_error_string:\{(.*)\}')
 
         class << self
           def call(event)
diff --git a/spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb b/spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb
index 33d322d0d4477..3399c6dd9f4c1 100644
--- a/spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb
+++ b/spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb
@@ -2,7 +2,7 @@
 
 require 'spec_helper'
 
-RSpec.describe Gitlab::ErrorTracking::Processor::GrpcErrorProcessor, :sentry do
+RSpec.describe Gitlab::ErrorTracking::Processor::GrpcErrorProcessor, :sentry, feature_category: :integrations do
   describe '.call' do
     let(:raven_required_options) do
       {
-- 
GitLab