Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

snapup扇区的ProveReplicaUpdates消息对扇区WdPost时间点的检测有几率导致消息失败 #494

Closed
1 of 4 tasks
caijian76 opened this issue Oct 27, 2022 · 6 comments · Fixed by #730
Closed
1 of 4 tasks
Assignees
Labels
bug Something isn't working C-triage Category: need triage community issues from community members
Milestone

Comments

@caijian76
Copy link

模块 / Components

  • venus-sector-manager
  • venus-worker
  • 工具链 / toolchains
  • 文档 / docs

版本 / Version

venus-sector-manager version v0.4.0-beta1-prod-git.ff8492c.dirty

描述 / Describe the Bug

ProveReplicaUpdates消息签名时间点和上链时间点,可能正好是扇区WdPost时间窗口的两侧,导致该消息上链失败。

日志 / Logging Information

ERROR   sector-snapup   sectors/snapup_commit.go:212    permanent error: failed on-chain message with exitcode=16, error=""     {"sector": "s-t0xxxxxx-7206"}

重现步骤 / Repo Steps

No response

@caijian76 caijian76 added the bug Something isn't working label Oct 27, 2022
@Fatman13 Fatman13 added the C-triage Category: need triage label Oct 27, 2022
@Fatman13

This comment was marked as off-topic.

@remakeZK
Copy link
Contributor

remakeZK commented Oct 27, 2022

CC @hunjixin venus-messager 是否应该提供预估当前高度到XX高度内执行消息是否成这样的配置?类似的检查在declare faults/snapup/declare recover都会有

@Joss-Hua

This comment was marked as off-topic.

@Fatman13 Fatman13 added the community issues from community members label Mar 20, 2023
@caijian76
Copy link
Author

caijian76 commented May 20, 2023

https://www.filscout.com/zh/message/bafy2bzacebaemwbubkoppe7owdi5iotfqinhop4sc76gflbnm6x2mndgpas5k ,
这个消息里面的封装扇区编号是10703 ,所在的deadline是5,post开始时间是2023-05-20 14:29:30 ,这条消息的签名时间是13:57:53,上链时间是2023-05-20 13:59:30,正好卡在了锁定窗口的边缘。应该是程序签名这个消息的时候,扇区还没锁定,但是上链的时间已经锁定了。我建议把程序判断是否签名ProveReplicaUpdates消息上链的时间,多预留个3-5分钟。及扇区被锁定前的3-5分钟,就不签名了 .
另外,这类上链失败的消息,目前的venus-message好像是检测不到的,认为是上链正常。

@Fatman13
Copy link
Contributor

CC @0x5459

@0x5459
Copy link
Collaborator

0x5459 commented May 22, 2023

https://www.filscout.com/zh/message/bafy2bzacebaemwbubkoppe7owdi5iotfqinhop4sc76gflbnm6x2mndgpas5k , 这个消息里面的封装扇区编号是10703 ,所在的deadline是5,post开始时间是2023-05-20 14:29:30 ,这条消息的签名时间是13:57:53,上链时间是2023-05-20 13:59:30,正好卡在了锁定窗口的边缘。应该是程序签名这个消息的时候,扇区还没锁定,但是上链的时间已经锁定了。我建议把程序判断是否签名ProveReplicaUpdates消息上链的时间,多预留个3-5分钟。及扇区被锁定前的3-5分钟,就不签名了 . 另外,这类上链失败的消息,目前的venus-message好像是检测不到的,认为是上链正常。

发送升级扇区消息时 fvm 内置的合约会校验目标扇区是否处于锁定窗口期,锁定窗口期指目标扇区所在的 deadline 周期加上目标扇区所在的 deadline 周期的上一个 deadline 周期(共记一个小时)。 目前的做法是发送升级扇区消息必须在锁定窗口期前 10 个高度以前提交,只要消息在 10 个高度内执行完成(包括 venus-messager 预估消息),就不会有问题。

代码: #730

@0x5459 0x5459 added this to the v0.7.0 milestone Jun 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working C-triage Category: need triage community issues from community members
Projects
Status: Done
Status: No status
Development

Successfully merging a pull request may close this issue.

5 participants