From f1a3a131e6901d51c390f187740d752743eb0eb1 Mon Sep 17 00:00:00 2001 From: Ettore Simone Date: Mon, 15 Jun 2026 19:08:20 +0200 Subject: UnicodeDecodeError in PodmanWorker.compare_config During container config comparison, podman's Docker-compat exec API inconsistently demultiplexes the 8-byte frame headers from the output stream depending on podman version, leaving binary bytes in raw_output. This will raise an "UnicodeDecodeError: 'utf-8' codec can't decode byte 0x?? in position 167: invalid start byte" Closes-Bug: 2153943 Change-Id: Ida1c017f50b9a24b88f8962d304eb015fa357211 Signed-off-by: Ettore Simone (cherry picked from commit c99f521356012d5bc42ab3c41a994b67657e86f0) --- tests/kolla_container_tests/test_podman_worker.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/kolla_container_tests/test_podman_worker.py b/tests/kolla_container_tests/test_podman_worker.py index 55ab5c165..048a7a797 100644 --- a/tests/kolla_container_tests/test_podman_worker.py +++ b/tests/kolla_container_tests/test_podman_worker.py @@ -766,6 +766,24 @@ class TestImage(base.BaseTestCase): user='root') self.assertTrue(return_data) + def test_compare_config_chenged_unicode_error(self): + self.fake_data['params']['name'] = 'my_container' + self.pw = get_PodmanWorker(self.fake_data['params']) + my_container = construct_container(self.fake_data['containers'][0]) + invalid_bytes = b'\x8e\xfe\xfd' + my_container.exec_run = mock.Mock(return_value=(1, invalid_bytes)) + self.pw.pc.containers.get.return_value = my_container + + return_data = self.pw.compare_config() + self.pw.pc.containers.get.assert_called_once_with( + self.fake_data['params']['name']) + my_container.exec_run.assert_called_once_with( + pwm.COMPARE_CONFIG_CMD, + user='root') + self.assertTrue(return_data) + self.assertEqual(self.pw._config_diff, + 'container changed during config check') + def test_compare_config_changed_container_exited(self): self.fake_data['params']['name'] = 'my_container' self.pw = get_PodmanWorker(self.fake_data['params']) -- cgit v1.2.3