При подключении no such database

Доброго времени суток!
Есть Manticore версии:

13.6.7 1ab9ccc95@25080704 (columnar 8.0.1 fc30df6@25072219) (secondary 8.0.1 fc30df6@25072219)
(knn 8.0.1 fc30df6@25072219) (embeddings 1.0.0) git branch manticore-13.6.7...origin/manticore-13.6.7

На этом релизе заметил проблему с подключением на некоторых клиентах.

  1. В Redash v10.1.0 с подключенными Data Source по протоколу MySQL Manticore 6.3.6 нет проблем, подключение и запросы работают.
    При подключении Data Source Manticore 13.6.7 ошибки сыпят:
    error=no such database.
  2. На Python 3.13.9 клиенте с mysql-connector 2.2.9 при подключении к Manticore так же ошибки:
    1046 (42000): no such database
    Подключение там простое:
connection = mysql.connector.connect(host=MANTICORE_HOST, port=MANTICORE_PORT)

На Manticore 6.3.6 нет проблем.
В выводе команды status есть ошибки:

mysql> status;
--------------
mysql  Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

Connection id:          8967
Current database:       Manticore
Current user:           Usual
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         13.6.7 1ab9ccc95@25080704 (columnar 8.0.1 fc30df6@25072219) (secondary 8.0.1 fc30df6@25072219) (knn 8.0.1 fc30df6@25072219) (embeddings 1.0.0) git branch manticore-13.6.7...origin/manticore-13.6.7
Protocol version:       10
Connection:             X.X.X.X via TCP/IP
ERROR 1064 (42000): Trying to access array offset on null
ERROR 2014 (HY000): Commands out of sync; you can't run this command now
Client characterset:    utf8mb4
Server characterset:    utf8mb4
TCP port:               9306
Binary data as:         Hexadecimal
Uptime:                 40 min 11 sec

Threads: 7  Queue now+pri+sec=total: 2+0+0=2  Clients: 11  Vip clients: 0  Buddy clients: 1  Tasks: 14  Queries: 76487  Wall: 9m  CPU: 0us 
Queue/Th: 0.2  Tasks/Th: 2.0 
Load average: 1.67, 2.06, 2.34
--------------

В логах Manticore:

/* Fri Nov 07 13:51:55.340 2025 conn 283008 (X.X.X.X:56364) */ select @@character_set_client, @@character_set_connection, @@character_set_server, @@character_set_database limit 1 # error=Trying to access array offset on null

На версии 7.0 также работало без проблем.

При подключении Data Source Manticore 13.6.7 ошибки сыпят:

Можете запустить мантикору в режиме logdebugv (searchd --logdebugv или set global log_level=’debugv) и поделиться searchd log’ом?

На Python 3.13.9 клиенте с mysql-connector 2.2.9 при подключении к Manticore так же ошибки:

Можно простейший скрипт, который воспроизводит эту проблему?

С debugv ничего интересно не выдал, но много сыпал разве что по метрикам:

2025-11-14 10:52:50.493	
[Fri Nov 14 07:52:50.379 2025] [605843] [BUDDY] [6916dfd2594238.85819336] request data: {"type":"unknown json request","error":{"message":"no such index [metrics]","body":{"error":{"type":"index_not_found_exception","reason":"no such index [metrics]","table":"metrics"},"status":404}},"version":3,"message":{"path_query":"/metrics","body":"","http_method":"GET"}} 
	...
	2025-11-14 10:52:40.472	
[Fri Nov 14 07:52:40.369 2025] [605849] [BUDDY] [6916dfc859ba72.77580180] Metrics payload: {"path":"metrics"} 

А сообщение по ошибке пишет только в query.log:

# error=no such database folium

Без каких-либо деталей.

Пример:

import mysql.connector


MANTICORE_HOST = "X.X.X.X"
MANTICORE_PORT = 9306


connection = mysql.connector.connect(host=MANTICORE_HOST, port=MANTICORE_PORT)
cursor = connection.cursor()
cursor.execute("SELECT 1") # любой запрос
connection.close()

В Python 3.14.0 с mysql-connector 9.5.0 не повторяется:

 ~  python3 --version
Python 3.14.0

 ~  searchd -v
