aboutsummaryrefslogtreecommitdiffstats
path: root/library/python/testing/yatest_common/yatest/common/runtime.py
diff options
context:
space:
mode:
authorgalaxycrab <UgnineSirdis@ydb.tech>2022-10-31 13:50:00 +0300
committergalaxycrab <UgnineSirdis@ydb.tech>2022-10-31 13:50:00 +0300
commitf7d9221df266d13b4a7036d90d4fe374c7b3e056 (patch)
treeab29ccd7db373b54b85d6a750ee21909523bcdfe /library/python/testing/yatest_common/yatest/common/runtime.py
parent1a8010a735a218f84480e8ef1e6ffd5a45033c94 (diff)
downloadydb-f7d9221df266d13b4a7036d90d4fe374c7b3e056.tar.gz
Fix crash caused by writing nonutf-8 to issue message
В issue поле Message является публичным, поэтому легко записать в него всё что угодно. Хотя кострукторы TIssue делают эскейпинг строк. В S3 source был парсинг сжатых бинарных данных как json'а (юзер забыл указать в биндинге, что файл сжат с помощью gzip) и парсер (clickhouse) выдал в качестве ошибки кусочек этих данных, который затем пошёл в Message (напрямую, не через конструктор, который эскейпит их). В результате не-utf-8 строка была записана в протобуф и передана в акторном сообщении на другую ноду. Другая нода упала в верифайке на распаковке сообщения: протобуф проверяет, что поле типа string должно содержать строку в utf-8. Сделал поле Message private и в методе SetMessage() вызвал эскейпинг строки, такой же, какой делается в конструкторе.
Diffstat (limited to 'library/python/testing/yatest_common/yatest/common/runtime.py')
0 files changed, 0 insertions, 0 deletions