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

tsdb 写数据的时候突然重启设备,重启后设备 db->last_time 变成0开始 #301

Open
shun-dgut opened this issue Jul 2, 2024 · 10 comments

Comments

@shun-dgut
Copy link
Contributor

No description provided.

@shun-dgut
Copy link
Contributor Author

shun-dgut commented Jul 2, 2024

[FlashDB][kv][ate_db][ate_db] (packages\FlashDB-v1.1.2\src\fdb_kvdb.c:1801) KVDB size is 24576 bytes.
[FlashDB][tsl][record_db][record_db] (packages\FlashDB-v1.1.2\src\fdb_tsdb.c:981) TSDB (record_db) oldest sectors is 0x00000000, current using sector is 0x0001F000.
db->last_time 0

@shun-dgut
Copy link
Contributor Author

一个线程使用fdb_tsl_append间隔10ms不断写入数据,在 tsl_append 里面打印 db->last_time 的值,这个时候使用reboot命令重启设备,上电打印 db->last_time 值,会出现 db->last_time 变化为0的情况。
大概是四次五次使用reboot后就出现。

@armink
Copy link
Owner

armink commented Jul 3, 2024

有没有用最新版本测试过呢?

最新版本是 v2.1.0 我看你的是 v1.1.2

@shun-dgut
Copy link
Contributor Author

有没有用最新版本测试过呢?

最新版本是 v2.1.0 我看你的是 v1.1.2

使用的最新版本测试的,文件夹名字没有更改

@armink
Copy link
Owner

armink commented Jul 3, 2024

那你先试着单步调试,分析一下获取 last_time 的逻辑?

@shun-dgut
Copy link
Contributor Author

那你先试着单步调试,分析一下获取 last_time 的逻辑?

应该是write_tsl如果在执行这个函数的时候,触发了重启,会导致 last_time 变为0

@armink
Copy link
Owner

armink commented Jul 3, 2024

image

这里看着是有做掉电保护的,你分析下,为何 last_time 变成 0 了?

@shun-dgut
Copy link
Contributor Author

image

这里看着是有做掉电保护的,你分析下,为何 last_time 变成 0 了?

fdb_tsdb_init 这一块的逻辑有一些文档说明吗,有没有可能是这一块的逻辑有问题

@shun-dgut
Copy link
Contributor Author

image
image
image
image

我发现重启前db->cur_sec.addr的地址也是没有问题的,但是重启后,db->cur_sec.end_time 就是0值了

@shun-dgut
Copy link
Contributor Author

@armink 朱工,你看一下是不是这里导致的,我提交了一个pr #302

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants