process_replay: universal replay mechanism using cereal fake sockets (#28115)

* replay_process_with_fake_sockets implementation

* add missing polled_pubs to configs

* drained_pubs field

* updated cereal

* Remove python/native variations of process replay. Replace with universal one using cereal fake sockets

* Replace old py FakeSocket with DummySocket

* Invalidate and deregister fake sockets after replay is done

* Remove unused import

* Set up new prefix for each replay

* Fixes for radard

* Refactor ReplayContext and ProcessConfig

* Minor fixes

* Reimplement controlsd fingerprinting callback

* time.sleep for sockets to safely reconnect

* Fix fingerprinting for controlsd

* Fixes for regen to work

* Fix replay loop to respect submaster frames

* Fix profiler to use new ProcessConfig fields

* Remove tqdm

* Refactor tests to use new ProcessConfig

* Add FrequencyBasedRcvCallback

* Make tolerance None by default

* Update cereal

* Add get_process_config utility func

* Update cereal. Simplify sync procedure

* Chain context managers

* New sub-socket reconnection procedure

* Fix linter issues

* Revert chaining of context managers

* Init controlsState only when replaying controlsd. Update cereal

* Update cereal

* Update process_replay to use new cereal API

* Update cereal

* Update cereal

* Update cereal

* Simplify radard recv callback

* Update release/files_common
old-commit-hash: e6ac6320ace377657446a1a16ccccd75091f5453
This commit is contained in:
Kacper Rączy
2023-05-24 02:24:16 +02:00
committed by GitHub
parent 52e1cf2e64
commit a48b67f720
7 changed files with 305 additions and 437 deletions
+5
View File
@@ -469,6 +469,7 @@ body/crypto/**
cereal/.gitignore
cereal/__init__.py
cereal/car.capnp
cereal/custom.capnp
cereal/legacy.capnp
cereal/log.capnp
cereal/services.py
@@ -478,6 +479,10 @@ cereal/logger/logger.h
cereal/messaging/.gitignore
cereal/messaging/__init__.py
cereal/messaging/bridge.cc
cereal/messaging/event.cc
cereal/messaging/event.h
cereal/messaging/impl_fake.cc
cereal/messaging/impl_fake.h
cereal/messaging/impl_msgq.cc
cereal/messaging/impl_msgq.h
cereal/messaging/impl_zmq.cc