FileStore: Long cache keys may result in too long paths due to encoding #19889
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently it is ensured that a cache key is not bigger than the max path length of the system before it is URI encoded. As URI encoding is adding additional chars, a long cache key containing some chars that get encoded may still result in too long paths. This lead to an exception in our application.
This PR changes this by checking the length after the cache key was encoded and using the hexdigested value of the cache key instead.
This solution will only change the cache keys for a small subset: All keys that are not longer than 900 chars but are longer than 900 when URI encoded.
#15688 tackles a similar problem and would also solve mine as far as I can tell.