Skip to content

Python RecordWriter writes messages but channel info shows 0 messages #15754

@JiHaoyu1997

Description

@JiHaoyu1997

Description
When using Python RecordWriter to write messages into a .record file, cyber_recorder info reports:

  • message_number is correct
  • but channel_info shows 0 messages
    This behavior is inconsistent with the actual record content and differs from C++ RecordWriter.

Reproduction Code
#!/usr/bin/env python3

from cyber.python.cyber_py3 import cyber
from cyber.python.cyber_py3 import cyber_time
from cyber.python.cyber_py3 import record
from cyber.demo.proto import student_pb2

RECORD_FILE = "/apollo/cyber/demo/data/demo.record"
CHANNEL_NAME = "/apollo/demo"
MESSAGE_TYPE = "cyber.demo.proto.Student"
PROTO_DESC = ""

def main():
cyber.init()
writer = record.RecordWriter()
writer.set_size_fileseg(0)
writer.set_intervaltime_fileseg(0)
writer.open(RECORD_FILE)
msg = student_pb2.Student()
msg.name = "jihy"
msg.age = 28
msg.height = 1.72
msg.books.append("Math")
msg.books.append("English")
writer.write_channel(CHANNEL_NAME, MESSAGE_TYPE, PROTO_DESC)
serialized_msg = msg.SerializeToString()
base_time = cyber_time.Time.now().to_nsec()
for i in range(100):
writer.write_message(CHANNEL_NAME, serialized_msg, base_time + i)
writer.close()
cyber.shutdown()

if name == "main":
main()

Observed Result
record_file: /apollo/cyber/demo/data/demo.record
version: 1.0
duration: 0.000000 Seconds
begin_time: 2026-01-29-09:48:57
end_time: 2026-01-29-09:48:57
size: 10296 Bytes (10.054688 KB)
is_complete: true
message_number: 100
channel_number: 1
channel_info:
/apollo/demo 0 messages: cyber.demo.proto.Student

This does not happen in C++ RecordWriter, indicating a Python-specific implementation issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions