-
Notifications
You must be signed in to change notification settings - Fork 9.7k
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
record文件中的时间戳可能是乱序的 #15615
Comments
你那边有出现在10.0的时候会出现cyber_recorder record -a录不全的情况吗 |
偶尔有丢帧的情况,但录的topic是全的 |
奇怪,我这边是topic是按照顺序的,但是数据会丢 |
会丢啥意思?丢了某个topic? |
对的,某些话题没有办法正常录制下来 |
奥 我也不是很懂,你可以看看cyber_monitor 能不能看到这些topic,确认是发出来了 |
10.0 cyber_recorder 的使用问题我们尽快修复,修复完这个issue下面同步大家,谢谢。 |
10.0 cyber_recorder的问题已经解决了,请大家pull最新代码编译使用。 @FlyingMusic 乱序的问题理论上不会发生,cyber_recorder 是双buffer写的机制,一个buffer没有flush完,另一个buffer如果满了会阻塞,可以使用最新版本试试。 |
@hearto1314 |
我的描述可能有误,Flush线程不是也在等这个锁; |
10.0里面加了一个in_writing开关优化可能存在录制数据丢失的问题,我们平时确实没遇到乱序的情况。 |
是的,这就是个概率问题,我们是自己缓存一段数据,然后快速频繁调用WriteMessage,所以出现的概率比较大,但也不是必现的,如果是cyber_recorder录数据,是不会出现的,因为调用WriteMessage的频率没那么高,Flush大概率是可以执行到的 |
这就是个生产者消费者模式嘛,生产-消费的过程并不能保证是严格交替执行的,但是现在由于生产者速度比较慢(有个缓存数据的时间),所以大多数情况都是交替执行的,我们的应用场景也是比较苛刻,所以计划先本地改了,你们再帮忙再评估下看看有没有修改的必要吧 @hearto1314 |
Describe the bug
当系统CPU资源紧张时,录制的record文件中的时间戳存在乱序可能
To Reproduce
Steps to reproduce the behavior:
Expected behavior
record文件中的数据保持时间顺序
Screenshots
利用python cyber_record读取某个record文件中的topic,打印其序列号和录制时间,其中有一段是这样的:
seq: 49191, timestamp:
1733739177304346029
seq: 49194, timestamp: 1733739177598199183
seq: 49196, timestamp: 1733739177800743325
seq: 49197, timestamp: 1733739177929194262
seq: 49131, timestamp: 1733739171047058551 <- 开始出现乱序
seq: 49132, timestamp: 1733739171117104758
seq: 49133, timestamp: 1733739171234804341
Additional context
bug可能的原因
文件名:cyber/record/file/record_file_writer.cc
代码段:
The text was updated successfully, but these errors were encountered: