【问题标题】:When running the DAML sandbox an error occurs运行 DAML 沙箱时发生错误
【发布时间】:2020-01-23 06:26:58
【问题描述】:

运行沙箱时出现以下错误:

io.grpc.netty.NettyServerHandler onStreamError
WARNING: Stream Error
io.netty.handler.codec.http2.Http2Exception$HeaderListSizeException: Header size exceeded max allowed size (8192)

这可能是什么原因?

【问题讨论】:

  • 很难确定具体原因,能否具体说明导致错误发生的条件?
  • 当我运行超过 4 个跟踪器时
  • 不幸的是,一般来说,这似乎不是导致此类错误的条件。如果你能做一个最小的、可重复的例子,我会更容易帮助你。这里有一些关于如何改进 StackOverflow 问题的建议。 stackoverflow.com/help/minimal-reproducible-example

标签: daml


【解决方案1】:

我已经多次看到此错误,这是在沙盒上运行时在复杂的 DAML 模型/事务中出现事务失败的结果。当您遇到交易失败(fetch/exercise 非活动合约、lookupByKey 返回过时的 cid、head []、除以零等)时,沙箱会帮助尝试在错误中提供交易跟踪信息结果。

这通常适用于相对简单的模型。对于更复杂的模型,此跟踪可能会超过最大标头大小,从而产生您看到的错误。发生这种情况时,我在 sandbox.log 文件中找到了跟踪信息,有时还会出现其他有助于解释发生了什么的错误。

跟踪是一个未格式化的转储,因此手动解码可能需要一些努力,但我自己已经做了很多次,并且我需要识别问题的信息一直都在那里——老实说,通常只知道我正在执行的选择 + 特定的错误类别通常足以为我指明正确的方向。

我相信正在构建一些工具来帮助进行此类诊断;但是,我不知道这方面的工作有多先进。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 2020-04-10
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多