The GitHub Actions job "Pull Requests" on pekko.git/zstd-compression has failed. Run started by GitHub user pjfanning (triggered by pjfanning).
Head commit for run: 4959b40524b7fa83b03367b0598b899e2375f813 / PJ Fanning <[email protected]> fix: free the zstd decompression dictionary with its context Motivation: ZstdDecompressor digested the dictionary once into a ZstdDictDecompress shared by every materialization. It could not be closed when one materialization stopped and has no Cleaner, so its native memory was only freed by finalization, and never with finalization disabled. This is the decompression side of the ZstdDictCompress review finding on #3639. Modification: - Load the dictionary bytes into each materialization's ZstdDecompressCtx, which owns the digested dictionary and frees it when the stage closes the context. - Copy the dictionary bytes, or the slice, when the operator is created, and validate the slice bounds there. - Close the context if loading the dictionary fails, since postStop is not called then. Result: The zstd decompressor no longer relies on finalization to free dictionary memory. Each materialization digests the dictionary itself, as the compressor already does for dictionaries without a level. Tests: - New ZstdSpec tests: slices outside the dictionary are rejected when the operator is created, and the operator decompresses with a copy of the dictionary, for more than one materialization. The native memory itself is not observable from the tests. - sbt "stream-tests/testOnly ...ZstdSpec ...ZstdAutoFlushSpec ...CompressionWithoutZstdSpec ...CompressionSpec" (73 passed, 1 canceled by an existing assume) - scalafmt on the changed files References: https://github.com/apache/pekko/pull/3639 Report URL: https://github.com/apache/pekko/actions/runs/39989404200 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
