This commit is contained in:
firestar5683
2026-04-02 01:18:25 -05:00
parent a16ec85c27
commit 91cc63d68f
2 changed files with 18 additions and 1 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ def main() -> NoReturn:
while True:
dat = b''.join(sock.recv_multipart())
level = dat[0]
record = dat[1:].decode("utf-8")
record = dat[1:].decode("utf-8", errors="backslashreplace")
if level >= log_level:
log_handler.emit(record)
+17
View File
@@ -3,6 +3,7 @@ import os
import time
import cereal.messaging as messaging
import zmq
from openpilot.system.manager.process_config import managed_processes
from openpilot.system.hardware.hw import Paths
from openpilot.common.swaglog import cloudlog, ipchandler
@@ -53,3 +54,19 @@ class TestLogmessaged:
logsize = sum([os.path.getsize(f) for f in self._get_log_files()])
assert (n*len(msg)) < logsize < (n*(len(msg)+1024))
def test_invalid_utf8_log(self):
ctx = zmq.Context()
sock = ctx.socket(zmq.PUSH)
sock.connect(Paths.swaglog_ipc())
try:
sock.send(b"\n" + b'{"msg":"\xff"}')
cloudlog.error("after invalid utf8 log")
time.sleep(0.5)
msgs = [m.logMessage for m in messaging.drain_sock(self.sock)]
assert any('"\\xff"' in m for m in msgs)
assert any("after invalid utf8 log" in m for m in msgs)
finally:
sock.close()
ctx.term()