当前位置: 首页 > 知识库问答 >
问题:

Bigtable(from Go)返回“服务器关闭了流而不发送拖车”

耿和韵
2023-03-14

我们使用Google Cloud Bigtable,使用Go库从GCE实例访问它。对于某些ReadRow查询,我们会收到以下错误:

rpc error: code = 13 desc = "server closed the stream without sending trailers"

值得注意的是,这些是一致的。换句话说,如果我们重试同一个查询(我们在两次尝试之间等待约15分钟),我们(几乎?)总是再次出现相同的错误。因此,这似乎不是一个简单的瞬时错误,而是可能与正在获取的数据有某种关系。下面是我们正在运行的特定查询:

row, err := tbl.ReadRow(ctx, <my-row-id>, 
    bigtable.RowFilter(bigtable.ChainFilters(
        bigtable.FamilyFilter(<my-column-family>),
        bigtable.LatestNFilter(1))))

这是否意味着“你想赚太多”?

共有2个答案

窦啸
2023-03-14

对于在家跟随的任何人来说,实际上有一个很大的bug导致了这个错误。说清楚一点,试着读太多(

周宏胜
2023-03-14

来自Engineering-re:太多:是的,理论上可以。目前,如果客户端尝试一次从一行中读取超过256MB,我们将以错误终止读取。不过,该错误应该会传递给客户端。Go客户端可能没有传递这些错误消息。(无论是bigtable go客户端,还是grpc go库?)

对于单行中太多数据的当前解决方法是一次读取几列(或列族),以便一次从该行读取的总大小始终小于256MB。我们正在努力放宽这一限制,但该修复至少还需要几周时间。

 类似资料:
  • Apache版本和模块: 我使用grpc服务器作为后端服务器,由Apache代理。Apache用于终止TLS连接(在Apache中添加了http2支持)。以下是代理设置: ProxyPassMatch“^/v3”h2c://127.0.0.1:9080 现在,如果我发送一个有效的grpc客户端请求,它将被Apache成功代理,grpc客户端将收到grpc服务器响应。但是,当我试图发送一个在grpc

  • 在:PHP Event Source Steading Execution,“text/event-stream”头应该使连接自动关闭,但在我的例子中却没有… 我确实在Window.OnBeForeUnload事件中添加了EventSource.close,但它没有关闭该事件。 如果我查看浏览器的network部分,我可以看到标题是(在添加最大循环30之后):Content-type:text/e

  • 编辑问题以包括所需的行为、特定问题或错误,以及重现问题所需的最短代码。这将有助于其他人回答这个问题。 代码不返回值,而是返回“?”。编译时我没有遇到任何错误。请协助。 代码需要返回需要支付的剩余金额。输出代码1代码2代码3代码4

  • 当我试图从“smtpout.asia.secureserver.net”发送邮件时,它是从本地主机而不是“secureserver”主机发送的。下面是代码: catt(MessagingExc的e){抛出新的Runtime异常(e);} 调试: 但是如果我将主机更改为“smtp.gmail.com”,它就可以正常工作。

  • 还是服务器发送的事件和WebSocket取代了Comet技术?

  • 我正在开发具有REST后端的GWT应用程序。此外,我正在使用RESTEasy和RestyGWT库。 现在,我已经在服务器端创建了永久cookie,并将其返回到客户端(我可以看到它存储在浏览器cookie列表中),但当我创建新的REST调用时,cookie不会发送到服务器。我已经和firebug核实过了。然而,JSESSIONID是双向发送的,没有问题。我假设这是隐式完成的,但我还需要做些什么吗?