Самовольное выключение searchd

Почему-то иногда searchd самовольно отключается и приходятся вручную запускать заново. Причем несколько раз это было ровно в 0 часов 0 минут, что подозрительно. Но бывало и в другое время. Вот пример лога:

[Wed Mar 15 00:00:35.792 2023] [3321] caught SIGTERM, shutting down
[Wed Mar 15 00:00:37.126 2023] [3321] shutdown daemon version ‘6.0.2 89c7a5139@230210 (columnar 2.0.4 5a49bd7@230306) (secondary 2.0.4 5a49bd7@230306)’ …
[Wed Mar 15 00:00:37.126 2023] [3321] shutdown complete

Вот что пишет searchd --status после этого:
Manticore 6.0.2 89c7a5139@230210 (columnar 2.0.4 5a49bd7@230306) (secondary 2.0.4 5a49bd7@230306)

Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2023, Manticore Software LTD (https://manticoresearch.com)
[17:08.286] [651] using config file ‘/etc/manticoresearch/manticore.conf’ (6318 chars)…
[17:08.287] [651] WARNING: failed to connect to 127.0.0.1:9312: Connection refused
[17:08.287] [651] FATAL: failed to connect to daemon: please specify listen with sphinx protocol in your config file

Настройки в конфиге такие:
searchd {
listen = 127.0.0.1:9312
listen = 127.0.0.1:9306:mysql
listen = 127.0.0.1:9308:http
seamless_rotate = 1
unlink_old = 1
log = /var/log/manticore/searchd.log
query_log = /var/log/manticore/query.log
pid_file = /var/run/manticore/searchd.pid
query_log_format = sphinxql
}

С чем это может быть связано?

лучше было бы посмотреть лог демона на предмет Fatal message

Решил проблему, на сервере все таки проблема была.

Подскажите пожалуйста, как именно решили проблему? Такая же ситуация с версией 6.2.12 dc5144d35@230822

Добрый день! Была именно проблема на сервере (Centos), какой-то из процессов не связанных с мантикорой так влиял.

В общем же случае, нужно:

  • смотреть в searchd log
  • если там видно, что процесс внезапно пропадает и стартует заново, например (systemd так делает по дефолту), то смотреть не было ли OOM (в /var/log/messages или типа того, зависит от ОС)

Логи:

[Thu Nov 9 05:42:02.808 2023] [2028117] rt: table products_cat_46: diskchunk 0(1), segments 32 saved in 3.584738 (3.585386) sec, RAM saved/new 44734155/821364 ratio 0.950000 (soft limit 127506841, conf limit 134217728)
[Thu Nov 9 11:50:39.611 2023] [2028115] caught SIGTERM, shutting down
[Thu Nov 9 12:00:52.378 2023] [2184348] watchdog: main process 2184349 forked ok
[Thu Nov 9 12:00:52.392 2023] [2184349] starting daemon version ‘6.2.12 dc5144d35@230822 (columnar 2.2.4 5aec342@230822) (secondary 2.2.4 5aec342@230822)’ …
[Thu Nov 9 12:00:52.393 2023] [2184349] listening on 127.0.0.1:9312 for sphinx and http(s)
[Thu Nov 9 12:00:52.393 2023] [2184349] listening on 127.0.0.1:9306 for mysql
[Thu Nov 9 12:00:52.393 2023] [2184349] listening on 127.0.0.1:9308 for sphinx and http(s)
[Thu Nov 9 12:00:54.211 2023] [2184353] prereading 403 tables
[Thu Nov 9 12:00:54.229 2023] [2184349] accepting connections
[Thu Nov 9 12:00:54.427 2023] [2184353] preread 403 tables in 0.216 sec
[Thu Nov 9 12:00:54.463 2023] [2184356] [BUDDY] started v1.0.18 ‘/usr/share/manticore/modules/manticore-buddy/bin/manticore-buddy --listen=http://127.0.0.1:9312 --threads=8’ at http://127.0.0.1:40903
[Thu Nov 9 12:00:54.607 2023] [2184352] [BUDDY] Loaded plugins:
[Thu Nov 9 12:00:54.607 2023] [2184352] [BUDDY] core: empty-string, backup, emulate-elastic, insert, select, show, cli-table, plugin, test, insert-mva
[Thu Nov 9 12:00:54.607 2023] [2184352] [BUDDY] local:
[Thu Nov 9 12:00:54.607 2023] [2184352] [BUDDY] extra:
[Thu Nov 9 13:07:48.810 2023] [2184352] rt: table products: diskchunk 0(1), segments 32 saved in 1.790689 (1.791212) sec, RAM saved/new 44735991/435979 ratio 0.950000 (soft limit 127506841, conf limit 134217728)
[Thu Nov 9 13:13:11.910 2023] [2184353] rt: table products_keywords: diskchunk 0(1), segments 32 saved in 1.609051 (1.610438) sec, RAM saved/new 44734268/58189 ratio 0.950000 (soft limit 127506841, conf limit 134217728)
[Thu Nov 9 13:19:43.312 2023] [2184357] rt: table products: diskchunk 1(2), segments 32 saved in 7.507540 (7.508566) sec, RAM saved/new 127500277/1789451 ratio 0.950000 (soft limit 127506841, conf limit 134217728)

searchd --status выдает ровно то же самое, что и в примере выше. При попытке перезапуска (вплоть до убивания процесса демона вручную) выдает то же самое: failed to connect to daemon: please specify listen with sphinx protocol in your config file, будто что-то не так с портом, но при этом порт ничем не занят, проверял.

Что характерно, помогает только удаление папки binlog, тогда запуск проходит нормально и все заводится. Случается раз в 2-3 дня. Причем, на другом сервере с теми же настройками мантикоры и примерно теми же настройками сервера, все работает нормально, ничего не падает.

Заново не стартует, просто подвисает и не отвечает, приходится убить процесс демона, удалить папку binlog и запустить вручную. Подробности в посте выше.

Т.е. зависает после

[Thu Nov 9 11:50:39.611 2023] [2028115] caught SIGTERM, shutting down

?

Похоже на то. т.к. это единственная запись в логах, которая по времени как-то релевантна проблеме.

Ситуация редкая. Особенно, если это регулярно повторяется. Можно попробовать запустить searchd в режиме логирования (set global log_level=debugv) и может быть тогда в логе будет больше деталей. Ещё можно подсоединиться к зависшему процессу с помощью gdb и собрать информацию о том, чем занят процесс и его треды - Manticore Search Manual: Reporting bugs?

А что кстати происходит, если не удалять папку с бинлогами?

Ок, как в следующий раз зависнет, так и сделаю.

Если не удалять /binlog, то при попытке перезапуска или вывода статуса выдает:

Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc ([http://sphinxsearch.com](http://sphinxsearch.com/))
Copyright (c) 2017-2023, Manticore Software LTD ([https://manticoresearch.com](https://manticoresearch.com/))
[17:08.286] [651] using config file ‘/etc/manticoresearch/manticore.conf’ (6318 chars)…
[17:08.287] [651] WARNING: failed to connect to 127.0.0.1:9312: Connection refused
[17:08.287] [651] FATAL: failed to connect to daemon: please specify listen with sphinx protocol in your config file

Это видимо от searchd --status, а попытка запуска что возвращает?

Ну, внешне выглядит как-будто все запускается, выводит стандартно информацию о precaching таблиц, но демон не подымается. И при проверке статуса --status вот выдает то, что выше указал.

А в searchd.log что в этот момент?

В том то и странность, что как-будто бы ничего связанного с падением. И глазами просматривал и grep-ом искал на всякие fatal message и т.п…

Можете приаттачить весь searchd log?

Как упадет в следующий раз, обязательно отправлю. У нас очистка логов daily стоит, а старые не сохранил.

Так, есть зависший процесс, gdb прогнал, подскажите пожалуйста, как теперь собрать результаты по пункту 6 ?

Нужны searchd.log, дамп от gcore и все выводы всех команд: show threads, lsof, всё из gdb.