Datastax cassandra cpp_driver зависает при подключении к узлу - PullRequest
3 голосов
/ 01 апреля 2020

Я установил ScyllDB на моем компьютере с Debian 9.6. Когда я запускаю cqlsh, я могу подключиться к нему и создать таблицы, выполнить запросы и т.д. c .. Теперь я попытался написать простую программу на C ++, используя драйвер Datstax, и он не может подключиться. Он всегда блокируется при попытке подключения.

Установленный мною пакет scylla:

scylla | 3.0.11-0.20191126.3c91bad0d-1~stretch

cpp_driver - текущий мастер из github: https://github.com/datastax/cpp-driver

Теперь я попытался запустить проект examples/simple, который включен в драйвер, поэтому я предполагаю, что он должен работать, но он показывает ту же проблему. Я не получаю никаких ошибок, он просто блокирует

CassCluster* cluster = cass_cluster_new();
CassSession* session = cass_session_new();
char* hosts = "127.0.0.1";
cass_cluster_set_contact_points(cluster, hosts);
cass_cluster_set_protocol_version(cluster, CASS_PROTOCOL_VERSION_V4);
connect_future = cass_session_connect(session, cluster);

// here it blocks now forever...
er = cass_future_error_code(connect_future);

Я также пытался запустить его на Ubuntu 16.04, но он показывает ту же проблему. Поскольку соединение работает, используя cqlsh, я думаю, что это не должно быть проблемой конфигурации, а скорее чем-то с cpp_driver.

Я также проследил соединение TCP, и я вижу, что cpp_driver общается с сервер, который похож на разговор cql sh.

1 Ответ

3 голосов
/ 01 апреля 2020

Я наконец нашел решение этой проблемы. Мы использовали cpp_driver 2.15.1, который, по-видимому, получил некоторые изменения в обработке событий согласно их заметкам о выпуске. Когда я понизился до 2.15.0, проблема исчезла, и соединение могло быть успешно установлено.

...