Good find. base64.b64encode() will add "=" padding characters when the number of input characters is not dividable by three. base64.b64decode() seems to stop decoding when hitting the padding character.
So concatenating the output of multiple base64.b64encode calls will only work in case the encoding input is a multiple of three. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to apport in Ubuntu. https://bugs.launchpad.net/bugs/2076269 Title: invalid base64 encoded gzip data on s390x causes autopkgtest failures Status in Ubuntu on IBM z Systems: New Status in apport package in Ubuntu: New Status in python3.12 package in Ubuntu: New Bug description: The following tests all fail with an encoding/decoding issue: tests/unit/test_problem_report.py::T:test_modify tests/unit/test_report.py::T::test_report_from_systemd_coredump_storage_journal tests/integration/test_problem_report::T::test_write_file Example failure: 564s =================================== FAILURES =================================== 564s ________________________________ T.test_modify _________________________________ 564s 564s self = <tests.unit.test_problem_report.T testMethod=test_modify> 564s 564s def test_modify(self): 564s """reading, modifying fields, and writing back.""" 564s report = textwrap.dedent( 564s """\ 564s ProblemType: Crash 564s Date: now! 564s Long: 564s xxx 564s . 564s yyy 564s Short: Bar 564s File: base64 564s H4sICAAAAAAC/0ZpbGUA 564s c3RyxIAMcBAFAK/2p9MfAAAA 564s """ 564s ).encode() 564s 564s pr = problem_report.ProblemReport() 564s pr.load(io.BytesIO(report)) 564s 564s self.assertEqual(pr["Long"], "xxx\n.\nyyy") 564s 564s # write back unmodified 564s out = io.BytesIO() 564s pr.write(out) 564s > self.assertEqual(out.getvalue(), report) 564s E AssertionError: b'Pro[73 chars]e64\n H4sICAAAAAAC/0ZpbGUA\n cnTChAxwEA==\n BRgAr/an0x8AAAA=\n' != b'Pro[73 chars]e64\n H4sICAAAAAAC/0ZpbGUA\n c3RyxIAMcBAFAK/2p9MfAAAA\n' 564s 564s tests/unit/test_problem_report.py:509: AssertionError Autopkgtest noble log: https://autopkgtest.ubuntu.com/results/autopkgtest-noble/noble/s390x/a/apport/20240807_023039_8850a@/log.gz oracular log: https://autopkgtest.ubuntu.com/results/autopkgtest-oracular/oracular/s390x/a/apport/20240805_132135_d3a80@/log.gz This failure was seen on noble (log above) but also on oracular. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-z-systems/+bug/2076269/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp