cyber_monitor bug
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Start by tracing cyber_monitor's second-to-third-level repeated-field view and the ownership and lifetime of message_ptr_ and channel_msg_ptr_->raw_msg_class_. Compare the two proposed approaches, then verify that repeated-field viewing remains stable during real-time updates and no intermittent core dump occurs.
Written by the indexing model from the issue text.
Description
cyber_monitor在第二层界面想查看repeated字段时(进入第三层界面),偶发性的coredump。 查看源码可知message_ptr_是用的刚进入第三层界面时的值,而channel_msg_ptr->raw_msg_class_是实时更新的,导致message_ptr是一个悬垂指针(message_ptr来源于raw_msg_class)。解决办法:要么舍弃实时更新repeated字段的值,要么就保存当前repeated的Protobuf 反射相关的信息,实时从raw_msg_class里面解析字段出来。
When attempting to view repeated fields in the third-level interface (after entering from the second-level), an intermittent core dump occurs.
Root Cause Analysis:
The message_ptr_ value captured upon entering the third-level interface becomes invalid when channel_msg_ptr->raw_msg_class_ is updated in real-time. This occurs because:
- message_ptr_ is derived from raw_msg_class_
- Real-time updates to raw_msg_class_ cause message_ptr_ to become a dangling pointer
Proposed Solutions:
- Disable Real-time Updates for Repeated Fields. Stop live updates of repeated field values in the third-level interface
- Persist Protobuf Reflection Metadata.Save the current repeated field's reflection information.Dynamically parse fields from raw_msg_class_ using preserved metadata
- Dominant language
- C++
- Stars
- 53
- Forks
- 17
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from wheelos/core
-
update service Open
Difficulty 5/5 Over a week Newbie friendliness 20/100
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
-
P0
Difficulty 4/5 3-5 days Newbie friendliness 25/100
-
add docs OpenP1
Difficulty 5/5 Over a week Newbie friendliness 20/100
-
format ci OpenP0
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gazebosim/gz-sensors#662 · 1 comment ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
LadybirdBrowser/ladybird#12123 ·