Continuous masking of masked variables above 4KiB
Problem
In !2979 (merged), we introduced a fix for masked variables above 4KiB, but it involved sometimes tailing the end of the variable. We discovered this was not a breaking change, as the previous masking implementation would also occasionally reveal masked variables, but in full, at any length, based on how a log line could be split across multiple Write()
calls non-deterministically.
Proposal:
Remove the phrase transform and reliance on text/transform
which has an internal 4 KiB buffer. This can be done keeping track of how much of a phrase has been matched, instead of buffering the phrase until a match.
Additionally, explore a trie-based solution, but may be difficult because we need to mask over arbitary write boundaries.
Tasks
-
New masking solution: !3482 -
Conduct regression testing -
Conduct performance testing