mysql_ping вызывает SIGSEGV

Я использую библиотеку c ++ и mysql ++. У меня есть отдельный объект mysqlpp :: Connection в каждом потоке. Все опции mysqlpp по умолчанию (ReconnectOption отключен). Каждый поток поддерживает постоянное соединение с сервером MariaDB. Перед серией SQL-запросов я делаю следующую проверку:

try
{
if (!connection.ping()) connection.connect(db_cfg.name.c_str(),
db_cfg.server.c_str(),
db_cfg.user.c_str(),
db_cfg.password.c_str(),
db_cfg.port);
}

Этот код редко выдает следующие SIGSEGV:

#0  0x00007fe0a625eb46 in ?? () from /usr/lib/x86_64-linux-  gnu/libmysqlclient.so.20
#1  0x00007fe0a6251b26 in mysql_ping () from /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20
#2  0x00007fe0ab6773b1 in mysqlpp::Connection::ping() () from /usr/lib/libmysqlpp.so.3

Я попытался воспроизвести эту ошибку, запустив тестовую программу с бесконечным циклом вызовов ping / connect. Во время выполнения я перезапустил сервер MariaDB вручную. Однако мне не удалось воспроизвести.
У вас есть идеи как это исправить? Спасибо.

ОС: Ubuntu 64-битная

0

Решение

mysqlpp ++ был перестроен с использованием libmariadbclient вместо libmysqldbclient. Это решает проблему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]