Skip to content

Log Level opt + endpoint#535

Merged
donhardman merged 20 commits into
mainfrom
feature/log-level-opt
Jun 11, 2025
Merged

Log Level opt + endpoint#535
donhardman merged 20 commits into
mainfrom
feature/log-level-opt

Conversation

@donhardman

Copy link
Copy Markdown
Member

No description provided.

@github-actions

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 43
❌ Failed: 2
⏳ Duration: 463s
👉 Check Action Results for commit 55899ef
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@donhardman donhardman force-pushed the feature/log-level-opt branch from 2dfebaf to 0a45e44 Compare May 16, 2025 04:12
@github-actions

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 43
❌ Failed: 2
⏳ Duration: 463s
👉 Check Action Results for commit 9a22848
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@donhardman donhardman requested a review from Nick-S-2018 May 20, 2025 08:35
@github-actions

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 43
❌ Failed: 2
⏳ Duration: 474s
👉 Check Action Results for commit 9a22848
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@github-actions

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 43
❌ Failed: 2
⏳ Duration: 465s
👉 Check Action Results for commit 9a22848
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@github-actions

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 43
❌ Failed: 2
⏳ Duration: 461s
👉 Check Action Results for commit a95f36c
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@github-actions

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 43
❌ Failed: 2
⏳ Duration: 466s
👉 Check Action Results for commit a95f36c
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@github-actions

github-actions Bot commented Jun 3, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/buddy/
✅ OK: 10
❌ Failed: 3
⏳ Duration: 156s
👉 Check Action Results for commit 42ce4ea
Failed tests:

test/clt-tests/buddy/test-show-version.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "show version\G;"
––– output –––
- Component: Embeddings
+ Component: Buddy
-   Version: embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#
+   Version: buddy v3.28.5-5-g1ad5a6
- *************************** 6. row ***************************
- Component: Buddy
-   Version: buddy %{VERSION}
test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
-         "Component": "Embeddings",
+         "Component": "Buddy",
-         "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+         "Version": "buddy v3.28.5-5-g1ad5a6"
-       },
+       }
-       {
+     ]
-         "Component": "Buddy",
+   }
-         "Version": "buddy %{VERSION}"
+ ]
-       }
-     ]
-   }
- ]
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
-         "Component": "Embeddings",
+         "Component": "Buddy",
-         "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+         "Version": "buddy v3.28.5-5-g1ad5a6"
-       },
+       }
-       {
+     ]
-         "Component": "Buddy",
+   }
-         "Version": "buddy %{VERSION}"
+ ]
-       }
-     ]
-   }
- ]
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
-         "Component": "Embeddings",
+         "Component": "Buddy",
-         "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+         "Version": "buddy v3.28.5-5-g1ad5a6"
-       },
+       }
-       {
+     ]
-         "Component": "Buddy",
+   }
-         "Version": "buddy %{VERSION}"
+ ]
-       }
-     ]
-   }
- ]
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
-         "Component": "Embeddings",
+         "Component": "Buddy",
-         "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+         "Version": "buddy v3.28.5-5-g1ad5a6"
-       },
+       }
-       {
+     ]
-         "Component": "Buddy",
+   }
-         "Version": "buddy %{VERSION}"
+ ]
-       }
-     ]
-   }
- ]
test/clt-tests/buddy/test-log-level-buddy-sync.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
BUDDY_PORT=$(grep "started.*at http://127.0.0.1:" /var/log/manticore/searchd.log | tail -1 | sed 's/.*http:\/\/127.0.0.1:\([0-9]*\).*/\1/'); echo "Buddy API port: $BUDDY_PORT"
––– output –––
OK
––– input –––
sleep 2; curl -s -X GET localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debug;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debug
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debugv
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugvv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debugvv
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=info;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
curl -s -X POST -d '{"log_level":"debug"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- | log_level     | debug |
+ | log_level     | info  |
––– input –––
curl -s -X POST -d '{"log_level":"debugvv"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- +---------------+---------+
+ +---------------+-------+
- | Variable_name | Value   |
+ | Variable_name | Value |
- +---------------+---------+
+ +---------------+-------+
- | log_level     | debugvv |
+ | log_level     | info  |
- +---------------+---------+
+ +---------------+-------+
––– input –––
curl -s -X POST -d '{"log_level":"info"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
OK

@github-actions

github-actions Bot commented Jun 3, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 36
❌ Failed: 9
⏳ Duration: 467s
👉 Check Action Results for commit 42ce4ea
Failed tests:

test/clt-tests/core/test-buddy-max-connections-configuration.rec
––– input –––
sed -i '/^searchd/a\    max_connections=1' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi;
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -P9306 -h0 -e "CREATE TABLE IF NOT EXISTS t (id INT); INSERT INTO t (id) VALUES(0); SHOW QUERIES\G;"
––– output –––
OK
––– input –––
stdbuf -oL searchd --stopwait
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
––– input –––
sed -i '/^searchd/,/^}/s/max_connections=1/max_connections=2/' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi;
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
for n in 1 2; do mysql -P9306 -h0 -e "CREATE TABLE IF NOT EXISTS b${n} (id INT);" ; done; sleep 1; for n in 1 2; do mysql -P9306 -h0 -e "INSERT INTO b${n} (id) VALUES(0)" & pids="$pids $!"; done; for pid in $pids; do wait $pid; done; mysql -P9306 -h0 -e "show queries\G;"
––– output –––
OK
test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "embeddings_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
test/clt-tests/expected-errors/buddy-plugin-select.rec
––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM manticore.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM `manticore`.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM `Manticore`.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.files;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.tables;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.triggers;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.column_statistics;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.columns;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE id = '1';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE id IN ('1');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COALESCE(name, '') = '' FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE CONTAINS(text_field, 'NEAR((word1, word2), 3)');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DISTINCT TABLE_SCHEMA from information_schema.TABLES;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date) * 60 * 60 + MINUTE(date) * 60 + SECOND(date)) SECOND) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date) * 60 * 60 + MINUTE(date) * 60 + SECOND(date)) SECOND) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date)*60 + MINUTE(date)) MINUTE) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date)*60*60 + MINUTE(date)*60 + SECOND(date)) SECOND) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL HOUR(date) HOUR) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL HOUR(date) HOUR) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE(date) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE(date) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFMONTH(date)-1 DAY)) AS date FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFMONTH(date)-1 DAY)) FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFYEAR(date)-1 DAY)) AS date FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFYEAR(date)-1 DAY)) FROM test;'
––– output –––
OK
test/clt-tests/core/show-version-trailing-semicolon.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE t (id INT, value TEXT); INSERT INTO t VALUES (1, 'example'), (2, 'test');"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli?show%20version" | awk '!/row.*in set/'; echo
––– output –––
- +------------+----------------------------------+
+ +-----------+----------------------------------+
- | Component  | Version                          |
+ | Component | Version                          |
- +------------+----------------------------------+
+ +-----------+----------------------------------+
- | Daemon     | %{VERSION} #!/\s*/!#|
+ | Daemon    | 0.0.0 eddb5512e@25052304         |
- | Columnar   | columnar %{VERSION} #!/\s*/!#|
+ | Columnar  | columnar 4.2.2 5333714@25052214  |
- | Secondary  | secondary %{VERSION} #!/\s*/!#|
+ | Secondary | secondary 4.2.2 5333714@25052214 |
- | Knn        | knn %{VERSION} #!/\s*/!#|
+ | Knn       | knn 4.2.2 5333714@25052214       |
- | Embeddings | embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)\s*/!#|
+ | Buddy     | buddy v3.28.5-5-g1ad5a6          |
- | Buddy      | buddy %{VERSION} #!/\s*/!#|
+ +-----------+----------------------------------+
- +------------+----------------------------------+
––– input –––
curl -s "http://localhost:9308/cli_json" -d "show version"; echo
––– output –––
- [{"total":%{NUMBER},"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"%{VERSION}"},{"Component":"Columnar","Version":"columnar %{VERSION}"},{"Component":"Secondary","Version":"secondary %{VERSION}"},{"Component":"Knn","Version":"knn %{VERSION}"},{"Component":"Embeddings","Version":"embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"},{"Component":"Buddy","Version":"buddy %{VERSION}"}]}]
+ [{"total":5,"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"0.0.0 eddb5512e@25052304"},{"Component":"Columnar","Version":"columnar 4.2.2 5333714@25052214"},{"Component":"Secondary","Version":"secondary 4.2.2 5333714@25052214"},{"Component":"Knn","Version":"knn 4.2.2 5333714@25052214"},{"Component":"Buddy","Version":"buddy v3.28.5-5-g1ad5a6"}]}]
––– input –––
curl -s "http://localhost:9308/sql?mode=raw" -d "show version"; echo
––– output –––
- [{"total":%{NUMBER},"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"%{VERSION}"},{"Component":"Columnar","Version":"columnar %{VERSION}"},{"Component":"Secondary","Version":"secondary %{VERSION}"},{"Component":"Knn","Version":"knn %{VERSION}"},{"Component":"Embeddings","Version":"embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"},{"Component":"Buddy","Version":"buddy %{VERSION}"}]}]
+ [{"total":5,"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"0.0.0 eddb5512e@25052304"},{"Component":"Columnar","Version":"columnar 4.2.2 5333714@25052214"},{"Component":"Secondary","Version":"secondary 4.2.2 5333714@25052214"},{"Component":"Knn","Version":"knn 4.2.2 5333714@25052214"},{"Component":"Buddy","Version":"buddy v3.28.5-5-g1ad5a6"}]}]
test/clt-tests/expected-errors/buddy-plugin-backup.rec
––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES users, posts TO '/backup/location';'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES users, posts TO '/backup/location' OPTIONS compress=true, async=false;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES TO '/backup/location' OPTIONS compress=true, async=false;'
––– output –––
OK
test/clt-tests/expected-errors/buddy-plugin-show.rec
––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW QUERIES;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW FULL TABLES;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW SCHEMAS;'
––– output –––
OK
test/clt-tests/core/test-alter-rename-nightly.rec
––– input –––
stdbuf -oL searchd; if timeout 10 grep -qm1 'accepting' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Started'; else echo 'Timeout or failed!'; fi
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2001(f text, s string); insert into index2001 values(01,'abc','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2002(f text, s string); insert into index2002 values(02,'def','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2003(f text, s string); insert into index2003 values(03,'ghi','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2004(f text, s string); insert into index2004 values(04,'jkl','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2001 RENAME new_index2001;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2002 RENAME new_index2002;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2003 RENAME new_index2003;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2004 RENAME new_index2004;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2006(f text, s string); insert into index2006 values(3,'ghi','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2007(f text, s string); insert into index2007 values(4,'jkl','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE dist_table type='distributed' local='index2006' local='index2007';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES; DESC dist_table"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE dist_table RENAME new_dist_table;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE products(title text, meta json) type='pq';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE products RENAME new_products;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE nonexistent RENAME new_nonexistent;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE invalid-name RENAME new_invalid_name;"
––– output –––
OK
––– input –––
for i in $(seq 1 1000); do mysql -h0 -P9306 -e "CREATE TABLE index${i}(f text, s string); insert into index${i} values(${i}, 'value${i}', 'string');"; done
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES" | awk 'NR==1{print $0; next} {print $0 | "sort"}'
––– output –––
OK
––– input –––
for i in $(seq 1 1000); do mysql -h0 -P9306 -e "ALTER TABLE index${i} RENAME new_index${i};"; done
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES" | awk 'NR==1{print $0; next} {print $0 | "sort"}'
––– output –––
OK
test/clt-tests/expected-errors/buddy-plugin-empty-string.rec
––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SET @saved_cs_client = @@character_set_client;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SET character_set_client = utf8mb4;'
––– output –––
OK

@github-actions

github-actions Bot commented Jun 3, 2025

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature-log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-65ed0657-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature-log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@github-actions

github-actions Bot commented Jun 3, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/buddy/
✅ OK: 10
❌ Failed: 3
⏳ Duration: 163s
👉 Check Action Results for commit 65ed065
Failed tests:

test/clt-tests/buddy/test-show-version.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "show version\G;"
––– output –––
- Component: Embeddings
+ Component: Buddy
-   Version: embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#
+   Version: buddy v3.28.5-7-g81a8cd
- *************************** 6. row ***************************
- Component: Buddy
-   Version: buddy %{VERSION}
test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
-         "Component": "Embeddings",
+         "Component": "Buddy",
-         "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+         "Version": "buddy v3.28.5-7-g81a8cd"
-       },
+       }
-       {
+     ]
-         "Component": "Buddy",
+   }
-         "Version": "buddy %{VERSION}"
+ ]
-       }
-     ]
-   }
- ]
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
-         "Component": "Embeddings",
+         "Component": "Buddy",
-         "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+         "Version": "buddy v3.28.5-7-g81a8cd"
-       },
+       }
-       {
+     ]
-         "Component": "Buddy",
+   }
-         "Version": "buddy %{VERSION}"
+ ]
-       }
-     ]
-   }
- ]
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
-         "Component": "Embeddings",
+         "Component": "Buddy",
-         "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+         "Version": "buddy v3.28.5-7-g81a8cd"
-       },
+       }
-       {
+     ]
-         "Component": "Buddy",
+   }
-         "Version": "buddy %{VERSION}"
+ ]
-       }
-     ]
-   }
- ]
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
-         "Component": "Embeddings",
+         "Component": "Buddy",
-         "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+         "Version": "buddy v3.28.5-7-g81a8cd"
-       },
+       }
-       {
+     ]
-         "Component": "Buddy",
+   }
-         "Version": "buddy %{VERSION}"
+ ]
-       }
-     ]
-   }
- ]
test/clt-tests/buddy/test-log-level-buddy-sync.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
BUDDY_PORT=$(grep "started.*at http://127.0.0.1:" /var/log/manticore/searchd.log | tail -1 | sed 's/.*http:\/\/127.0.0.1:\([0-9]*\).*/\1/'); echo "Buddy API port: $BUDDY_PORT"
––– output –––
OK
––– input –––
sleep 2; curl -s -X GET localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debug;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debug
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debugv
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugvv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debugvv
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=info;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
curl -s -X POST -d '{"log_level":"debug"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- | log_level     | debug |
+ | log_level     | info  |
––– input –––
curl -s -X POST -d '{"log_level":"debugvv"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- +---------------+---------+
+ +---------------+-------+
- | Variable_name | Value   |
+ | Variable_name | Value |
- +---------------+---------+
+ +---------------+-------+
- | log_level     | debugvv |
+ | log_level     | info  |
- +---------------+---------+
+ +---------------+-------+
––– input –––
curl -s -X POST -d '{"log_level":"info"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
OK

@github-actions

github-actions Bot commented Jun 3, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 35
❌ Failed: 10
⏳ Duration: 459s
👉 Check Action Results for commit 65ed065
Failed tests:

test/clt-tests/core/test-buddy-max-connections-configuration.rec
––– input –––
sed -i '/^searchd/a\    max_connections=1' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi;
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -P9306 -h0 -e "CREATE TABLE IF NOT EXISTS t (id INT); INSERT INTO t (id) VALUES(0); SHOW QUERIES\G;"
––– output –––
OK
––– input –––
stdbuf -oL searchd --stopwait
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
––– input –––
sed -i '/^searchd/,/^}/s/max_connections=1/max_connections=2/' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi;
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
for n in 1 2; do mysql -P9306 -h0 -e "CREATE TABLE IF NOT EXISTS b${n} (id INT);" ; done; sleep 1; for n in 1 2; do mysql -P9306 -h0 -e "INSERT INTO b${n} (id) VALUES(0)" & pids="$pids $!"; done; for pid in $pids; do wait $pid; done; mysql -P9306 -h0 -e "show queries\G;"
––– output –––
OK
test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "embeddings_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-writing-binlog-during-parallel-queries.rec
––– input –––
set -b +m; sed -i '/data_dir = \/var\/lib\/manticore/a\    binlog_common = 1\n' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
for i in {1..10}; do rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi; mysql -P9306 -h0 -e "drop table if exists t1"; mysql -P9306 -h0 -e "drop table if exists t2"; for n in 1 2; do mysql -P9306 -h0 -e "create table t${n}"; done; sleep 1; for n in 1 2; do mysql -P9306 -h0 -e "insert into t${n} values(0)" &>/dev/null; done; wait 5>/dev/null 2>&1; echo $?; mysql -P9306 -h0 -e "show tables; select * from t1; select * from t2;"; mysql -P9306 -h0 -e "flush logs"; done
––– output –––
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
test/clt-tests/expected-errors/buddy-plugin-select.rec
––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM manticore.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM `manticore`.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM `Manticore`.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.files;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.tables;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.triggers;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.column_statistics;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.columns;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE id = '1';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE id IN ('1');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COALESCE(name, '') = '' FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE CONTAINS(text_field, 'NEAR((word1, word2), 3)');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DISTINCT TABLE_SCHEMA from information_schema.TABLES;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date) * 60 * 60 + MINUTE(date) * 60 + SECOND(date)) SECOND) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date) * 60 * 60 + MINUTE(date) * 60 + SECOND(date)) SECOND) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date)*60 + MINUTE(date)) MINUTE) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date)*60*60 + MINUTE(date)*60 + SECOND(date)) SECOND) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL HOUR(date) HOUR) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL HOUR(date) HOUR) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE(date) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE(date) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFMONTH(date)-1 DAY)) AS date FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFMONTH(date)-1 DAY)) FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFYEAR(date)-1 DAY)) AS date FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFYEAR(date)-1 DAY)) FROM test;'
––– output –––
OK
test/clt-tests/core/show-version-trailing-semicolon.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE t (id INT, value TEXT); INSERT INTO t VALUES (1, 'example'), (2, 'test');"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli?show%20version" | awk '!/row.*in set/'; echo
––– output –––
- +------------+----------------------------------+
+ +-----------+----------------------------------+
- | Component  | Version                          |
+ | Component | Version                          |
- +------------+----------------------------------+
+ +-----------+----------------------------------+
- | Daemon     | %{VERSION} #!/\s*/!#|
+ | Daemon    | 0.0.0 eddb5512e@25052304         |
- | Columnar   | columnar %{VERSION} #!/\s*/!#|
+ | Columnar  | columnar 4.2.2 5333714@25052214  |
- | Secondary  | secondary %{VERSION} #!/\s*/!#|
+ | Secondary | secondary 4.2.2 5333714@25052214 |
- | Knn        | knn %{VERSION} #!/\s*/!#|
+ | Knn       | knn 4.2.2 5333714@25052214       |
- | Embeddings | embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)\s*/!#|
+ | Buddy     | buddy v3.28.5-7-g81a8cd          |
- | Buddy      | buddy %{VERSION} #!/\s*/!#|
+ +-----------+----------------------------------+
- +------------+----------------------------------+
––– input –––
curl -s "http://localhost:9308/cli_json" -d "show version"; echo
––– output –––
- [{"total":%{NUMBER},"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"%{VERSION}"},{"Component":"Columnar","Version":"columnar %{VERSION}"},{"Component":"Secondary","Version":"secondary %{VERSION}"},{"Component":"Knn","Version":"knn %{VERSION}"},{"Component":"Embeddings","Version":"embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"},{"Component":"Buddy","Version":"buddy %{VERSION}"}]}]
+ [{"total":5,"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"0.0.0 eddb5512e@25052304"},{"Component":"Columnar","Version":"columnar 4.2.2 5333714@25052214"},{"Component":"Secondary","Version":"secondary 4.2.2 5333714@25052214"},{"Component":"Knn","Version":"knn 4.2.2 5333714@25052214"},{"Component":"Buddy","Version":"buddy v3.28.5-7-g81a8cd"}]}]
––– input –––
curl -s "http://localhost:9308/sql?mode=raw" -d "show version"; echo
––– output –––
- [{"total":%{NUMBER},"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"%{VERSION}"},{"Component":"Columnar","Version":"columnar %{VERSION}"},{"Component":"Secondary","Version":"secondary %{VERSION}"},{"Component":"Knn","Version":"knn %{VERSION}"},{"Component":"Embeddings","Version":"embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"},{"Component":"Buddy","Version":"buddy %{VERSION}"}]}]
+ [{"total":5,"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"0.0.0 eddb5512e@25052304"},{"Component":"Columnar","Version":"columnar 4.2.2 5333714@25052214"},{"Component":"Secondary","Version":"secondary 4.2.2 5333714@25052214"},{"Component":"Knn","Version":"knn 4.2.2 5333714@25052214"},{"Component":"Buddy","Version":"buddy v3.28.5-7-g81a8cd"}]}]
test/clt-tests/expected-errors/buddy-plugin-backup.rec
––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES users, posts TO '/backup/location';'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES users, posts TO '/backup/location' OPTIONS compress=true, async=false;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES TO '/backup/location' OPTIONS compress=true, async=false;'
––– output –––
OK
test/clt-tests/expected-errors/buddy-plugin-show.rec
––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW QUERIES;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW FULL TABLES;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW SCHEMAS;'
––– output –––
OK
test/clt-tests/core/test-alter-rename-nightly.rec
––– input –––
stdbuf -oL searchd; if timeout 10 grep -qm1 'accepting' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Started'; else echo 'Timeout or failed!'; fi
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2001(f text, s string); insert into index2001 values(01,'abc','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2002(f text, s string); insert into index2002 values(02,'def','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2003(f text, s string); insert into index2003 values(03,'ghi','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2004(f text, s string); insert into index2004 values(04,'jkl','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2001 RENAME new_index2001;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2002 RENAME new_index2002;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2003 RENAME new_index2003;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2004 RENAME new_index2004;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2006(f text, s string); insert into index2006 values(3,'ghi','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2007(f text, s string); insert into index2007 values(4,'jkl','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE dist_table type='distributed' local='index2006' local='index2007';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES; DESC dist_table"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE dist_table RENAME new_dist_table;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE products(title text, meta json) type='pq';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE products RENAME new_products;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE nonexistent RENAME new_nonexistent;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE invalid-name RENAME new_invalid_name;"
––– output –––
OK
––– input –––
for i in $(seq 1 1000); do mysql -h0 -P9306 -e "CREATE TABLE index${i}(f text, s string); insert into index${i} values(${i}, 'value${i}', 'string');"; done
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES" | awk 'NR==1{print $0; next} {print $0 | "sort"}'
––– output –––
OK
––– input –––
for i in $(seq 1 1000); do mysql -h0 -P9306 -e "ALTER TABLE index${i} RENAME new_index${i};"; done
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES" | awk 'NR==1{print $0; next} {print $0 | "sort"}'
––– output –––
OK
test/clt-tests/expected-errors/buddy-plugin-empty-string.rec
––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SET @saved_cs_client = @@character_set_client;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SET character_set_client = utf8mb4;'
––– output –––
OK

@github-actions

github-actions Bot commented Jun 3, 2025

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-50a58067-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@github-actions

github-actions Bot commented Jun 3, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/buddy/
✅ OK: 12
❌ Failed: 1
⏳ Duration: 162s
👉 Check Action Results for commit 50a5806
Failed tests:

test/clt-tests/buddy/test-log-level-buddy-sync.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
BUDDY_PORT=$(grep "started.*at http://127.0.0.1:" /var/log/manticore/searchd.log | tail -1 | sed 's/.*http:\/\/127.0.0.1:\([0-9]*\).*/\1/'); echo "Buddy API port: $BUDDY_PORT"
––– output –––
OK
––– input –––
sleep 2; curl -s -X GET localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debug;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugvv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=info;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
curl -s -X POST -d '{"log_level":"debug"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- | log_level     | debug |
+ | log_level     | info  |
––– input –––
curl -s -X POST -d '{"log_level":"debugvv"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- +---------------+---------+
+ +---------------+-------+
- | Variable_name | Value   |
+ | Variable_name | Value |
- +---------------+---------+
+ +---------------+-------+
- | log_level     | debugvv |
+ | log_level     | info  |
- +---------------+---------+
+ +---------------+-------+
––– input –––
curl -s -X POST -d '{"log_level":"info"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
OK

@github-actions

github-actions Bot commented Jun 3, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 43
❌ Failed: 2
⏳ Duration: 459s
👉 Check Action Results for commit 50a5806
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "embeddings_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@github-actions

github-actions Bot commented Jun 5, 2025

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-eca9582c-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@github-actions

github-actions Bot commented Jun 5, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/buddy/
✅ OK: 12
❌ Failed: 1
⏳ Duration: 168s
👉 Check Action Results for commit eca9582
Failed tests:

test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK

@github-actions

github-actions Bot commented Jun 5, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 43
❌ Failed: 2
⏳ Duration: 467s
👉 Check Action Results for commit eca9582
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "embeddings_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@github-actions

github-actions Bot commented Jun 5, 2025

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-482e9ac9-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@github-actions

github-actions Bot commented Jun 5, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/buddy/
✅ OK: 12
❌ Failed: 1
⏳ Duration: 176s
👉 Check Action Results for commit 482e9ac
Failed tests:

test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK

@github-actions

github-actions Bot commented Jun 5, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 43
❌ Failed: 2
⏳ Duration: 474s
👉 Check Action Results for commit 482e9ac
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "embeddings_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@donhardman donhardman force-pushed the feature/log-level-opt branch from 88c5491 to 63a9f0a Compare June 5, 2025 07:12
@github-actions

github-actions Bot commented Jun 5, 2025

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-59a7ad3c-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@github-actions

github-actions Bot commented Jun 5, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/buddy/
✅ OK: 10
❌ Failed: 3
⏳ Duration: 170s
👉 Check Action Results for commit 59a7ad3
Failed tests:

test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
test/clt-tests/buddy/test-fuzzy-search.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get update -y > /dev/null; echo $?
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
php -d memory_limit=2G ./test/clt-tests/scripts/load_names_attr.php --batch-size=100000 --concurrency=1 --docs=1000000 --start-id=1 --min-infix-len=2 > /dev/null; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name ORDER BY id ASC LIMIT 1000000 OPTION max_matches=1000000;" > /tmp/name_data.txt
––– output –––
OK
––– input –––
md5sum /tmp/name_data.txt
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW CREATE TABLE name;" | grep "min_infix_len='2'" | sed "s/.\(min_infix_len='2'\)./\1/"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM name;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "OPTIMIZE TABLE name OPTION sync=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('RICH') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('EBGRNA') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('ANT') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('tony') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
- |  1721 | JOE TONG         | a    |
+ |  2154 | TONY GREY        | a    |
- |  2154 | TONY GREY        | a    |
+ |  3759 | TOBY GILCHRIST   | a    |
- |  3759 | TOBY GILCHRIST   | a    |
+ |  5687 | TONY EASTERLING  | a    |
- |  5292 | TONA VALENTIN    | a    |
+ |  5835 | TOBY ROBERSON    | a    |
- |  5687 | TONY EASTERLING  | a    |
+ |  6281 | TOBY ARAIZA      | a    |
- |  5835 | TOBY ROBERSON    | a    |
+ |  7311 | ANTONY STOVALL   | a    |
- |  6281 | TOBY ARAIZA      | a    |
+ |  7475 | TOBY REINHART    | a    |
- |  6962 | TONA DAVIDSON    | a    |
+ |  8828 | TONYA CALLAHAN   | a    |
- |  7311 | ANTONY STOVALL   | a    |
+ |  9251 | TOBY LANGFORD    | a    |
- |  7475 | TOBY REINHART    | a    |
+ |  9293 | ZENA STORY       | a    |
- |  8174 | TONA CARRILLO    | a    |
+ |  9619 | TONY WHITTINGTON | a    |
- |  8700 | TONA FLETCHER    | a    |
+ | 10167 | LANA STORY       | a    |
- |  8828 | TONYA CALLAHAN   | a    |
+ | 10341 | ANTONY KAYE      | a    |
- |  9251 | TOBY LANGFORD    | a    |
+ | 12573 | LATONYA CRABTREE | a    |
- |  9293 | ZENA STORY       | a    |
+ | 12876 | TOBY MONTENEGRO  | a    |
- |  9619 | TONY WHITTINGTON | a    |
+ | 13391 | ANTONY CARRILLO  | a    |
- | 10167 | LANA STORY       | a    |
+ | 13672 | LEZLIE STORY     | a    |
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMITH') ORDER BY id DESC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMYTH') ORDER BY id DESC, username ASC OPTION fuzzy=1;"
––– output –––
- +--------+--------------------+------+
+ +--------+----------------+------+
- | id     | username           | s    |
+ | id     | username       | s    |
- +--------+--------------------+------+
+ +--------+----------------+------+
- | 999921 | VICKI SOUTHARD     | a    |
+ | 998829 | EDYTHE VACA    | a    |
- | 998829 | EDYTHE VACA        | a    |
+ | 998500 | SETH PHUNG     | a    |
- | 998500 | SETH PHUNG         | a    |
+ | 996507 | SETH LYMAN     | a    |
- | 996507 | SETH LYMAN         | a    |
+ | 995119 | EDYTHE JOHN    | a    |
- | 995690 | ROBERTO SOUTHARD   | a    |
+ | 993455 | EDYTH ROSADO   | a    |
- | 995663 | CHUNG SOUTH        | a    |
+ | 992097 | EDYTH RAGAN    | a    |
- | 995119 | EDYTHE JOHN        | a    |
+ | 989954 | GWENN SMYTH    | a    |
- | 993455 | EDYTH ROSADO       | a    |
+ | 988823 | SETH WHITTAKER | a    |
- | 993278 | LAKITA SOUTHARD    | a    |
+ | 988755 | SHERRON SMYTH  | a    |
- | 992097 | EDYTH RAGAN        | a    |
+ | 988366 | LAVONIA SMYTH  | a    |
- | 989954 | GWENN SMYTH        | a    |
+ | 986580 | DARNELL SMYTH  | a    |
- | 988936 | LARISA SOUTHERLAND | a    |
+ | 986231 | EDYTH BLODGETT | a    |
- | 988823 | SETH WHITTAKER     | a    |
+ | 985595 | SETH BACON     | a    |
- | 988759 | LIEN SOUTHARD      | a    |
+ | 982423 | SETH CHATMAN   | a    |
- | 988755 | SHERRON SMYTH      | a    |
+ | 981115 | KATIE SMYTH    | a    |
- | 988366 | LAVONIA SMYTH      | a    |
+ | 979541 | EDYTHE CLAYTON | a    |
- | 987165 | TULA SOUTHARD      | a    |
+ | 979093 | SETH BURROUGHS | a    |
- | 987136 | LUANN SOUTHARD     | a    |
+ | 978812 | EDYTH GULLEY   | a    |
- | 986847 | JORDAN SOUTHERN    | a    |
+ | 975994 | SETH PARHAM    | a    |
- | 986711 | MARLIN SOUTHERN    | a    |
+ | 975841 | ALEIDA SMYTH   | a    |
- +--------+--------------------+------+
+ +--------+----------------+------+
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMITH') ORDER BY id DESC, username ASC OPTION fuzzy=\"1\";"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('john') ORDER BY id DESC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('jane') AND id BETWEEN 10000 AND 20000 ORDER BY username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('EBGRNA') AND id BETWEEN 1000 AND 2000 ORDER BY username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SARA') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT username FROM name WHERE MATCH('SMITH') OPTION cutoff=0, ranker=expr('sum((4*lcs+2*(min_hit_pos=1)+exact_hit)*user_weight)*1000+bm25'), field_weights=(username=1), fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT username FROM name WHERE MATCH('SMITH') OPTION cutoff=0, field_weights=(username=1), fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT username FROM name WHERE MATCH('SMITH') OPTION cutoff=0, ranker=expr('sum((4*lcs+2*(min_hit_pos=1)+exact_hit)*user_weight)*1000+bm25'), fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT username FROM name WHERE MATCH('SMITH') OPTION cutoff=0, fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMITH') ORDER BY id ASC OPTION fuzzy=0;" > /tmp/result_fuzzy0.txt
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMITH') ORDER BY id ASC;" > /tmp/result_no_fuzzy.txt
––– output –––
OK
––– input –––
diff /tmp/result_fuzzy0.txt /tmp/result_no_fuzzy.txt; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS fuzziness);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 'us,ru' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS append);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 0 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS prepend, 1 AS append);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS fuzziness, '' AS layouts, 1 AS append, 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 2 AS fuzziness, 'us,ru' AS layouts, 1 AS append, 1 AS prepend, 2 AS expansion_len);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS append);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS append, 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 'us' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 'ru' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('al', 'name', 0 AS fuzziness);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('mi', 'name', 0 AS append, 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('ch', 'name', 1 AS fuzziness, 3 AS expansion_len);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('зф', 'name', 'us,ru' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('зф', 'name', 'us' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('gr', 'name', 1 AS fuzziness, 'ru' AS layouts, 1 AS append, 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS tbl1; CREATE TABLE tbl1 (title TEXT) min_infix_len='2';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM \`tbl1\` WHERE MATCH('abc') OPTION fuzzy = 1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); select * from t where match('somethin') option fuzzy=0;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where match('somethin') option fuzzy=0;"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); call autocomplete('some', 't');"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); call autocomplete('some', 't');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists t; create table t(a int);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t option fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists comment_28798446; create table comment_28798446(id int, content text) min_infix_len='3';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "insert into comment_28798446 values (1, 'business Manticore interaction'), (2, 'buisness Manticore interation'), (3, 'other text content');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('buisness Manticore interation') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('business Manticore interaction') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('Manticore') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('bus', 'comment_28798446', 'ru,us,ua' AS layouts);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('bus', 'comment_28798446', '' AS layouts);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); select * from t where match('somethin') option fuzzy=0;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where match('somethin') option fuzzy=0;"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); call autocomplete('some', 't');"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); call autocomplete('some', 't');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists t; create table t(a int);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t option fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists comment_28798446; create table comment_28798446(id int, content text) min_infix_len='3';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "insert into comment_28798446 values (1, 'business Manticore interaction'), (2, 'buisness Manticore interation'), (3, 'other text content');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('buisness Manticore interation') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('business Manticore interaction') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('Manticore') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('bus', 'comment_28798446', 'ru,us,ua' AS layouts);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('bus', 'comment_28798446', '' AS layouts);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS t; DEBUG SLEEP 2; CREATE TABLE t(f TEXT) min_infix_len='2';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO t VALUES (1, 'abcdef'), (2, 'abcd efgh');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('abcdef'); SHOW META;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "insert into t values(3, 'aa defghi xxx');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where match('aa def ghi xxx') option fuzzy=1, layouts='';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('abcef') OPTION fuzzy=1; SHOW META;"
––– output –––
OK
––– input –––
grep -A3 "SELECT \* FROM t WHERE MATCH('abcdef')" /var/log/manticore/query.log
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('nonexistent'); SHOW META;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('abcdef') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('\$#@\!') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS idx1; CREATE TABLE idx1(value TEXT) min_infix_len='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO idx1(value) VALUES ('340');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('34', 'idx1');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('3', 'idx1');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('34', 'idx1', 1 AS fuzziness);"
––– output –––
OK
––– input –––
echo -e "searchd {\nlisten = 9306:mysql\nlisten = 9312\nlisten = 9308:http\nlog = /tmp/searchd.log\nquery_log = /tmp/query.log\npid_file = /tmp/searchd.pid\n}\n\nsource src_idx {\ntype = tsvpipe\ntsvpipe_command = cat /tmp/data.tsv\ntsvpipe_field_string = f\ntsvpipe_attr_bigint = id\n}\n\nindex idx_plain {\ntype = plain\nsource = src_idx\npath = /tmp/idx_plain\nmin_infix_len = 2\n}" > /tmp/manticore_idx.conf; echo $?
––– output –––
OK
––– input –––
echo -e "1\tabcdef\n2\tabcd efgh\n3\trandom text" > /tmp/data.tsv; echo $?
––– output –––
OK
––– input –––
mkdir -p /tmp/idx_plain && chmod 777 /tmp/idx_plain; echo $?
––– output –––
OK
––– input –––
indexer --all --config /tmp/manticore_idx.conf > /dev/null 2>&1; echo $?
––– output –––
OK
––– input –––
rm -f /tmp/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; (stdbuf -oL searchd -c /tmp/manticore_idx.conf 2>&1 | tee /tmp/searchd.log | grep -i precach & disown); sleep 0.5; if timeout 10 grep -qm1 '\[BUDDY\] started' /tmp/searchd.log; then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /tmp/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLE idx_plain SETTINGS;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('abcdef') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('abcef') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('nonexistent') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('abc', 'idx_plain');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('ran', 'idx_plain');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('zzz', 'idx_plain');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('abcdef') OPTION fuzzy=0;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('abcd efgh') OPTION fuzzy=0;"
––– output –––
OK
test/clt-tests/buddy/test-fuzzy-autocomplete-http.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get update -y > /dev/null; echo $?
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
php -d memory_limit=2G ./test/clt-tests/scripts/load_names_attr.php --batch-size=100000 --concurrency=1 --docs=1000000 --start-id=1 --min-infix-len=2 > /dev/null; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name ORDER BY id ASC LIMIT 1000000 OPTION max_matches=1000000;" > /tmp/name_data.txt
––– output –––
OK
––– input –––
md5sum /tmp/name_data.txt
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW CREATE TABLE name;" | grep "min_infix_len='2'" | sed "s/.\(min_infix_len='2'\)./\1/"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM name;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "OPTIMIZE TABLE name OPTION sync=1;"
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"EBGRNA"}}]}},"options":{"fuzzy":true}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"ANT"}}]}},"options":{"fuzzy":true}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"tony"}}]}},"options":{"fuzzy":true}}' | jq -M
––– output –––
-     "total": 2200,
+     "total": 1813,
-         "_id": 1721,
+         "_id": 800363,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "JOE TONG",
+           "username": "TOBY BEAULIEU",
-         "_id": 5292,
+         "_id": 807095,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA VALENTIN",
+           "username": "TOBY HOFER",
-         "_id": 6962,
+         "_id": 807096,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA DAVIDSON",
+           "username": "TOBY DEMPSEY",
-         "_id": 8174,
+         "_id": 808820,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA CARRILLO",
+           "username": "TOBY RAYMOND",
-         "_id": 8700,
+         "_id": 808863,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA FLETCHER",
+           "username": "TOBY BATEMAN",
-         "_id": 11975,
+         "_id": 813761,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "CAMILLA TONG",
+           "username": "TOBY VANWINKLE",
-         "_id": 15241,
+         "_id": 818229,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA FENG",
+           "username": "TOBY BROCK",
-         "_id": 15914,
+         "_id": 825472,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA POINDEXTER",
+           "username": "TOBY LINDQUIST",
-         "_id": 16361,
+         "_id": 826251,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA HIGGS",
+           "username": "TOBY KAUFFMAN",
-         "_id": 17120,
+         "_id": 827886,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA ARCHER",
+           "username": "TOBY PITMAN",
-         "_id": 18205,
+         "_id": 832558,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "KIMBRA TONG",
+           "username": "TOBY KELLEY",
-         "_id": 19344,
+         "_id": 833689,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "JOSEF TONG",
+           "username": "TOBY HANDY",
-         "_id": 23070,
+         "_id": 834136,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA YUN",
+           "username": "TOBY HOPPE",
-         "_id": 25266,
+         "_id": 836413,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA OVIEDO",
+           "username": "TOBY STOVALL",
-         "_id": 27082,
+         "_id": 839075,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "ROZELLA TONG",
+           "username": "TOBY JEROME",
-         "_id": 31839,
+         "_id": 839512,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "MELANI TONG",
+           "username": "TOBY LEONARD",
-         "_id": 36735,
+         "_id": 841923,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "KANESHA TONG",
+           "username": "TOBY PARNELL",
-         "_id": 39741,
+         "_id": 842450,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "TONA GRAFF",
+           "username": "TOBY LOWE",
-         "_id": 41701,
+         "_id": 843217,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "KARISA TONG",
+           "username": "TOBY ROBISON",
-         "_id": 53822,
+         "_id": 846291,
-         "_score": 1531,
+         "_score": 1547,
-           "username": "ROSALINDA TONG",
+           "username": "TOBY BITTNER",
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"SMITH"}}]}}, "sort":[{"id":"desc"},{"username":"asc"}], "options":{"fuzzy":true}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"SMYTH"}}]}}, "sort":[{"id":"desc"},{"username":"asc"}], "options":{"fuzzy":true}}' | jq -M
––– output –––
-     "total": 1567,
+     "total": 773,
-         "_id": 999921,
+         "_id": 998829,
-           "username": "VICKI SOUTHARD",
+           "username": "EDYTHE VACA",
-         "_id": 998829,
+         "_id": 998500,
-           "username": "EDYTHE VACA",
+           "username": "SETH PHUNG",
-         "_id": 998500,
+         "_id": 996507,
-           "username": "SETH PHUNG",
+           "username": "SETH LYMAN",
-         "_id": 996507,
+         "_id": 995119,
-           "username": "SETH LYMAN",
+           "username": "EDYTHE JOHN",
-         "_id": 995690,
+         "_id": 993455,
-           "username": "ROBERTO SOUTHARD",
+           "username": "EDYTH ROSADO",
-         "_id": 995663,
+         "_id": 992097,
-           "username": "CHUNG SOUTH",
+           "username": "EDYTH RAGAN",
-         "_id": 995119,
+         "_id": 989954,
-           "username": "EDYTHE JOHN",
+           "username": "GWENN SMYTH",
-         "_id": 993455,
+         "_id": 988823,
-           "username": "EDYTH ROSADO",
+           "username": "SETH WHITTAKER",
-         "_id": 993278,
+         "_id": 988755,
-           "username": "LAKITA SOUTHARD",
+           "username": "SHERRON SMYTH",
-         "_id": 992097,
+         "_id": 988366,
-           "username": "EDYTH RAGAN",
+           "username": "LAVONIA SMYTH",
-         "_id": 989954,
+         "_id": 986580,
-           "username": "GWENN SMYTH",
+           "username": "DARNELL SMYTH",
-         "_id": 988936,
+         "_id": 986231,
-           "username": "LARISA SOUTHERLAND",
+           "username": "EDYTH BLODGETT",
-         "_id": 988823,
+         "_id": 985595,
-           "username": "SETH WHITTAKER",
+           "username": "SETH BACON",
-         "_id": 988759,
+         "_id": 982423,
-           "username": "LIEN SOUTHARD",
+           "username": "SETH CHATMAN",
-         "_id": 988755,
+         "_id": 981115,
-           "username": "SHERRON SMYTH",
+           "username": "KATIE SMYTH",
-         "_id": 988366,
+         "_id": 979541,
-           "username": "LAVONIA SMYTH",
+           "username": "EDYTHE CLAYTON",
-         "_id": 987165,
+         "_id": 979093,
-           "username": "TULA SOUTHARD",
+           "username": "SETH BURROUGHS",
-         "_id": 987136,
+         "_id": 978812,
-           "username": "LUANN SOUTHARD",
+           "username": "EDYTH GULLEY",
-         "_id": 986847,
+         "_id": 975994,
-           "username": "JORDAN SOUTHERN",
+           "username": "SETH PARHAM",
-         "_id": 986711,
+         "_id": 975841,
-           "username": "MARLIN SOUTHERN",
+           "username": "ALEIDA SMYTH",
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"layouts":"us,ru"}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"append":1}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"prepend":0}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"prepend":1,"append":1}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"fuzziness":1,"layouts":"","append":1,"prepend":1}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"fuzziness":2,"layouts":"us,ru","append":1,"prepend":1,"expansion_len":2}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"gr","options":{"fuzziness":1,"layouts":"ru","append":1,"prepend":1}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"fuzziness":1}}' | jq -M
––– output –––
OK

@github-actions

github-actions Bot commented Jun 5, 2025

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 42
❌ Failed: 3
⏳ Duration: 471s
👉 Check Action Results for commit 59a7ad3
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "embeddings_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-writing-binlog-during-parallel-queries.rec
––– input –––
set -b +m; sed -i '/data_dir = \/var\/lib\/manticore/a\    binlog_common = 1\n' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
for i in {1..10}; do rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi; mysql -P9306 -h0 -e "drop table if exists t1"; mysql -P9306 -h0 -e "drop table if exists t2"; for n in 1 2; do mysql -P9306 -h0 -e "create table t${n}"; done; sleep 1; for n in 1 2; do mysql -P9306 -h0 -e "insert into t${n} values(0)" &>/dev/null; done; wait 5>/dev/null 2>&1; echo $?; mysql -P9306 -h0 -e "show tables; select * from t1; select * from t2;"; mysql -P9306 -h0 -e "flush logs"; done
––– output –––
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id                  |
+ | id                 |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}

@donhardman donhardman force-pushed the feature/log-level-opt branch from 63a9f0a to 8d0884d Compare June 9, 2025 05:33
@github-actions

github-actions Bot commented Jun 9, 2025

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-64974e61-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@github-actions

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-c8a5fcd4-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

- Introduce ConfigManager to store config in Swoole Table for thread safety
- Replace putenv calls in CliArgsProcessor with ConfigManager::set
- Ensure consistent and centralized config management across workers
- Replace --debug, --debugv, --debugvv flags with --log-level option in configs and scripts
- Update README, cluster script, and tests to use --log-level for consistent logging control
- Simplify debug mode handling and improve clarity of logging configuration
- Assert non-null ConfigManager::$table before usage to satisfy PHPStan
- Add type checks for array structure in ConfigManager::get and getAll
- Fix logic in setDefaults to skip existing keys correctly
- Correct output format enum usage in EventHandler for Raw format
- Ensure ConfigManager::set uses non-null string for PLUGIN_DIR
- Fix string quoting in test assertion for consistency
@github-actions

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-6f0e70a5-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@donhardman donhardman force-pushed the feature/log-level-opt branch from e754ec5 to 9bb42cc Compare June 11, 2025 05:04
@github-actions

Copy link
Copy Markdown

clt

❌ CLT tests in test/clt-tests/core/ test/clt-tests/expected-errors/
✅ OK: 45
❌ Failed: 1
⏳ Duration: 483s
👉 Check Action Results for commit c8a5fcd
Failed tests:

test/clt-tests/core/test-manticore-version-in-telemetry.rec
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\    buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
export SEARCHD_ARGS="--logdebugv"
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd ${SEARCHD_ARGS:-} > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
-   "collector": "buddy",
-   "os_name": "Linux",
-   "os_release_name": "Ubuntu",
-   "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
-   "machine_type": "x86_64",
-   "machine_id": "#!/[0-9A-Za-z]+/!#",
-   "dockerized": "#!/\b(?:unknown|yes)\b/!#",
-   "official_docker": "#!/\b(?:no|yes)\b/!#",
-   "buddy_version": "%{VERSION}",
-   "manticore_version": "%{VERSION}",
-   "columnar_version": "%{VERSION}",
-   "secondary_version": "%{VERSION}",
-   "knn_version": "%{VERSION}",
-   "embeddings_version": "%{VERSION}",
-   "manticore_mode": "#!/[A-Za-z]+/!#",
-   "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_query_log_format": "#!/[A-Za-z]+/!#",
-   "manticore_max_allowed_packet": "%{NUMBER}",
-   "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
-   "manticore_distinct_precision_threshold": "%{NUMBER}"
- }

@github-actions

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-c2d0bd9d-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@github-actions

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-2775548b-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@github-actions

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-bd4e5f34-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@github-actions

Copy link
Copy Markdown

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-77a54920-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-feature_log-level-opt

These images contain the buddy code from this PR and can be used for testing.

@donhardman donhardman merged commit 75350a4 into main Jun 11, 2025
23 checks passed
@donhardman donhardman deleted the feature/log-level-opt branch June 11, 2025 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants