mariadb версия: 10.2.12-6.Мой запрос к БД застрял в read навсегда, когда моя удаленная mariadb восстановилась (или подобное действие).Трассировка стека GDB подтверждает, что чтение застряло:
#0 0x00007fe14b46d7ad in read () from /lib64/libpthread.so.0
#1 0x00007fe14d922935 in sock_read () from /lib64/libcrypto.so.10
#2 0x00007fe14d92099b in BIO_read () from /lib64/libcrypto.so.10
#3 0x00007fe14dc99fe4 in ssl3_read_n () from /lib64/libssl.so.10
#4 0x00007fe14dc9b87d in ssl3_read_bytes () from /lib64/libssl.so.10
#5 0x00007fe14dc98304 in ssl3_read_internal () from /lib64/libssl.so.10
#6 0x00007fe14e11eb6d in ma_tls_read () from /lib64/libmysqlclient.so.18
#7 0x00007fe14e10dd91 in ma_pvio_read () from /lib64/libmysqlclient.so.18
#8 0x00007fe14e10dff3 in ma_pvio_cache_read () from /lib64/libmysqlclient.so.18
#9 0x00007fe14e1041be in ma_real_read () from /lib64/libmysqlclient.so.18
#10 0x00007fe14e104fdc in ma_net_read () from /lib64/libmysqlclient.so.18
#11 0x00007fe14e109d5e in ma_net_safe_read () from /lib64/libmysqlclient.so.18
#12 0x00007fe14e10cfe5 in mthd_my_read_query_result () from /lib64/libmysqlclient.so.18
#13 0x00007fe14e563987 in make_query (
query=0x7fe128ff8500 "update heartbeat set .........") at *****:2600
#14 0x000000000041691d in *******(short, unsigned char*) ()
#15 0x0000000000415761 in *******(void*) ()
#16 0x00007fe14b466dd5 in start_thread () from /lib64/libpthread.so.0
#17 0x00007fe14b190b3d in clone () from /lib64/libc.so.6
Я попытался найти какой-нибудь метод, в который можно положить тайм-аут в вызове make_query () для mysql / mariadb, но не смог его найти.Кто-нибудь знает, как мы можем настроить make_query () для тайм-аута?
Примечание: используется язык программирования C, C ++