clickhouse-odbc icon indicating copy to clipboard operation
clickhouse-odbc copied to clipboard

Переодическая ошибка "I/O error: Bad address" при работе с clickhouse через linked server mssql

Open Schum-io opened this issue 4 years ago • 8 comments

Используемая версия драйвера 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'

Schum-io avatar Jan 21 '21 04:01 Schum-io

Ошибка воспроизводится если server_name заменить на IP адрес?

Slach avatar Jan 21 '21 05:01 Slach

Ошибка воспроизводится если server_name заменить на IP адрес?

да, пробовал и по IP и по DNS имени - периодически ошибка вылетает, но через пару минут проходит

Schum-io avatar Jan 21 '21 05:01 Schum-io

какая сеть между clickhouse server и MSSQL? это разные сервера в локальной сети?

Slach avatar Jan 21 '21 06:01 Slach

какая сеть между clickhouse server и MSSQL? это разные сервера в локальной сети?

mssql сервер в локальной сети, clickhouse внешний сервер, доступный через интернет. I/O error: Bad address - это ошибка равносильная ошибке 502 bad gateway?

Schum-io avatar Jan 21 '21 06:01 Schum-io

нет, ошибка не равносильна 502 bad gateway

сообщение об ошибке наводит на мысль о том, что после установки соединения, во время пересылки данных, IP адрес сервера перестает быть доступен если есть возможность то советую поднять какой то мониторинг на MSSQL сервере который будет делать ping до IP адреса clickhouse сервера и будет делать запрос к http://ip_clickhouse:8123/ping и проверять что http response body равно "Ok" по крайней мере выявим есть ли разрывы связи между mssql и clickhouse

потом можно пробовать какой то reconnect реализовывать на уровне odbc или на уровне linked server MSSQL

Slach avatar Jan 21 '21 08:01 Slach

Это ошибка EFAULT "The receive buffer pointer(s) point outside the processes address space."

Скорее всего это баг. Нужен точный сценарий воспроизведения. Попробуйте включить tracing драйвера (инструкция есть в readme) и попробуйте воспроизвести проблему.

filimonov avatar Jan 21 '21 20:01 filimonov

нет, ошибка не равносильна 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 не отлавливаются.

Schum-io avatar Jan 29 '21 07:01 Schum-io

Добрый день

У меня наблюдается похожая ошибка, но при подключении по ODBC(версия 1.2.1.20220905) из BI инструмента. Логгирование драйвера настроил и получил Bad address ошибку. В файле прикрепил лог с ошибками и несколько логов, предшествующих им. Подскажите, чем может быть вызвано подобное поведение драйвера? Во всех подобных случаях на стороне ClickHouse кластера в логах SQL запросы, которые BI инструмент должен отправить на выполнение, не наблюдаем.

Bad address error.txt

vasilnikolay avatar Dec 26 '23 11:12 vasilnikolay