Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

GRPC::ResourceExhausted: 8:Received message larger than max (4399180 vs. 4194304).

未关闭
#751 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
grpc, ruby
领域
api, blockchain

调研方向

失败的调用是报告的 client.rb 第 68 行中的 get_transaction_result_by_id,使用的是 Flow::Access protobuf Stub。首先追踪该 Stub 的 Ruby grpc 通道配置,以及 issue 中链接的 protobuf 定义。完成标准是:在不出现 GRPC::ResourceExhausted 的情况下获取超大的交易结果,并仍将其解析为 TransactionResult。

由索引模型根据 Issue 内容生成。

描述

bug Feedback

Hi guys,
I'm using your protobuf source files, but I have a problem with received message when I'm trying to get transaction result.

Steps to Reproduce

Backtrace of error.

Caused by:
GRPC::ResourceExhausted: 8:Received message larger than max (9259070 vs. 4194304). debug_error_string:{"created":"@1641864948.226107284","description":"Received message larger than max (9259070 vs. 4194304)","file":"src/core/ext/filters/message_size/message_size_filter.cc","file_line":205,"grpc_status":8}
/var/www/etl/shared/bundle/ruby/2.6.0/gems/grpc-1.42.0-x86_64-linux/src/ruby/lib/grpc/generic/active_call.rb:29:in `check_status'
/var/www/etl/shared/bundle/ruby/2.6.0/gems/grpc-1.42.0-x86_64-linux/src/ruby/lib/grpc/generic/active_call.rb:180:in `attach_status_results_and_complete_call'
/var/www/etl/shared/bundle/ruby/2.6.0/gems/grpc-1.42.0-x86_64-linux/src/ruby/lib/grpc/generic/active_call.rb:376:in `request_response'
/var/www/etl/shared/bundle/ruby/2.6.0/gems/grpc-1.42.0-x86_64-linux/src/ruby/lib/grpc/generic/client_stub.rb:180:in `block in request_response'
/var/www/etl/shared/bundle/ruby/2.6.0/gems/grpc-1.42.0-x86_64-linux/src/ruby/lib/grpc/generic/interceptors.rb:170:in `intercept!'
/var/www/etl/shared/bundle/ruby/2.6.0/gems/grpc-1.42.0-x86_64-linux/src/ruby/lib/grpc/generic/client_stub.rb:179:in `request_response'
/var/www/etl/shared/bundle/ruby/2.6.0/gems/grpc-1.42.0-x86_64-linux/src/ruby/lib/grpc/generic/service.rb:171:in `block (3 levels) in rpc_stub_class'
/var/www/etl/releases/20220109122655/lib/etl/flow_blockchain/flow_client/client.rb:68:in `get_transaction_result_by_id'

Code:

  class Client
    def initialize(node_address)
      @stub = Flow::Access::AccessAPI::Stub.new(node_address, :this_channel_is_insecure)
    end

    # Returns the execution result of a transaction.
    # @param [String] id
    # @return [FlowClient::TransactionResult] the transaction result
    def get_transaction_result_by_id(id)
      req = Flow::Access::GetTransactionRequest.new(id: to_bytes(id))

      begin
        res = @stub.get_transaction_result(req)
      rescue GRPC::BadStatus => e
        raise StandardError, e.details 
      else
        TransactionResult.parse_grpc(res)
      end
    end
end

How can I increase the maximum available received message length?

Thank you in advance!

主要语言
Go
星标
361
派生
159
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

onflow/flow 的其他 Issue

查看 onflow/flow 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。