(version 21.6.5):
Code: 86. DB::Exception: Received from localhost:9000. DB::Exception: Code: 86, e.displayText() = DB::Exception: Received error from remote server /?connection_string=DSN%3DMSSQL%3BUID%3Dxxxxxxxx%3BPWD%xxxxxxxxxxxxxxxxxxxxxx&max_block_size=8192. HTTP status code: 500 Internal Server Error, body: ÿstd::exception. Code: 1001, type: nanodbc::database_error, e.what() = ../contrib/nanodbc/nanodbc/nanodbc.cpp:1625: 2400: [FreeTDS][SQL Server]Invalid cursor state , (version 21.6.5.37 (official build)).
Смотрю в system.dictionaries на каком словаре выдаётся ошибка (поле last_exception).
Выдает один (иногда два словаря). Делаю перегрузку конкретно этих словарей - всё OK. Кто-нибудь сталкивался с таким?
стек-трейс из поля last_exception:
Code: 86, e.displayText() = DB::Exception: Received error from remote server /?connection_string=DSN%3DMSSQL%3BUID%3Dxxxxxxxxxxxxxx%3BPWD%xxxxxxxxxxx&max_block_size=8192. HTTP status code: 500 Internal Server Error, body: � std::exception. Code: 1001, type: nanodbc::database_error, e.what() = ../contrib/nanodbc/nanodbc/nanodbc.cpp:1625: 2400: [FreeTDS][SQL Server]Invalid cursor state , Stack trace (when copying this message, always include the lines below):
0. ? @ 0x3a8cac2 in /usr/bin/clickhouse-odbc-bridge
1. ? @ 0x3a8f15d in /usr/bin/clickhouse-odbc-bridge
2. ? @ 0x3a8e271 in /usr/bin/clickhouse-odbc-bridge
3. ? @ 0x2b64fa0 in /usr/bin/clickhouse-odbc-bridge
4. ? @ 0x2b57184 in /usr/bin/clickhouse-odbc-bridge
5. ? @ 0x2b50ce5 in /usr/bin/clickhouse-odbc-bridge
6. ? @ 0x3a2c3d0 in /usr/bin/clickhouse-odbc-bridge
7. ? @ 0x531c2af in /usr/bin/clickhouse-odbc-bridge
8. ? @ 0x531dd1a in /usr/bin/clickhouse-odbc-bridge
9. ? @ 0x5eb9db9 in ?
10. ? @ 0x5eb682a in ?
11. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
12. clone @ 0xfe8dd in /usr/lib64/libc-2.17.so
(version 21.6.5.37 (official build)) (version 21.6.5.37 (official build))
стек трейс говорит что у вас в ODBC bridge ошибка, есть пакет с debug символами clickhouse-common-static-dbg можете его поставить?
если немного погуглить похоже odbc-bridge не закрывает курсор не профетчив все записи из курсора до конца https://stackoverflow.com/questions/26401996/invalid-cursor-state-pdo-odbc-freetds-sql-server можно попробовать включить в unixodbc tracing https://www.easysoft.com/support/kb/kb00945.html и посмотреть как odbc-bridge общается с SQL Server и с полным стектрейсом и трейсфалом можно issue вот тут завести https://github.com/ClickHouse/ClickHouse/issues/
Спасибо, попробую!
Обсуждают сегодня