Manticore 14.1.0 2b53a9307@25110709 (columnar 8.1.0 e1522a2@25100213) (secondary 8.1.0 e1522a2@25100213) (knn 8.1.0 e1522a2@25100213) (embeddings 1.0.1)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2025, Manticore Software LTD (https://manticoresearch.com)
 ~  cat test_conn.py
import mysql.connector

print(mysql.connector.__version__)

MANTICORE_HOST = "127.0.0.1"
MANTICORE_PORT = 9306

errors = []
result = None

connection = None
cursor = None

# Try to connect
try:
    connection = mysql.connector.connect(
        host=MANTICORE_HOST,
        port=MANTICORE_PORT
    )
except Exception as e:
    errors.append(f"Connection error: {e}")

# Try to run the query
if connection:
    try:
        cursor = connection.cursor()
        cursor.execute("SELECT 1")
        result = cursor.fetchall()
    except Exception as e:
        errors.append(f"Query error: {e}")

    # Try to close the connection
    try:
        connection.close()
    except Exception as e:
        errors.append(f"Close error: {e}")

# Show all errors or the result
if errors:
    print("Errors found:")
    for err in errors:
        print(" -", err)
else:
    print("Query result:", result)

 ✘  ~  python3 test_conn.py
9.5.0
Query result: [(1,)]

Этот запрос тоже выполяется:

 ~  mysql -P9306 -h0
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 27
Server version: 14.1.0 2b53a9307@25110709 (columnar 8.1.0 e1522a2@25100213) (secondary 8.1.0 e1522a2@25100213) (knn 8.1.0 e1522a2@25100213) (embeddings 1.0.1) git branch manticore-14.1.0...origin/manticore-14.1.0

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select @@character_set_client, @@character_set_connection, @@character_set_server, @@character_set_database limit 1;
+------------------------+----------------------------+------------------------+--------------------------+
| @@character_set_client | @@character_set_connection | @@character_set_server | @@character_set_database |
+------------------------+----------------------------+------------------------+--------------------------+
| utf8                   | utf8                       | utf8mb4                | utf8mb3                  |
+------------------------+----------------------------+------------------------+--------------------------+
1 row in set (0.002 sec)

Возможно, у вас не включен buddy. Без лога searchd сложно сказать.

Только речь про 13.6.7, в сообщении указаны версии.

Пакеты:

manticore-backup/now 1.9.6+25070510-5247d066 all [установлен, локальный]
manticore-buddy/now 3.34.2+25080617-ff540bfc all [установлен, локальный]
manticore-columnar-lib/now 8.0.1+25072222-fc30df67 amd64 [установлен, локальный]
manticore-common/now 13.6.7-25080704-1ab9ccc95 all [установлен, локальный]
manticore-converter/now 13.6.7-25080704-1ab9ccc95 amd64 [установлен, локальный]
manticore-dev/now 13.6.7-25080704-1ab9ccc95 all [установлен, локальный]
manticore-executor/now 1.3.5+25070803-6c4be4c1 amd64 [установлен, локальный]
manticore-extra/now 1.3.5+25070803-6c4be4c1 all [установлен, локальный]
manticore-galera/now 3.37 amd64 [установлен, локальный]
manticore-icudata-65l/now 5.0.2-220530-348514c86 all [установлен, локальный]
manticore-load/now 1.18.2+25050118-8537968a all [установлен, локальный]
manticore-server-core/now 13.6.7-25080704-1ab9ccc95 amd64 [установлен, локальный]
manticore-server/now 13.6.7-25080704-1ab9ccc95 amd64 [установлен, локальный]
manticore-tools/now 13.6.7-25080704-1ab9ccc95 amd64 [установлен, локальный]
manticore-tzdata/now 1.0.1-250708-4dfa71e all [установлен, локальный]
manticore/now 13.6.7-25080704-1ab9ccc95 amd64 [установлен, локальный]

Процессы:

root@manticore-folium-s21:~# ps aux | grep search
mantico+  763619  0.0  0.0  65876  4020 ?        S    ноя14   0:00 /usr/bin/searchd --config /etc/manticoresearch/manticore.conf
mantico+  763620  332 78.0 135028940 102817748 ? Sl   ноя14 17829:07 /usr/bin/searchd --config /etc/manticoresearch/manticore.conf
mantico+  763670  0.0  0.0  64476  2688 ?        S    ноя14   0:00 manticoresearch-buddy-manager
mantico+  763671  0.0  0.0  66572  3068 ?        S    ноя14   0:50 manticoresearch-buddy-worker [0]
mantico+  763672  0.0  0.0  66704  3836 ?        S    ноя14   0:08 manticoresearch-buddy-worker [1]
mantico+  763673  0.0  0.0  66572  2684 ?        S    ноя14   0:08 manticoresearch-buddy-worker [2]
mantico+  763674  0.0  0.0  66704  3452 ?        S    ноя14   0:08 manticoresearch-buddy-worker [3]
mantico+  763675  0.0  0.0  66572  3068 ?        S    ноя14   0:08 manticoresearch-buddy-worker [4]
mantico+  763676  0.1  0.0  97836 14180 ?        S    ноя14   6:19 manticoresearch-buddy-worker [5]
mantico+  763677  0.0  0.0  66572  2684 ?        S    ноя14   0:08 manticoresearch-buddy-worker [6]
mantico+  763678  0.0  0.0  66572  2684 ?        S    ноя14   0:08 manticoresearch-buddy-worker [7]
mantico+  763679  0.0  0.0  66572  2684 ?        S    ноя14   0:08 manticoresearch-buddy-worker [8]
mantico+  763680  0.0  0.0  66572  2684 ?        S    ноя14   0:08 manticoresearch-buddy-worker [9]
mantico+  763681  0.0  0.0  66620  3068 ?        S    ноя14   0:08 manticoresearch-buddy-worker [10]
mantico+  763682  0.0  0.0  66520  3068 ?        S    ноя14   0:00 manticoresearch-buddy-base-plugin-queue-queueprocess
mantico+  763683  0.0  0.0  68724  2300 ?        S    ноя14   0:00 manticoresearch-buddy-base-lib-metricthread
root     1946809  0.0  0.0   6544  1920 pts/1    S+   11:19   0:00 grep --color=auto search

Buddy включен.
Из лога:

2025-11-14 20:52:59.663	
[Fri Nov 14 17:52:59.560 2025] [763630] preread 16 tables in 2.952 sec
	2025-11-14 20:52:56.907	
[Fri Nov 14 17:52:56.751 2025] [763641] [BUDDY]   extra: 
	2025-11-14 20:52:56.907	
[Fri Nov 14 17:52:56.751 2025] [763641] [BUDDY]   local: 



	2025-11-14 20:52:56.907	
[Fri Nov 14 17:52:56.751 2025] [763641] [BUDDY]   core: empty-string, backup, emulate-elastic, fuzzy, create-table, create-cluster, drop, insert, alias, select, show, plugin, test, alter-column, alter-distributed-table, alter-rename-table, modify-table, knn, replace, queue, update, autocomplete, cli-table, truncate, metrics
	2025-11-14 20:52:56.907	
[Fri Nov 14 17:52:56.751 2025] [763641] [BUDDY] Loaded plugins:
	2025-11-14 20:52:56.907	
[Fri Nov 14 17:52:56.751 2025] [763641] [BUDDY] started v3.34.2+25080617-ff540bfc 'manticore-executor /usr/share/manticore/modules/manticore-buddy/src/main.php --listen=http://X.X.X.X:9312  --disable-telemetry --threads=46 --skip=manticoresoftware/buddy-plugin-sharding --skip=manticoresoftware/buddy-plugin-distributed-insert ' at http://127.0.0.1:35029
	2025-11-14 20:52:56.907	
[Fri Nov 14 17:52:56.680 2025] [763620] accepting connections
	2025-11-14 20:52:56.657	
[Fri Nov 14 17:52:56.608 2025] [763630] prereading 16 tables

В 13.6.7 проблему подтверждаю:

mysql> select @@character_set_client, @@character_set_connection, @@character_set_server, @@character_set_database limit 1;
ERROR 1064 (42000): Trying to access array offset on null
mysql> show version;
+------------+----------------------------------+
| Component  | Version                          |
+------------+----------------------------------+
| Daemon     | 13.6.7 1ab9ccc95@25080704        |
| Columnar   | columnar 8.0.1 fc30df6@25072219  |
| Secondary  | secondary 8.0.1 fc30df6@25072219 |
| Knn        | knn 8.0.1 fc30df6@25072219       |
| Embeddings | embeddings 1.0.0                 |
| Buddy      | buddy v3.34.2+25080617-ff540bfc  |
+------------+----------------------------------+
6 rows in set (0.012 sec)

В 14.1.0 такой проблемы уже нет.

fix для 13.6.7 возможен?

Можете попробовать обновить только пакет manticore-buddy

Хорошо, проверим.