Переодическая ошибка "I/O error: Bad address" при работе с clickhouse через linked server mssql
Используемая версия драйвера clickhouse-odbc: 1.1.9.20201226 В mssql sql server 2019 настроен linked server через odbc-driver для прямых запросов к clickhouse.
и периодически при выполнении любого запроса, хоть: execute('select 1') AT clickhouse выходит ошибка:
OLE DB provider "MSDASQL" for linked server "clickhouse". [SQLSTATE 42000] (Error 7320) OLE DB provider "MSDASQL" for linked server "clickhouse" returned message "I/O error: Bad address". [SQLSTATE 01000] (Error 7412)
Ошибка проявляется не постоянно, а непроизвольно. Например если с одного компьютера выдается такая ошибка, то выполняем этот же самый запрос на другом компьютере и там запрос выполняется, но потом и там может сломаться. Не понимаю как отловить из-за чего происходит такая проблема.
так же через linked server работаем с postgres и другими версиями mssql - там все стабильно и подобных ошибок нет.
строка подключения стандартная: @provstr=N'DRIVER={ClickHouse ODBC Driver (Unicode)};Url=https://server_name/;Port=4433;DATABASE=dbname;SSLMode=allow;stringmaxlength=4000;Timeout=240;Trace=1;TraceFile=z:\logs\file.log'
Ошибка воспроизводится если server_name заменить на IP адрес?
Ошибка воспроизводится если server_name заменить на IP адрес?
да, пробовал и по IP и по DNS имени - периодически ошибка вылетает, но через пару минут проходит
какая сеть между clickhouse server и MSSQL? это разные сервера в локальной сети?
какая сеть между clickhouse server и MSSQL? это разные сервера в локальной сети?
mssql сервер в локальной сети, clickhouse внешний сервер, доступный через интернет. I/O error: Bad address - это ошибка равносильная ошибке 502 bad gateway?
нет, ошибка не равносильна 502 bad gateway
сообщение об ошибке наводит на мысль о том, что после установки соединения, во время пересылки данных, IP адрес сервера перестает быть доступен если есть возможность то советую поднять какой то мониторинг на MSSQL сервере который будет делать ping до IP адреса clickhouse сервера и будет делать запрос к http://ip_clickhouse:8123/ping и проверять что http response body равно "Ok" по крайней мере выявим есть ли разрывы связи между mssql и clickhouse
потом можно пробовать какой то reconnect реализовывать на уровне odbc или на уровне linked server MSSQL
Это ошибка EFAULT "The receive buffer pointer(s) point outside the processes address space."
Скорее всего это баг. Нужен точный сценарий воспроизведения. Попробуйте включить tracing драйвера (инструкция есть в readme) и попробуйте воспроизвести проблему.
нет, ошибка не равносильна 502 bad gateway
сообщение об ошибке наводит на мысль о том, что после установки соединения, во время пересылки данных, IP адрес сервера перестает быть доступен если есть возможность то советую поднять какой то мониторинг на MSSQL сервере который будет делать ping до IP адреса clickhouse сервера и будет делать запрос к http://ip_clickhouse:8123/ping и проверять что http response body равно "Ok" по крайней мере выявим есть ли разрывы связи между mssql и clickhouse
потом можно пробовать какой то reconnect реализовывать на уровне odbc или на уровне linked server MSSQL
настроили пинг на clickhouse каждую секунуду , в течении 4х суток - потерь нет, за исключением когда сервер уходил в ребут. так же настроили http://ip_clickhouse:8123/ping такой пинг, тоже всё ок, без потерь. а вот mssql переодически отваливался с ошибкой "I/O error: Bad address". [SQLSTATE 01000] (Error 7412) сетевую проблему я откидываю
трассировку настроить не удалось, точнее я ее настроил и она собирал инфу от разных odbc, особенно это заметно при запуске powerbi, но именно соединения к clickhouse из-под mssql не отлавливаются.
Добрый день
У меня наблюдается похожая ошибка, но при подключении по ODBC(версия 1.2.1.20220905) из BI инструмента. Логгирование драйвера настроил и получил Bad address ошибку. В файле прикрепил лог с ошибками и несколько логов, предшествующих им. Подскажите, чем может быть вызвано подобное поведение драйвера? Во всех подобных случаях на стороне ClickHouse кластера в логах SQL запросы, которые BI инструмент должен отправить на выполнение, не наблюдаем.