распарсить JSON (взять длину, проверить корректность, извлечь значение, что угодно):
1. в локальной виртуалке работает (как в локальном clickhouse-client, так и через DataGrip)
2. в удаленном сервере падает (как в clickhouse-client через ssh-tunnel, так и через DataGrip)
запрос: select '{"test":"test"}' as a, isValidJSON(a)
стек-трейс удаленного инстанса:
https://gist.github.com/TigProg/76bf65fdfa94a49d4f7a141b802c9c35
есть идеи, куда копать?
ClickHouse использует разные реализации библиотеки simdjson для парсинга JSONов, в зависимости от того, какие инструкции поддерживает процессор. Видимо в выборе реализации и произошел сбой. Можно посмотреть результат выполнения команды lscpu на 1 и 2?
это интересная идея локальный lscpu могу (ноут) удаленный вряд ли смогу (там вируталка на сервере) можете подсказать, куда стоит смотреть в lscpu? кстати, проверил — функции visitParam... работают сорри за мисклик
в виртуалке и надо смотреть можно cat /proc/cpuinfo |grep flags|head -1
и кстати для виртуалок настраивается какие cpu флаги пропихивать внутрь VM
какой процессор на продакшене? clickhouse для парсинга json использует simdjson может у вас там инструкций типа sse или avx нет, потому что в какой нибудь виртуалке все работает и проц не настоящий?
поговорил с админами инструкции avx действительно в удаленной виртуалке нет проверил visitParamas... - работает, поэтому пока не критично спасибо за наводку @den_crane про проброс инструкций мне тоже объяснили собственно буду дальше разбираться
заведите тикет , и приложите вывод флагов, это баг в КХ, должно работать несмотря на
завел https://github.com/ClickHouse/ClickHouse/issues/17666
Обсуждают сегодня