-
Notifications
You must be signed in to change notification settings - Fork 433
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
kv对校验失败后尝试发现下一个节点时,检索范围的问题 #45
Comments
是的 |
看着确实是个 bug 应该是从 |
起始地址的话,看了下应该是没什么问题,只是逻辑比较绕。终止地址sector->addr+db_sec_size(db)更合理。 |
嗯,那你改下真机试试哈,没问题的话可以提交 PR 上来 😄 |
@mrsuiqi,兄弟,不提交PR吗? |
最近没有在搞这个了,修复的话比较简单,你那边修复一下就可以了啊
…------------------ 原始邮件 ------------------
发件人: "armink/FlashDB" <notifications@github.com>;
发送时间: 2021年1月18日(星期一) 中午11:34
收件人: "armink/FlashDB"<FlashDB@noreply.github.com>;
抄送: "Mr.Sui"<1220098071@qq.com>;"Mention"<mention@noreply.github.com>;
主题: Re: [armink/FlashDB] kv对校验失败后尝试发现下一个节点时,检索范围的问题 (#45)
@mrsuiqi,兄弟,不提交PR吗?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
同样遇到这个问题,最后定位到一个扇区的结尾才会出现此问题,修改后验证OK,线上的还是有bug的,作者还是尽快提交吧 |
看代码起始地址之前加过SECTOR_HDR_DATA_SIZE,我这边是修改成addr = find_next_kv_addr(db, addr , sector->addr + db_sec_size(db)),难道我理解错误了 |
多谢反馈,已经改正了 |
函数get_next_kv_addr中,发现pre_kv的crc校验失败,会触发find_next_kv_addr来尝试发现下一个kv_node。
但是在传递参数的的时候终止地址似乎有些问题。
终止地址传递的是sector结束地址减去sector_hdr的长度,但是sector_hdr是放在sector的头部的,这样看起来会导致find的时候没有对sector最后一部分地址进行检查。
劳烦作者看一下我的理解是否有问题
The text was updated successfully, but these errors were encountered: