diff options
author | Andrey Chulkov <achulkov2@nebius.com> | 2024-11-02 10:10:06 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2024-11-02 10:27:25 +0300 |
commit | 47ff3a809baa3b8e752b77edffddbc73a55055b5 (patch) | |
tree | 4a29871efdee8f2a390f71dad3321ebc7ce1b2b2 /yql/essentials/utils/retry.cpp | |
parent | fed6ce38e05011c14e969505494cd777605ffd28 (diff) | |
download | ydb-47ff3a809baa3b8e752b77edffddbc73a55055b5.tar.gz |
Use cell leader address as sanitized host
This PR addresses multiple issues:
* Host sanitization was dependent on cell peer hostnames having the same length. The fallback was the local host name, which is different for different peers and can lead to snapshot mismatch.
* The sanitized host attribute is only **serialized** when running under error sanitizer guard. However, response errors aren't serialized in `Automaton`, so right now all such errors are returned to the user without the host attribute. Conversely, PRK serialization is performed in `Automaton`, so we were storing the potentially differing host names :)
The new approach uses the address of the leading peer in the cell as the sanitized host name, and a fixed placeholder if it is not possible to determine it for some reason. This way we don't need additional options for cellar nodes, since the leader is handling all requests and sanitization is not poisoning any errors.
Additionally, the host attribute is always serialized into errors, if available, same as datetime.
Also deletes `SanitizeLocalHostName` helper and corresponding unittest as obsolete.
---
Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/908
commit_hash:04cb44b995e467540d5921d2bf90f2d8c2ac2b06
Diffstat (limited to 'yql/essentials/utils/retry.cpp')
0 files changed, 0 insertions, 0 deletions