Skip to content

feat: add CREATE TABLE profile defaults for relevance#4608

Open
sanikolaev wants to merge 1 commit into
mainfrom
feat/create-table-profile-relevance
Open

feat: add CREATE TABLE profile defaults for relevance#4608
sanikolaev wants to merge 1 commit into
mainfrom
feat/create-table-profile-relevance

Conversation

@sanikolaev
Copy link
Copy Markdown
Collaborator

No description provided.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

Linux release test results

1 210 tests   1 159 ✅  20m 53s ⏱️
    1 suites     51 💤
    1 files        0 ❌

Results for commit a6501a9.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

Linux release MCL test results

1 209 tests   1 207 ✅  22m 6s ⏱️
    1 suites      2 💤
    1 files        0 ❌

Results for commit cb5324d.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

clt

❌ CLT tests in test/clt-tests/mysqldump/mysql/mcl-id-multi64 test/clt-tests/mysqldump/mysql/mcl-only-json test/clt-tests/mysqldump/mysql/mcl-only-multi test/clt-tests/mysqldump/mysql/mcl-only-multi64 test/clt-tests/mysqldump/mysql/no-mcl-json test/clt-tests/mysqldump/mysql/no-mcl-multi test/clt-tests/mysqldump/mysql/no-mcl-multi64 test/clt-tests/mysqldump/mysql/pq-table-mysqldump test/clt-tests/mysqldump/mysql/random-1m-dump-restore test/clt-tests/mysqldump/maria/mcl-all-json test/clt-tests/mysqldump/maria/mcl-all-multi
✅ OK: 13
❌ Failed: 1
⏳ Duration: 115s
👉 Check Action Results for commit 1a8af8f

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/mysqldump/mysql/random-1m-dump-restore.rec
––– 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 –––
./test/clt-tests/scripts/generate-records.sh 1000000 | mysql -h0 -P9306
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'show tables'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'select count(*) from t'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t order by id asc limit 20"
––– output –––
+------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
| id   | f                                                                                                  | a      | b                 | j                                            | m                                | s                                                                                                  | e    | d          | v          | fv                |
+------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
- |    1 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |    7 |                                                                                                    |      0 |          0.000000 | {"a":"\"","b":"\"","c":"\""}                 |                                  |                                                                                                    |    0 |          0 |            |                   |
- |    2 | '                                                                                                  |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |    8 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | 139090 |  912626112.000000 | {"a":[2140855600,1509344502],"b":1114121522} | 928973100,1245670504,1413286320  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |    1 |  538847777 | 1617199777 | 1258482176.000000 |
- |    3 | "                                                                                                  |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |    9 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          | 198907 |    8841452.000000 | {"a":[21374549,321067876],"b":333059460}     | 1274214921,1499886331,1977497504 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          |    1 |  782785729 | 954464984  | 696490880.000000  |
- |    4 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  | '                                                                                                  |    0 |          0 |            |                   |
+ |   10 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  91421 | 1982302976.000000 | {"a":[1039865880,1000430726],"b":900846479}  | 427690075,1407612830,1714474875  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    1 | 1649242630 | 308109277  | 27668260.000000   |
- |    5 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  | "                                                                                                  |    0 |          0 |            |                   |
+ |   11 | bbbbbbbbbbbbbbbbbb                                                                                 | 121311 |  121581552.000000 | {"a":[1820436984,1682929863],"b":1502056736} | 1581765396,1654516653,1925375373 | bbbbbbbbbbbbbbbbbb                                                                                 |    1 |  801766056 | 1127147375 | 107321288.000000  |
- |    6 |                                                                                                    |      0 |          0.000000 | {"a":"'","b":"","c":"'"}                     |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |   12 | bbbbbbbbbbbbbb                                                                                     | 191122 | 1229779968.000000 | {"a":[372959725,1851192973],"b":1660390017}  | 185371603,608681734,1167859658   | bbbbbbbbbbbbbb                                                                                     |    1 | 1213118476 | 2124217000 | 406914176.000000  |
- |    7 |                                                                                                    |      0 |          0.000000 | {"a":"\"","b":"\"","c":"\""}                 |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |   13 | bbbbbbbbbb                                                                                         |  95482 |  898241728.000000 | {"a":[272656722,1663615544],"b":1624186067}  | 116478871,552875970,1092517015   | bbbbbbbbbb                                                                                         |    0 | 1239989597 | 551802408  | 152522160.000000  |
- |    8 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | 139090 |  912626112.000000 | {"a":[2140855600,1509344502],"b":1114121522} | 928973100,1245670504,1413286320  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |    1 |  538847777 | 1617199777 | 1258482176.000000 |
+ |   14 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |  68119 |  661707200.000000 | {"a":[94304443,2086306634],"b":543066914}    | 578274552,1237733450,2002653905  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |    1 | 1710306734 | 167580149  | 2017031680.000000 |
- |    9 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          | 198907 |    8841452.000000 | {"a":[21374549,321067876],"b":333059460}     | 1274214921,1499886331,1977497504 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          |    1 |  782785729 | 954464984  | 696490880.000000  |
+ |   15 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  32982 | 1377983488.000000 | {"a":[496823143,416865286],"b":91350609}     | 1599607162,1936289567,2053679064 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    0 | 1518500442 | 1228024866 | 1438869760.000000 |
- |   10 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  91421 | 1982302976.000000 | {"a":[1039865880,1000430726],"b":900846479}  | 427690075,1407612830,1714474875  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    1 | 1649242630 | 308109277  | 27668260.000000   |
+ |   16 | bbbb                                                                                               | 127656 |  144601936.000000 | {"a":[407695664,2063437019],"b":917328502}   | 645985148,1065653647,1744659471  | bbbb                                                                                               |    0 |  314320885 | 1525544836 | 219136976.000000  |
- |   11 | bbbbbbbbbbbbbbbbbb                                                                                 | 121311 |  121581552.000000 | {"a":[1820436984,1682929863],"b":1502056736} | 1581765396,1654516653,1925375373 | bbbbbbbbbbbbbbbbbb                                                                                 |    1 |  801766056 | 1127147375 | 107321288.000000  |
+ |   17 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |  42017 | 1793538432.000000 | {"a":[813865368,1069542460],"b":1420434902}  | 1064502376,1165315561,1267507259 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |    1 |  284197670 | 454491894  | 202294912.000000  |
- |   12 | bbbbbbbbbbbbbb                                                                                     | 191122 | 1229779968.000000 | {"a":[372959725,1851192973],"b":1660390017}  | 185371603,608681734,1167859658   | bbbbbbbbbbbbbb                                                                                     |    1 | 1213118476 | 2124217000 | 406914176.000000  |
+ |   18 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              | 187471 | 1981036928.000000 | {"a":[364450401,1780265560],"b":754576639}   | 107468665,411366113,991124073    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              |    0 |  245327580 | 1944713760 | 1201735552.000000 |
- |   13 | bbbbbbbbbb                                                                                         |  95482 |  898241728.000000 | {"a":[272656722,1663615544],"b":1624186067}  | 116478871,552875970,1092517015   | bbbbbbbbbb                                                                                         |    0 | 1239989597 | 551802408  | 152522160.000000  |
+ |   19 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |  32712 | 1558907136.000000 | {"a":[1912418574,1670100966],"b":239810528}  | 24970160,1819190943,2021816520   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |    1 | 1341382959 | 283037034  | 1458644736.000000 |
- |   14 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |  68119 |  661707200.000000 | {"a":[94304443,2086306634],"b":543066914}    | 578274552,1237733450,2002653905  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |    1 | 1710306734 | 167580149  | 2017031680.000000 |
+ |   20 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |  48474 |   62408120.000000 | {"a":[1200217209,500666982],"b":2116623760}  | 328478084,504655829,1689585645   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |    1 |  920211881 | 229395197  | 1011787776.000000 |
- |   15 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  32982 | 1377983488.000000 | {"a":[496823143,416865286],"b":91350609}     | 1599607162,1936289567,2053679064 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    0 | 1518500442 | 1228024866 | 1438869760.000000 |
+ |   21 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                      |  73513 |  303434976.000000 | {"a":[1896597632,617357533],"b":426659202}   | 1756115916,2085689322,2094009064 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                      |    1 |  635611892 | 49226090   | 2048176896.000000 |
- |   16 | bbbb                                                                                               | 127656 |  144601936.000000 | {"a":[407695664,2063437019],"b":917328502}   | 645985148,1065653647,1744659471  | bbbb                                                                                               |    0 |  314320885 | 1525544836 | 219136976.000000  |
+ |   22 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                 | 183417 |  409343456.000000 | {"a":[2067015508,386772979],"b":771917505}   | 479023156,814388870,1426741374   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                 |    0 |  262452108 | 1625607110 | 2136056832.000000 |
- |   17 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |  42017 | 1793538432.000000 | {"a":[813865368,1069542460],"b":1420434902}  | 1064502376,1165315561,1267507259 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |    1 |  284197670 | 454491894  | 202294912.000000  |
+ |   23 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb            | 189770 | 2015627264.000000 | {"a":[1008784233,1060446236],"b":1346785576} | 41530432,1122171594,1946302254   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb            |    1 | 1659778950 | 1695762450 | 1899763200.000000 |
- |   18 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              | 187471 | 1981036928.000000 | {"a":[364450401,1780265560],"b":754576639}   | 107468665,411366113,991124073    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              |    0 |  245327580 | 1944713760 | 1201735552.000000 |
+ |   24 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                    | 195315 | 1930263552.000000 | {"a":[1909437481,1372601335],"b":1730043281} | 471934518,529627550,1248685796   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                    |    0 | 1085497807 | 462381709  | 1286633472.000000 |
- |   19 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |  32712 | 1558907136.000000 | {"a":[1912418574,1670100966],"b":239810528}  | 24970160,1819190943,2021816520   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |    1 | 1341382959 | 283037034  | 1458644736.000000 |
+ |   25 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb       | 149421 | 1482707968.000000 | {"a":[366358004,1989852354],"b":933978474}   | 624130189,1827235823,2040641084  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb       |    0 |  712631609 | 1056904730 | 224204880.000000  |
- |   20 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |  48474 |   62408120.000000 | {"a":[1200217209,500666982],"b":2116623760}  | 328478084,504655829,1689585645   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |    1 |  920211881 | 229395197  | 1011787776.000000 |
+ |   26 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                         | 199699 | 1979034752.000000 | {"a":[139259276,1879105891],"b":1472314948}  | 353482697,663275185,1574300218   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                         |    0 | 1195294149 | 994209483  | 2033352448.000000 |
+------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
––– input –––
mysql -h0 -P9306 -e "select * from t where s = 'Psm' order by id asc limit 20"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where a = 18530 order by id asc limit 20"
––– output –––
OK
––– input –––
mysqldump -h0 -P9306 Manticore 2>/dev/null 1> /tmp/all-databases.sql
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table t"
––– output –––
OK
––– input –––
mysql -h0 -P9306 < /tmp/all-databases.sql
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'show tables'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'select count(*) from t'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t order by id asc limit 20"
––– output –––
- +------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
+ +-------+------------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
- | id   | f                                                                                                  | a      | b                 | j                                            | m                                | s                                                                                                  | e    | d          | v          | fv                |
+ | id    | f                                                                                                    | a      | b                 | j                                            | m                                | s                                                                                                    | e    | d          | v          | fv                |
- +------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
+ +-------+------------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
- |    1 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56219 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                        |  93655 |  800898240.000000 | {"a":[1631881286,374864691],"b":986327763}   | 11201247,696740734,1312244462    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                        |    1 |  640474123 | 1647437712 | 1656526464.000000 |
- |    2 | '                                                                                                  |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56220 | bbbbbbbbbbbbbbbbbbbbbbbbb                                                                            | 147750 |  436171648.000000 | {"a":[790557347,690960819],"b":96353068}     | 1087682002,1892823267,1972936566 | bbbbbbbbbbbbbbbbbbbbbbbbb                                                                            |    0 | 1327180766 | 504493363  | 1277290240.000000 |
- |    3 | "                                                                                                  |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56221 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                             | 141196 |  692805888.000000 | {"a":[1421901586,1253683462],"b":468602744}  | 65683589,444636860,1355492270    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                             |    0 | 1402485840 | 397838984  | 430782528.000000  |
- |    4 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  | '                                                                                                  |    0 |          0 |            |                   |
+ | 56222 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |  52540 |  892005568.000000 | {"a":[2119794513,303853005],"b":1256101545}  | 707090583,768068076,1091692275   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |    1 |  421783452 | 1552699145 | 849662464.000000  |
- |    5 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  | "                                                                                                  |    0 |          0 |            |                   |
+ | 56223 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |  66597 |  259156688.000000 | {"a":[1054975214,744611820],"b":1201272197}  | 454462167,711453698,1417455615   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |    1 | 1047829192 | 2119694903 | 36132480.000000   |
- |    6 |                                                                                                    |      0 |          0.000000 | {"a":"'","b":"","c":"'"}                     |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56224 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                |  47303 | 1932548736.000000 | {"a":[274886127,673301381],"b":1935803973}   | 953804337,1938356620,1989179298  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                |    0 |  861185312 | 1725804612 | 1410452736.000000 |
- |    7 |                                                                                                    |      0 |          0.000000 | {"a":"\"","b":"\"","c":"\""}                 |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56225 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                  |  49581 | 1285609344.000000 | {"a":[695770762,1566416409],"b":1164020988}  | 1371340017,1724858473,1855605725 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                  |    0 | 1684658266 | 1797508523 | 1775831552.000000 |
- |    8 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | 139090 |  912626112.000000 | {"a":[2140855600,1509344502],"b":1114121522} | 928973100,1245670504,1413286320  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |    1 |  538847777 | 1617199777 | 1258482176.000000 |
+ | 56226 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                | 104307 | 1846498176.000000 | {"a":[1773432652,2074254432],"b":605536622}  | 15745540,134719035,1415204041    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                |    0 | 1392046892 | 532029677  | 794976064.000000  |
- |    9 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          | 198907 |    8841452.000000 | {"a":[21374549,321067876],"b":333059460}     | 1274214921,1499886331,1977497504 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          |    1 |  782785729 | 954464984  | 696490880.000000  |
+ | 56227 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                      |  54488 | 1921066880.000000 | {"a":[884733081,640727381],"b":990436578}    | 568729721,690637092,851401667    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                      |    0 |  346295182 | 646035071  | 1537303296.000000 |
- |   10 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  91421 | 1982302976.000000 | {"a":[1039865880,1000430726],"b":900846479}  | 427690075,1407612830,1714474875  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    1 | 1649242630 | 308109277  | 27668260.000000   |
+ | 56228 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                            |  64812 | 1058090944.000000 | {"a":[1784463061,1639118911],"b":190449516}  | 484266246,769896042,1752957201   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                            |    0 |  982797806 | 1860978743 | 2042795136.000000 |
- |   11 | bbbbbbbbbbbbbbbbbb                                                                                 | 121311 |  121581552.000000 | {"a":[1820436984,1682929863],"b":1502056736} | 1581765396,1654516653,1925375373 | bbbbbbbbbbbbbbbbbb                                                                                 |    1 |  801766056 | 1127147375 | 107321288.000000  |
+ | 56229 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                              | 158582 | 1684128768.000000 | {"a":[452189593,435507540],"b":1009274547}   | 16861867,680071562,1062136131    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                              |    1 | 1370850084 | 611827098  | 195584656.000000  |
- |   12 | bbbbbbbbbbbbbb                                                                                     | 191122 | 1229779968.000000 | {"a":[372959725,1851192973],"b":1660390017}  | 185371603,608681734,1167859658   | bbbbbbbbbbbbbb                                                                                     |    1 | 1213118476 | 2124217000 | 406914176.000000  |
+ | 56230 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                            |  24124 |  211950016.000000 | {"a":[2034465581,1679907267],"b":1732256676} | 882598518,1995256724,2139038863  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                            |    1 |  372552044 | 2038008958 | 510821536.000000  |
- |   13 | bbbbbbbbbb                                                                                         |  95482 |  898241728.000000 | {"a":[272656722,1663615544],"b":1624186067}  | 116478871,552875970,1092517015   | bbbbbbbbbb                                                                                         |    0 | 1239989597 | 551802408  | 152522160.000000  |
+ | 56231 | bbbbbbbbbbbbbbbbbbbbbbbbbb                                                                           | 204239 | 1159390848.000000 | {"a":[1564222922,1958558847],"b":249068076}  | 739172425,744728788,1439056496   | bbbbbbbbbbbbbbbbbbbbbbbbbb                                                                           |    1 |  121565147 | 656394830  | 64818920.000000   |
- |   14 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |  68119 |  661707200.000000 | {"a":[94304443,2086306634],"b":543066914}    | 578274552,1237733450,2002653905  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |    1 | 1710306734 | 167580149  | 2017031680.000000 |
+ | 56232 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                               | 185062 | 1375278336.000000 | {"a":[1433639608,1579073866],"b":1391528676} | 49249997,379622777,1828802398    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                               |    0 |  451839073 | 1897974897 | 1689733120.000000 |
- |   15 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  32982 | 1377983488.000000 | {"a":[496823143,416865286],"b":91350609}     | 1599607162,1936289567,2053679064 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    0 | 1518500442 | 1228024866 | 1438869760.000000 |
+ | 56233 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                   |  40378 |  498610560.000000 | {"a":[533665197,1515259720],"b":1665568144}  | 1195426310,1356861133,2128142970 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                   |    1 |   45176881 | 1495530757 | 294543040.000000  |
- |   16 | bbbb                                                                                               | 127656 |  144601936.000000 | {"a":[407695664,2063437019],"b":917328502}   | 645985148,1065653647,1744659471  | bbbb                                                                                               |    0 |  314320885 | 1525544836 | 219136976.000000  |
+ | 56234 | bbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                         |  27639 | 1129708160.000000 | {"a":[62453746,1218320675],"b":1323165236}   | 1148759756,2009409934,2080734367 | bbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                         |    0 | 1053370899 | 1046006840 | 209623760.000000  |
- |   17 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |  42017 | 1793538432.000000 | {"a":[813865368,1069542460],"b":1420434902}  | 1064502376,1165315561,1267507259 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |    1 |  284197670 | 454491894  | 202294912.000000  |
+ | 56235 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                         |  45292 | 1916640000.000000 | {"a":[583099810,2058521496],"b":393239787}   | 698580756,1027064948,1147258887  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                         |    1 |  220163269 | 463539071  | 2010025600.000000 |
- |   18 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              | 187471 | 1981036928.000000 | {"a":[364450401,1780265560],"b":754576639}   | 107468665,411366113,991124073    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              |    0 |  245327580 | 1944713760 | 1201735552.000000 |
+ | 56236 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                 | 163616 |  415191872.000000 | {"a":[756944370,209454218],"b":510067997}    | 85646432,153596036,480313078     | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                 |    1 | 1384068973 | 1830932632 | 1792026112.000000 |
- |   19 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |  32712 | 1558907136.000000 | {"a":[1912418574,1670100966],"b":239810528}  | 24970160,1819190943,2021816520   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |    1 | 1341382959 | 283037034  | 1458644736.000000 |
+ | 56237 | bbbbbbbbbbbbbbbb                                                                                     | 211542 | 1091019648.000000 | {"a":[684028396,1117708869],"b":1505688645}  | 168163011,261573687,537704381    | bbbbbbbbbbbbbbbb                                                                                     |    1 |  510077746 | 1774686943 | 2045815424.000000 |
- |   20 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |  48474 |   62408120.000000 | {"a":[1200217209,500666982],"b":2116623760}  | 328478084,504655829,1689585645   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |    1 |  920211881 | 229395197  | 1011787776.000000 |
+ | 56238 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                 | 132563 | 1320136832.000000 | {"a":[1871471860,1702280057],"b":926869399}  | 63560523,533714849,706707427     | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                 |    0 | 1559966695 | 1604994968 | 2026976640.000000 |
- +------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
+ +-------+------------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
––– input –––
mysql -h0 -P9306 -e "select * from t where s = 'Psm' order by id asc limit 20"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where a = 18530 order by id asc limit 20"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

clt

❌ CLT tests in test/clt-tests/buddy-plugins/test-facet-with-option-fuzzy test/clt-tests/buddy-plugins/test-fuzzy-autocomplete-http test/clt-tests/buddy-plugins/test-fuzzy-search-dist-table test/clt-tests/buddy-plugins/test-fuzzy-search test/clt-tests/buddy-plugins/test-fuzzy-trailing-semicolon test/clt-tests/buddy-plugins/test-inconsistent-comunication-with-buddy test/clt-tests/buddy-plugins/test-prometheus-exporter test/clt-tests/buddy-plugins/test-skipping-plugin-loading test/clt-tests/bugs/1335-test-issue test/clt-tests/bugs/3037-secondary-indexes-bug test/clt-tests/bugs/3247-rt-save-disk-chunk-race
✅ OK: 11
❌ Failed: 1
⏳ Duration: 223s
👉 Check Action Results for commit 1a8af8f

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/bugs/3037-secondary-indexes-bug.rec
––– 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 –––
manticore-load --quiet --json --port=9306 --init="CREATE TABLE task (id BIGINT, status UINT, enddatetime TIMESTAMP, isoverdue BOOL)" --load="INSERT INTO task (id, status, enddatetime, isoverdue) VALUES (<increment>, <int/1/8>, <int/1577836800/1672531200>, 0)" --batch-size=1000 --threads=4 --total=10000 > /dev/null; echo $?
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "FLUSH RAMCHUNK task;"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "OPTIMIZE TABLE task OPTION cutoff=1;"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "SHOW TABLE task STATUS LIKE 'disk_chunks';"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "DESCRIBE task;"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "SET GLOBAL secondary_indexes=1; select id,status from task where  isOverdue = 0 and status not in (1,4,5,6,7,8) ORDER BY id ASC LIMIT 10 /*+ SecondaryIndex(status) */; show meta;"
––– output –––
+------+--------+
| id   | status |
+------+--------+
|    5 |      2 |
|    7 |      3 |
|   10 |      3 |
|   14 |      2 |
|   17 |      2 |
|   20 |      3 |
|   33 |      2 |
|   36 |      2 |
|   37 |      2 |
|   38 |      2 |
+------+--------+
+----------------+------------------------------+
| Variable_name  | Value                        |
+----------------+------------------------------+
| total          | %{NUMBER}                           |
- | total_found    | %{NUMBER}                         |
+ | total_found    | 20                           |
- | total_relation | eq                           |
+ | total_relation | gte                          |
| time           | %{NUMBER}.%{NUMBER}                        |
| index          | status:SecondaryIndex (100%) |
+----------------+------------------------------+
––– input –––
mysql -P9306 -h0 -e "SET GLOBAL secondary_indexes=0; select id,status from task where  isOverdue = 0 and status not in (1,4,5,6,7,8) ORDER BY id ASC LIMIT 10 /*+ SecondaryIndex(status) */; show meta;"
––– output –––
+------+--------+
| id   | status |
+------+--------+
|    5 |      2 |
|    7 |      3 |
|   10 |      3 |
|   14 |      2 |
|   17 |      2 |
|   20 |      3 |
|   33 |      2 |
|   36 |      2 |
|   37 |      2 |
|   38 |      2 |
+------+--------+
+----------------+------------------------------------------------------------------------------------------------------------------------------+
| Variable_name  | Value                                                                                                                        |
+----------------+------------------------------------------------------------------------------------------------------------------------------+
| warning        | table task: hint error: secondary indexes are disabled; hint error: requested hint type not supported for attribute 'status' |
| total          | %{NUMBER}                                                                                                                           |
- | total_found    | %{NUMBER}                                                                                                                         |
+ | total_found    | 40                                                                                                                           |
- | total_relation | eq                                                                                                                           |
+ | total_relation | gte                                                                                                                          |
| time           | %{NUMBER}.%{NUMBER}                                                                                                                        |
+----------------+------------------------------------------------------------------------------------------------------------------------------+

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

clt

❌ CLT tests in test/clt-tests/core/test-expansion-phrase-limit test/clt-tests/core/test-external-files-handling-ramchunk test/clt-tests/core/test-external-files-handling test/clt-tests/core/test-freeze-unfreeze-update test/clt-tests/core/test-import-table test/clt-tests/core/test-truncate-distributed-table test/clt-tests/core/test-unfreeze-defrosts test/clt-tests/core/test-warning-wordlist-size-mismatch test/clt-tests/data-manipulation/test-alter-rename-nightly test/clt-tests/data-manipulation/test-lock-tables-mysqldump-compat test/clt-tests/data-manipulation/test-lock-unlock-tables
✅ OK: 11
❌ Failed: 1
⏳ Duration: 221s
👉 Check Action Results for commit 1a8af8f

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/core/test-freeze-unfreeze-update.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd $SEARCHD_FLAGS > /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 –––
manticore-load --quiet --json --init="CREATE TABLE test (id bigint, usertest text stored indexed, category string, age int, salary float, discount float, is_active bool, last_login timestamp, product_codes multi, large_values multi64, additional_info json, location_vector float_vector)" --load="INSERT INTO test (id, usertest, category, age, salary, discount, is_active, last_login, product_codes, large_values, additional_info, location_vector) VALUES (<increment>, '<text/5/20>', '<text/5/10>', <int/1/100>, <float/1.0/100.0>, <float/0.0/10.0>, <int/0/1>, <int/1609459200/1704067200>, (<array/1/10/1/100>), (<array/1/10/-100000/100000>), '{\"key\":\"value\"}', (<array/4/4/1.0/10.0>))" --batch-size=10000 --threads=4 --total=1000000
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test ORDER BY id ASC LIMIT 100000 OPTION max_matches=100000;" > /tmp/test_data.txt
––– output –––
OK
––– input –––
md5sum /tmp/test_data.txt
––– output –––
- 299561871af20e6b4ae29692f2fbced8  /tmp/test_data.txt
+ 6ad46ce82f4924cf50c95fba41ade855  /tmp/test_data.txt
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -P9306 -NE -h0 -e "SELECT COUNT(*) FROM test"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "DESCRIBE test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test ORDER BY id ASC LIMIT 10;"
––– output –––
- +------+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------+------+------------+------------+-----------+------------+-------------------------+-------------------------------------------------------------------+-----------------+---------------------------------------+
+ +-------+-----------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------+------+-----------+------------+-----------+------------+--------------------------------+------------------------------------------------------------------+-----------------+--------------------------------------+
- | id   | usertest                                                                                                                                          | category                                                                   | age  | salary     | discount   | is_active | last_login | product_codes           | large_values                                                      | additional_info | location_vector                       |
+ | id    | usertest                                                                                                              | category                                                                        | age  | salary    | discount   | is_active | last_login | product_codes                  | large_values                                                     | additional_info | location_vector                      |
- +------+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------+------+------------+------------+-----------+------------+-------------------------+-------------------------------------------------------------------+-----------------+---------------------------------------+
+ +-------+-----------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------+------+-----------+------------+-----------+------------+--------------------------------+------------------------------------------------------------------+-----------------+--------------------------------------+
- |    1 | At understood gave always east fake, dull internationally sent. At cold; hot! it dark low today.                                                  | Gave hardly been vaguely 1000 this.                                        |    7 |   2.365162 |   5.817693 |         0 | 1639945392 | 55                      | -94236,-72461,-60893,-8400,86868,88029                            | {"key":"value"} | 8.000000,7.000000,5.000000,7.000000   |
+ | 10001 | Built? dry, 5 sometimes light tall rose. His passively sweet spring? old 20 asked yearly.                             | Empty knew knew tired; now specifically.                                        |   43 | 35.435452 |   4.136735 |         0 | 1622803317 | 22,29,59,79,100                | -87995,-87088,-61805,-60693,-34461,-27759,-17809,313,65612,78666 | {"key":"value"} | 3.000000,1.000000,2.000000,7.000000  |
- |    2 | Seen feel economically beautiful legally sick poor incorrectly.                                                                                   | Seen privately understood short universally! yearly.                       |   90 |  16.873980 |   8.455115 |         1 | 1680222744 | 4,15,29,37,83,90,91,92  | -23549,-3549,43790,91332                                          | {"key":"value"} | 2.000000,8.000000,10.000000,5.000000  |
+ | 10002 | Weekly but carelessly, she shallow call! know correctly call rise angry.                                              | Thought 2 true sad from they find should! clean 1.                              |   59 | 41.827827 | 7.82954645 |         1 | 1647453616 | 18,43,44,72,77,79              | -34715,6783,96556                                                | {"key":"value"} | 9.000000,3.000000,10.000000,9.000000 |
- |    3 | Drove young? lost probably came knew felt has hot.                                                                                                | Positively wet quickly quietly need tell poor spring evening.              |   97 |  25.303282 |   0.551904 |         0 | 1612008809 | 1,20,36,40,56,71,83     | -98459,-87441,-74083,-49707,-38090,-21342,57513,79216,90976,92580 | {"key":"value"} | 1.000000,10.000000,6.000000,3.000000  |
+ | 10003 | Modern historically historically, rich surely spiritually? shallow.                                                   | And take simply ancient, gave wild! always.                                     |    8 | 41.224731 |   7.116729 |         1 | 1651172323 | 9,35,82,87,98                  | -66970,-44080,5496,76852,89819                                   | {"key":"value"} | 2.000000,9.000000,6.000000,6.000000  |
- |    4 | Sick; kept angry politically closed understand regularly became? fell. Brought.                                                                   | The. Thirsty do poor dead; lazy let.                                       |   23 |  95.348030 | 0.70701975 |         0 | 1628499508 | 20,60,69,73,95,96       | 26497,73063,73768,87840                                           | {"key":"value"} | 5.000000,3.000000,1.000000,3.000000   |
+ | 10004 | Dawn often salty stand stand see? clearly.                                                                            | Heard beautiful night closed. Lead! lead.                                       |   21 | 36.946049 | 0.29941809 |         1 | 1647951396 | 24,57,70                       | -71623,-31454,-20497,-4109,3306,25526                            | {"key":"value"} | 10.000000,6.000000,7.000000,4.000000 |
- |    5 | Hard get wrote excited deep suddenly foolish they unsuccessfully spoke might does, front! stood south.                                            | Came scientifically sad afraid, meet positively! were spent.               |   68 |  51.716961 | 7.22804546 |         1 | 1640385308 | 13,43,62,65             | -14867,57637                                                      | {"key":"value"} | 5.000000,9.000000,5.000000,4.000000   |
+ | 10005 | Light sell wide afraid from always her fell harshly! unfortunately come publicly from, set; simply scientifically as. | Happy hold! 5 asked obviously it unsuccessfully tame.                           |   39 | 40.198742 | 0.15917861 |         0 | 1627080828 | 3,34,48,49,57,85,93,95         | -78399,-23131,68362                                              | {"key":"value"} | 4.000000,5.000000,1.000000,1.000000  |
- |    6 | Angry! quietly lazy educationally professionally lazy; stale the felt dark get; low dusk instantly front, shallow.                                | Hot full monthly cut may calm be sharp cut serious.                        |   43 |  82.251091 |   9.727920 |         0 | 1632898091 | 79,94,95,100            | -95455,-50953,-46814,-21679,-13767,-13120,23684,27025,33011,78959 | {"key":"value"} | 2.000000,2.000000,1.000000,3.000000   |
+ | 10006 | Speak say successfully. Hardly full.                                                                                  | Infrequently expectedly! could but became? healthy; has irregularly 100, small. |   76 | 50.623810 |   2.922558 |         1 | 1670979236 | 6,15,22,49,62,71,80,96,100     | -70410,2078                                                      | {"key":"value"} | 2.000000,4.000000,8.000000,7.000000  |
- |    7 | 100, 50 needed specifically serious do bring below began! rich.                                                                                   | Did unhappily let alive softly individually correctly big informally work. |   77 | 5.13097858 | 0.77633089 |         0 | 1702796380 | 1,11,53,72              | -85222,-77797,-74784,-66549,-38110,-15259,4122,21232,39248,81898  | {"key":"value"} | 4.000000,10.000000,8.000000,7.000000  |
+ | 10007 | Brought might gradually try kept subtly! frequently. Angry late.                                                      | Does politically do cold should dull far maybe specifically; harshly.           |   89 | 81.925232 |   3.185758 |         1 | 1652837165 | 22,39,40,51,67,68,82,84,85,100 | -80699,-80160,-56272,-1867,11505,29536,35332,59102,84749         | {"key":"value"} | 10.000000,9.000000,1.000000,2.000000 |
- |    8 | She; constantly send down spiritually? maybe happy feel educationally! from draw, internationally; made must emotionally far, usually light west. | Kept big specifically weak held.                                           |   17 |  47.042759 |   6.636477 |         1 | 1680031415 | 13,37,38,39,41,57,80,89 | -88459,-28425,-7018,-3494,58953,86226                             | {"key":"value"} | 7.000000,10.000000,1.000000,10.000000 |
+ | 10008 | Ask worked soon for brought angry true read, work healthy.                                                            | Far outside gradually hardly rough.                                             |   47 | 56.208263 |   9.729411 |         1 | 1621949607 | 12                             | -95913,-93991,-53112,-11494,27438,37642,52488                    | {"key":"value"} | 8.000000,5.000000,8.000000,7.000000  |
- |    9 | Generally clean! ask has unfortunately closed afraid! spoke scientifically rich lay.                                                              | Up thirsty. Commonly wrote specifically healthy wrong culturally.          |   22 |  30.752516 |   2.306853 |         0 | 1613101874 | 2,79,81                 | -87459,-77385,-52673,-29092,-18124,8442,93363                     | {"key":"value"} | 10.000000,4.000000,6.000000,10.000000 |
+ | 10009 | Old needed. Incorrectly right sad? positively back nightly slow serious.                                              | High with politically closed; made lay.                                         |   19 | 72.773735 | 0.64810151 |         0 | 1635540709 | 19,37,41,80,85                 | -50897,51622,57703,61589,96712                                   | {"key":"value"} | 3.000000,5.000000,10.000000,7.000000 |
- |   10 | Real late suddenly! from legally certainly you try outside mentally now hurt 4? often? brave dull hourly lose. Spend autumn.                      | Happily unusually hold clever that! sometimes illegally.                   |   20 |  17.930206 |   4.031827 |         1 | 1693258069 | 50,58,67,69             | -69242,-30230,-10666,38335,45013,71495,87473                      | {"key":"value"} | 7.000000,6.000000,3.000000,8.000000   |
+ | 10010 | Outside. Hard hungry alive new happy wrong never on unusually, later globally? sweet.                                 | Should; sometimes fell! open? definitely high. Thin take? hurt nightly.         |    8 |  3.447419 | 4.78448153 |         1 | 1647130986 | 7,8,32,100                     | -12776,46696                                                     | {"key":"value"} | 2.000000,5.000000,8.000000,6.000000  |
- +------+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------+------+------------+------------+-----------+------------+-------------------------+-------------------------------------------------------------------+-----------------+---------------------------------------+
+ +-------+-----------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------+------+-----------+------------+-----------+------------+--------------------------------+------------------------------------------------------------------+-----------------+--------------------------------------+
––– input –––
mysql -h0 -P9206 -e "
FLUSH RAMCHUNK test;
FREEZE test;
$(for n in $(seq 1 100); do
    echo "UPDATE test SET category='updated' WHERE id=$n;"
done)
" > /dev/null 2>&1 &
pid=$!
wait $pid
grep -i "error" /var/log/manticore/searchd.log
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test ORDER BY id ASC LIMIT 5;"
––– output –––
- +------+--------------------------------------------------------------------------------------------------------+---------------------------------------------------------------+------+-----------+------------+-----------+------------+------------------------+-------------------------------------------------------------------+-----------------+--------------------------------------+
+ +-------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------+-----------+------------+-----------+------------+------------------------+------------------------------------------------------------------+-----------------+--------------------------------------+
- | id   | usertest                                                                                               | category                                                      | age  | salary    | discount   | is_active | last_login | product_codes          | large_values                                                      | additional_info | location_vector                      |
+ | id    | usertest                                                                                                              | category                                              | age  | salary    | discount   | is_active | last_login | product_codes          | large_values                                                     | additional_info | location_vector                      |
- +------+--------------------------------------------------------------------------------------------------------+---------------------------------------------------------------+------+-----------+------------+-----------+------------+------------------------+-------------------------------------------------------------------+-----------------+--------------------------------------+
+ +-------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------+-----------+------------+-----------+------------+------------------------+------------------------------------------------------------------+-----------------+--------------------------------------+
- |    1 | At understood gave always east fake, dull internationally sent. At cold; hot! it dark low today.       | Gave hardly been vaguely 1000 this.                           |    7 |  2.365162 |   5.817693 |         0 | 1639945392 | 55                     | -94236,-72461,-60893,-8400,86868,88029                            | {"key":"value"} | 8.000000,7.000000,5.000000,7.000000  |
+ | 10001 | Built? dry, 5 sometimes light tall rose. His passively sweet spring? old 20 asked yearly.                             | Empty knew knew tired; now specifically.              |   43 | 35.435452 |   4.136735 |         0 | 1622803317 | 22,29,59,79,100        | -87995,-87088,-61805,-60693,-34461,-27759,-17809,313,65612,78666 | {"key":"value"} | 3.000000,1.000000,2.000000,7.000000  |
- |    2 | Seen feel economically beautiful legally sick poor incorrectly.                                        | Seen privately understood short universally! yearly.          |   90 | 16.873980 |   8.455115 |         1 | 1680222744 | 4,15,29,37,83,90,91,92 | -23549,-3549,43790,91332                                          | {"key":"value"} | 2.000000,8.000000,10.000000,5.000000 |
+ | 10002 | Weekly but carelessly, she shallow call! know correctly call rise angry.                                              | Thought 2 true sad from they find should! clean 1.    |   59 | 41.827827 | 7.82954645 |         1 | 1647453616 | 18,43,44,72,77,79      | -34715,6783,96556                                                | {"key":"value"} | 9.000000,3.000000,10.000000,9.000000 |
- |    3 | Drove young? lost probably came knew felt has hot.                                                     | Positively wet quickly quietly need tell poor spring evening. |   97 | 25.303282 |   0.551904 |         0 | 1612008809 | 1,20,36,40,56,71,83    | -98459,-87441,-74083,-49707,-38090,-21342,57513,79216,90976,92580 | {"key":"value"} | 1.000000,10.000000,6.000000,3.000000 |
+ | 10003 | Modern historically historically, rich surely spiritually? shallow.                                                   | And take simply ancient, gave wild! always.           |    8 | 41.224731 |   7.116729 |         1 | 1651172323 | 9,35,82,87,98          | -66970,-44080,5496,76852,89819                                   | {"key":"value"} | 2.000000,9.000000,6.000000,6.000000  |
- |    4 | Sick; kept angry politically closed understand regularly became? fell. Brought.                        | The. Thirsty do poor dead; lazy let.                          |   23 | 95.348030 | 0.70701975 |         0 | 1628499508 | 20,60,69,73,95,96      | 26497,73063,73768,87840                                           | {"key":"value"} | 5.000000,3.000000,1.000000,3.000000  |
+ | 10004 | Dawn often salty stand stand see? clearly.                                                                            | Heard beautiful night closed. Lead! lead.             |   21 | 36.946049 | 0.29941809 |         1 | 1647951396 | 24,57,70               | -71623,-31454,-20497,-4109,3306,25526                            | {"key":"value"} | 10.000000,6.000000,7.000000,4.000000 |
- |    5 | Hard get wrote excited deep suddenly foolish they unsuccessfully spoke might does, front! stood south. | Came scientifically sad afraid, meet positively! were spent.  |   68 | 51.716961 | 7.22804546 |         1 | 1640385308 | 13,43,62,65            | -14867,57637                                                      | {"key":"value"} | 5.000000,9.000000,5.000000,4.000000  |
+ | 10005 | Light sell wide afraid from always her fell harshly! unfortunately come publicly from, set; simply scientifically as. | Happy hold! 5 asked obviously it unsuccessfully tame. |   39 | 40.198742 | 0.15917861 |         0 | 1627080828 | 3,34,48,49,57,85,93,95 | -78399,-23131,68362                                              | {"key":"value"} | 4.000000,5.000000,1.000000,1.000000  |
- +------+--------------------------------------------------------------------------------------------------------+---------------------------------------------------------------+------+-----------+------------+-----------+------------+------------------------+-------------------------------------------------------------------+-----------------+--------------------------------------+
+ +-------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------+-----------+------------+-----------+------------+------------------------+------------------------------------------------------------------+-----------------+--------------------------------------+

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

clt

❌ CLT tests in test/clt-tests/mysqldump/maria/random-1m-dump-restore test/clt-tests/performance/concurrent-load-search-stats-validation test/clt-tests/performance/test-json-disk_chunks test/clt-tests/performance/test-optimisation-and-update test/clt-tests/performance/test-show-table-tbl-name-status test/clt-tests/replication/fatal-invalid-port test/clt-tests/replication/test-auto-embeddings-replication test/clt-tests/replication/test-cluster-creation-without-replication test/clt-tests/replication/test-exit-cluster-3-nodes test/clt-tests/replication/test-exit-cluster-restart-survivor test/clt-tests/replication/test-exit-cluster-shared-node-multicluster
✅ OK: 10
❌ Failed: 1
⏳ Duration: 212s
👉 Check Action Results for commit 1a8af8f

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/mysqldump/maria/random-1m-dump-restore.rec
––– 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 –––
apt-get -yqq update > /dev/null 2>&1; echo $?
––– output –––
OK
––– input –––
apt -yqq install mariadb-server > /dev/null 2>&1; echo $?
––– output –––
OK
––– input –––
mysqldump --version
––– output –––
OK
––– input –––
echo '[mysql]'$'\n''table=TRUE' >> ~/.my.cnf
––– output –––
OK
––– input –––
./test/clt-tests/scripts/generate-records.sh 1000000 | mysql -h0 -P9306
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'show tables'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'select count(*) from t'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t order by id asc limit 20"
––– output –––
+------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
| id   | f                                                                                                  | a      | b                 | j                                            | m                                | s                                                                                                  | e    | d          | v          | fv                |
+------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
- |    1 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |    7 |                                                                                                    |      0 |          0.000000 | {"a":"\"","b":"\"","c":"\""}                 |                                  |                                                                                                    |    0 |          0 |            |                   |
- |    2 | '                                                                                                  |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |    8 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | 139090 |  912626112.000000 | {"a":[2140855600,1509344502],"b":1114121522} | 928973100,1245670504,1413286320  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |    1 |  538847777 | 1617199777 | 1258482176.000000 |
- |    3 | "                                                                                                  |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |    9 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          | 198907 |    8841452.000000 | {"a":[21374549,321067876],"b":333059460}     | 1274214921,1499886331,1977497504 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          |    1 |  782785729 | 954464984  | 696490880.000000  |
- |    4 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  | '                                                                                                  |    0 |          0 |            |                   |
+ |   10 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  91421 | 1982302976.000000 | {"a":[1039865880,1000430726],"b":900846479}  | 427690075,1407612830,1714474875  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    1 | 1649242630 | 308109277  | 27668260.000000   |
- |    5 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  | "                                                                                                  |    0 |          0 |            |                   |
+ |   11 | bbbbbbbbbbbbbbbbbb                                                                                 | 121311 |  121581552.000000 | {"a":[1820436984,1682929863],"b":1502056736} | 1581765396,1654516653,1925375373 | bbbbbbbbbbbbbbbbbb                                                                                 |    1 |  801766056 | 1127147375 | 107321288.000000  |
- |    6 |                                                                                                    |      0 |          0.000000 | {"a":"'","b":"","c":"'"}                     |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |   12 | bbbbbbbbbbbbbb                                                                                     | 191122 | 1229779968.000000 | {"a":[372959725,1851192973],"b":1660390017}  | 185371603,608681734,1167859658   | bbbbbbbbbbbbbb                                                                                     |    1 | 1213118476 | 2124217000 | 406914176.000000  |
- |    7 |                                                                                                    |      0 |          0.000000 | {"a":"\"","b":"\"","c":"\""}                 |                                  |                                                                                                    |    0 |          0 |            |                   |
+ |   13 | bbbbbbbbbb                                                                                         |  95482 |  898241728.000000 | {"a":[272656722,1663615544],"b":1624186067}  | 116478871,552875970,1092517015   | bbbbbbbbbb                                                                                         |    0 | 1239989597 | 551802408  | 152522160.000000  |
- |    8 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | 139090 |  912626112.000000 | {"a":[2140855600,1509344502],"b":1114121522} | 928973100,1245670504,1413286320  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |    1 |  538847777 | 1617199777 | 1258482176.000000 |
+ |   14 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |  68119 |  661707200.000000 | {"a":[94304443,2086306634],"b":543066914}    | 578274552,1237733450,2002653905  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |    1 | 1710306734 | 167580149  | 2017031680.000000 |
- |    9 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          | 198907 |    8841452.000000 | {"a":[21374549,321067876],"b":333059460}     | 1274214921,1499886331,1977497504 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          |    1 |  782785729 | 954464984  | 696490880.000000  |
+ |   15 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  32982 | 1377983488.000000 | {"a":[496823143,416865286],"b":91350609}     | 1599607162,1936289567,2053679064 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    0 | 1518500442 | 1228024866 | 1438869760.000000 |
- |   10 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  91421 | 1982302976.000000 | {"a":[1039865880,1000430726],"b":900846479}  | 427690075,1407612830,1714474875  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    1 | 1649242630 | 308109277  | 27668260.000000   |
+ |   16 | bbbb                                                                                               | 127656 |  144601936.000000 | {"a":[407695664,2063437019],"b":917328502}   | 645985148,1065653647,1744659471  | bbbb                                                                                               |    0 |  314320885 | 1525544836 | 219136976.000000  |
- |   11 | bbbbbbbbbbbbbbbbbb                                                                                 | 121311 |  121581552.000000 | {"a":[1820436984,1682929863],"b":1502056736} | 1581765396,1654516653,1925375373 | bbbbbbbbbbbbbbbbbb                                                                                 |    1 |  801766056 | 1127147375 | 107321288.000000  |
+ |   17 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |  42017 | 1793538432.000000 | {"a":[813865368,1069542460],"b":1420434902}  | 1064502376,1165315561,1267507259 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |    1 |  284197670 | 454491894  | 202294912.000000  |
- |   12 | bbbbbbbbbbbbbb                                                                                     | 191122 | 1229779968.000000 | {"a":[372959725,1851192973],"b":1660390017}  | 185371603,608681734,1167859658   | bbbbbbbbbbbbbb                                                                                     |    1 | 1213118476 | 2124217000 | 406914176.000000  |
+ |   18 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              | 187471 | 1981036928.000000 | {"a":[364450401,1780265560],"b":754576639}   | 107468665,411366113,991124073    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              |    0 |  245327580 | 1944713760 | 1201735552.000000 |
- |   13 | bbbbbbbbbb                                                                                         |  95482 |  898241728.000000 | {"a":[272656722,1663615544],"b":1624186067}  | 116478871,552875970,1092517015   | bbbbbbbbbb                                                                                         |    0 | 1239989597 | 551802408  | 152522160.000000  |
+ |   19 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |  32712 | 1558907136.000000 | {"a":[1912418574,1670100966],"b":239810528}  | 24970160,1819190943,2021816520   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |    1 | 1341382959 | 283037034  | 1458644736.000000 |
- |   14 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |  68119 |  661707200.000000 | {"a":[94304443,2086306634],"b":543066914}    | 578274552,1237733450,2002653905  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |    1 | 1710306734 | 167580149  | 2017031680.000000 |
+ |   20 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |  48474 |   62408120.000000 | {"a":[1200217209,500666982],"b":2116623760}  | 328478084,504655829,1689585645   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |    1 |  920211881 | 229395197  | 1011787776.000000 |
- |   15 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  32982 | 1377983488.000000 | {"a":[496823143,416865286],"b":91350609}     | 1599607162,1936289567,2053679064 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    0 | 1518500442 | 1228024866 | 1438869760.000000 |
+ |   21 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                      |  73513 |  303434976.000000 | {"a":[1896597632,617357533],"b":426659202}   | 1756115916,2085689322,2094009064 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                      |    1 |  635611892 | 49226090   | 2048176896.000000 |
- |   16 | bbbb                                                                                               | 127656 |  144601936.000000 | {"a":[407695664,2063437019],"b":917328502}   | 645985148,1065653647,1744659471  | bbbb                                                                                               |    0 |  314320885 | 1525544836 | 219136976.000000  |
+ |   22 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                 | 183417 |  409343456.000000 | {"a":[2067015508,386772979],"b":771917505}   | 479023156,814388870,1426741374   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                 |    0 |  262452108 | 1625607110 | 2136056832.000000 |
- |   17 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |  42017 | 1793538432.000000 | {"a":[813865368,1069542460],"b":1420434902}  | 1064502376,1165315561,1267507259 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |    1 |  284197670 | 454491894  | 202294912.000000  |
+ |   23 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb            | 189770 | 2015627264.000000 | {"a":[1008784233,1060446236],"b":1346785576} | 41530432,1122171594,1946302254   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb            |    1 | 1659778950 | 1695762450 | 1899763200.000000 |
- |   18 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              | 187471 | 1981036928.000000 | {"a":[364450401,1780265560],"b":754576639}   | 107468665,411366113,991124073    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              |    0 |  245327580 | 1944713760 | 1201735552.000000 |
+ |   24 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                    | 195315 | 1930263552.000000 | {"a":[1909437481,1372601335],"b":1730043281} | 471934518,529627550,1248685796   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                    |    0 | 1085497807 | 462381709  | 1286633472.000000 |
- |   19 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |  32712 | 1558907136.000000 | {"a":[1912418574,1670100966],"b":239810528}  | 24970160,1819190943,2021816520   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |    1 | 1341382959 | 283037034  | 1458644736.000000 |
+ |   25 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb       | 149421 | 1482707968.000000 | {"a":[366358004,1989852354],"b":933978474}   | 624130189,1827235823,2040641084  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb       |    0 |  712631609 | 1056904730 | 224204880.000000  |
- |   20 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |  48474 |   62408120.000000 | {"a":[1200217209,500666982],"b":2116623760}  | 328478084,504655829,1689585645   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |    1 |  920211881 | 229395197  | 1011787776.000000 |
+ |   26 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                         | 199699 | 1979034752.000000 | {"a":[139259276,1879105891],"b":1472314948}  | 353482697,663275185,1574300218   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                         |    0 | 1195294149 | 994209483  | 2033352448.000000 |
+------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
––– input –––
mysql -h0 -P9306 -e "select * from t where s = 'Psm' order by id asc limit 20"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where a = 18530 order by id asc limit 20"
––– output –––
OK
––– input –––
mysqldump -h0 -P9306 Manticore 2>/dev/null 1> /tmp/all-databases.sql
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table t"
––– output –––
OK
––– input –––
mysql -h0 -P9306 < /tmp/all-databases.sql
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'show tables'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'select count(*) from t'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t order by id asc limit 20"
––– output –––
- +------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
+ +-------+------------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
- | id   | f                                                                                                  | a      | b                 | j                                            | m                                | s                                                                                                  | e    | d          | v          | fv                |
+ | id    | f                                                                                                    | a      | b                 | j                                            | m                                | s                                                                                                    | e    | d          | v          | fv                |
- +------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
+ +-------+------------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
- |    1 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56219 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                        |  93655 |  800898240.000000 | {"a":[1631881286,374864691],"b":986327763}   | 11201247,696740734,1312244462    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                        |    1 |  640474123 | 1647437712 | 1656526464.000000 |
- |    2 | '                                                                                                  |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56220 | bbbbbbbbbbbbbbbbbbbbbbbbb                                                                            | 147750 |  436171648.000000 | {"a":[790557347,690960819],"b":96353068}     | 1087682002,1892823267,1972936566 | bbbbbbbbbbbbbbbbbbbbbbbbb                                                                            |    0 | 1327180766 | 504493363  | 1277290240.000000 |
- |    3 | "                                                                                                  |      0 |          0.000000 | NULL                                         |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56221 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                             | 141196 |  692805888.000000 | {"a":[1421901586,1253683462],"b":468602744}  | 65683589,444636860,1355492270    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                             |    0 | 1402485840 | 397838984  | 430782528.000000  |
- |    4 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  | '                                                                                                  |    0 |          0 |            |                   |
+ | 56222 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |  52540 |  892005568.000000 | {"a":[2119794513,303853005],"b":1256101545}  | 707090583,768068076,1091692275   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |    1 |  421783452 | 1552699145 | 849662464.000000  |
- |    5 |                                                                                                    |      0 |          0.000000 | NULL                                         |                                  | "                                                                                                  |    0 |          0 |            |                   |
+ | 56223 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |  66597 |  259156688.000000 | {"a":[1054975214,744611820],"b":1201272197}  | 454462167,711453698,1417455615   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |    1 | 1047829192 | 2119694903 | 36132480.000000   |
- |    6 |                                                                                                    |      0 |          0.000000 | {"a":"'","b":"","c":"'"}                     |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56224 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                |  47303 | 1932548736.000000 | {"a":[274886127,673301381],"b":1935803973}   | 953804337,1938356620,1989179298  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                |    0 |  861185312 | 1725804612 | 1410452736.000000 |
- |    7 |                                                                                                    |      0 |          0.000000 | {"a":"\"","b":"\"","c":"\""}                 |                                  |                                                                                                    |    0 |          0 |            |                   |
+ | 56225 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                  |  49581 | 1285609344.000000 | {"a":[695770762,1566416409],"b":1164020988}  | 1371340017,1724858473,1855605725 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                  |    0 | 1684658266 | 1797508523 | 1775831552.000000 |
- |    8 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | 139090 |  912626112.000000 | {"a":[2140855600,1509344502],"b":1114121522} | 928973100,1245670504,1413286320  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |    1 |  538847777 | 1617199777 | 1258482176.000000 |
+ | 56226 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                | 104307 | 1846498176.000000 | {"a":[1773432652,2074254432],"b":605536622}  | 15745540,134719035,1415204041    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                |    0 | 1392046892 | 532029677  | 794976064.000000  |
- |    9 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          | 198907 |    8841452.000000 | {"a":[21374549,321067876],"b":333059460}     | 1274214921,1499886331,1977497504 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb          |    1 |  782785729 | 954464984  | 696490880.000000  |
+ | 56227 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                      |  54488 | 1921066880.000000 | {"a":[884733081,640727381],"b":990436578}    | 568729721,690637092,851401667    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                      |    0 |  346295182 | 646035071  | 1537303296.000000 |
- |   10 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  91421 | 1982302976.000000 | {"a":[1039865880,1000430726],"b":900846479}  | 427690075,1407612830,1714474875  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    1 | 1649242630 | 308109277  | 27668260.000000   |
+ | 56228 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                            |  64812 | 1058090944.000000 | {"a":[1784463061,1639118911],"b":190449516}  | 484266246,769896042,1752957201   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                            |    0 |  982797806 | 1860978743 | 2042795136.000000 |
- |   11 | bbbbbbbbbbbbbbbbbb                                                                                 | 121311 |  121581552.000000 | {"a":[1820436984,1682929863],"b":1502056736} | 1581765396,1654516653,1925375373 | bbbbbbbbbbbbbbbbbb                                                                                 |    1 |  801766056 | 1127147375 | 107321288.000000  |
+ | 56229 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                              | 158582 | 1684128768.000000 | {"a":[452189593,435507540],"b":1009274547}   | 16861867,680071562,1062136131    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                              |    1 | 1370850084 | 611827098  | 195584656.000000  |
- |   12 | bbbbbbbbbbbbbb                                                                                     | 191122 | 1229779968.000000 | {"a":[372959725,1851192973],"b":1660390017}  | 185371603,608681734,1167859658   | bbbbbbbbbbbbbb                                                                                     |    1 | 1213118476 | 2124217000 | 406914176.000000  |
+ | 56230 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                            |  24124 |  211950016.000000 | {"a":[2034465581,1679907267],"b":1732256676} | 882598518,1995256724,2139038863  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                            |    1 |  372552044 | 2038008958 | 510821536.000000  |
- |   13 | bbbbbbbbbb                                                                                         |  95482 |  898241728.000000 | {"a":[272656722,1663615544],"b":1624186067}  | 116478871,552875970,1092517015   | bbbbbbbbbb                                                                                         |    0 | 1239989597 | 551802408  | 152522160.000000  |
+ | 56231 | bbbbbbbbbbbbbbbbbbbbbbbbbb                                                                           | 204239 | 1159390848.000000 | {"a":[1564222922,1958558847],"b":249068076}  | 739172425,744728788,1439056496   | bbbbbbbbbbbbbbbbbbbbbbbbbb                                                                           |    1 |  121565147 | 656394830  | 64818920.000000   |
- |   14 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |  68119 |  661707200.000000 | {"a":[94304443,2086306634],"b":543066914}    | 578274552,1237733450,2002653905  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                    |    1 | 1710306734 | 167580149  | 2017031680.000000 |
+ | 56232 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                               | 185062 | 1375278336.000000 | {"a":[1433639608,1579073866],"b":1391528676} | 49249997,379622777,1828802398    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                               |    0 |  451839073 | 1897974897 | 1689733120.000000 |
- |   15 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |  32982 | 1377983488.000000 | {"a":[496823143,416865286],"b":91350609}     | 1599607162,1936289567,2053679064 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                     |    0 | 1518500442 | 1228024866 | 1438869760.000000 |
+ | 56233 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                   |  40378 |  498610560.000000 | {"a":[533665197,1515259720],"b":1665568144}  | 1195426310,1356861133,2128142970 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                   |    1 |   45176881 | 1495530757 | 294543040.000000  |
- |   16 | bbbb                                                                                               | 127656 |  144601936.000000 | {"a":[407695664,2063437019],"b":917328502}   | 645985148,1065653647,1744659471  | bbbb                                                                                               |    0 |  314320885 | 1525544836 | 219136976.000000  |
+ | 56234 | bbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                         |  27639 | 1129708160.000000 | {"a":[62453746,1218320675],"b":1323165236}   | 1148759756,2009409934,2080734367 | bbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                         |    0 | 1053370899 | 1046006840 | 209623760.000000  |
- |   17 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |  42017 | 1793538432.000000 | {"a":[813865368,1069542460],"b":1420434902}  | 1064502376,1165315561,1267507259 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              |    1 |  284197670 | 454491894  | 202294912.000000  |
+ | 56235 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                         |  45292 | 1916640000.000000 | {"a":[583099810,2058521496],"b":393239787}   | 698580756,1027064948,1147258887  | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                         |    1 |  220163269 | 463539071  | 2010025600.000000 |
- |   18 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              | 187471 | 1981036928.000000 | {"a":[364450401,1780265560],"b":754576639}   | 107468665,411366113,991124073    | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                              |    0 |  245327580 | 1944713760 | 1201735552.000000 |
+ | 56236 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                 | 163616 |  415191872.000000 | {"a":[756944370,209454218],"b":510067997}    | 85646432,153596036,480313078     | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                                 |    1 | 1384068973 | 1830932632 | 1792026112.000000 |
- |   19 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |  32712 | 1558907136.000000 | {"a":[1912418574,1670100966],"b":239810528}  | 24970160,1819190943,2021816520   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      |    1 | 1341382959 | 283037034  | 1458644736.000000 |
+ | 56237 | bbbbbbbbbbbbbbbb                                                                                     | 211542 | 1091019648.000000 | {"a":[684028396,1117708869],"b":1505688645}  | 168163011,261573687,537704381    | bbbbbbbbbbbbbbbb                                                                                     |    1 |  510077746 | 1774686943 | 2045815424.000000 |
- |   20 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |  48474 |   62408120.000000 | {"a":[1200217209,500666982],"b":2116623760}  | 328478084,504655829,1689585645   | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                       |    1 |  920211881 | 229395197  | 1011787776.000000 |
+ | 56238 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                 | 132563 | 1320136832.000000 | {"a":[1871471860,1702280057],"b":926869399}  | 63560523,533714849,706707427     | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                                                 |    0 | 1559966695 | 1604994968 | 2026976640.000000 |
- +------+----------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+----------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
+ +-------+------------------------------------------------------------------------------------------------------+--------+-------------------+----------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------------------+------+------------+------------+-------------------+
––– input –––
mysql -h0 -P9306 -e "select * from t where s = 'Psm' order by id asc limit 20"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where a = 18530 order by id asc limit 20"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

Linux debug test results

1 212 tests   1 161 ✅  1h 58m 51s ⏱️
    1 suites     51 💤
    1 files        0 ❌

Results for commit db4d39e.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

Windows test results

1 181 tests   1 108 ✅  1h 48m 8s ⏱️
    1 suites     73 💤
    1 files        0 ❌

Results for commit b9ed827.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

clt

❌ CLT tests in test/clt-tests/bugs/4375-max-query-time test/clt-tests/bugs/4395-optimize-cutoff-handoff test/clt-tests/bugs/4431-reject-same-table-in-two-clusters test/clt-tests/bugs/4431-replicated-table-path-custom-cluster test/clt-tests/bugs/4484-template-table-interactive-mysql test/clt-tests/bugs/4578-rt-files-concurrent-string-update-crash test/clt-tests/bugs/567-fuzzy-search-skips-numeric-words test/clt-tests/bugs/569-fuzzy-single-letter-word-merge test/clt-tests/bugs/599-fuzzy-join-facet-no-such-table test/clt-tests/bugs/fuzzy-preserve-distance-exact-words test/clt-tests/bugs/rebuild-secondary-after-optimize
✅ OK: 10
❌ Failed: 1
⏳ Duration: 184s
👉 Check Action Results for commit 132f0ad

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/bugs/4578-rt-files-concurrent-string-update-crash.rec
––– 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 –––
mysql -h0 -P9306 -e "drop table if exists t4578; create table t4578(title text, tag string, grp uint, active bool); insert into t4578(id,title,tag,grp,active) values(1,'x','seed',1,1);"; echo $?
––– output –––
OK
––– input –––
( sh -lc 'while true; do mysql -N -B -h0 -P9306 -e "select file,size from t4578.@files;" >/dev/null 2>&1 || exit 0; done' >/tmp/rt-files-reader.log 2>&1 & echo $! > /tmp/rt-files-reader.pid )
( sh -lc "while true; do mysql -N -B -h0 -P9306 -e \"update t4578 set tag='u' where id=1;\" >/dev/null 2>&1 || exit 0; done" >/tmp/rt-files-writer.log 2>&1 & echo $! > /tmp/rt-files-writer.pid )
sleep 10
if grep -q "FATAL: CRASH DUMP" /var/log/manticore/searchd.log 2>/dev/null; then echo crashed; else echo not_crashed; fi
––– output –––
OK
––– input –––
mysql -N -B -h0 -P9306 -e "select 1;"
––– output –––
+------+
- |    1 |
+ | 1    |
+------+

@sanikolaev sanikolaev force-pushed the feat/create-table-profile-relevance branch 2 times, most recently from e2ffe12 to c17bee0 Compare June 3, 2026 07:38
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/mcl/auto-embeddings-openai-remote test/clt-tests/mcl/auto-embeddings-parameter-combinations test/clt-tests/mcl/auto-embeddings-qwen test/clt-tests/mcl/auto-embeddings-show-create-table test/clt-tests/mcl/auto-embeddings-syntax-check test/clt-tests/mcl/auto-embeddings-voyage-remote test/clt-tests/mcl/knn-missing-embeddings-startup test/clt-tests/http-interface/cli-endpoint test/clt-tests/http-interface/cli-json-endpoint test/clt-tests/http-interface/error-handling test/clt-tests/http-interface/multi-query
✅ OK: 8
❌ Failed: 3
⏳ Duration: 96s
👉 Check Action Results for commit 909b372

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/mcl/auto-embeddings-show-create-table.rec
––– 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 –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8080 --provider openai > /tmp/mock-server-8080.log 2>&1 &
MOCK_PID_8080=$!
echo "Mock server started on port 8080 (PID: $MOCK_PID_8080)"
sleep 1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_api_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_api_url" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_no_api_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title')" 2>&1; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_show_no_api_url': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_no_api_url" 2>&1
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
-        Table: test_show_no_api_url
- Create Table: CREATE TABLE test_show_no_api_url (
- id bigint,
- title text,
- embedding float_vector knn_type='hnsw' hnsw_similarity='L2' model_name='sentence-transformers/all-MiniLM-L6-v2' from='title' api_timeout='10'
- )
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_api_timeout (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_api_timeout" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_no_api_timeout (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_no_api_timeout" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_api_timeout_zero (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='0')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_api_timeout_zero" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_from (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_from" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_api_key_security (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='secret-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_api_key_security" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_all_params (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_all_params" 2>&1
––– output –––
OK
test/clt-tests/mcl/auto-embeddings-parameter-combinations.rec
––– 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 –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8080 --provider openai > /tmp/mock-server-8080.log 2>&1 &
MOCK_PID_8080=$!
echo "Mock server started on port 8080 (PID: $MOCK_PID_8080)"
sleep 1
––– output –––
OK
––– input –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8081 --provider voyage > /tmp/mock-server-8081.log 2>&1 &
MOCK_PID_8081=$!
echo "Mock server started on port 8081 (PID: $MOCK_PID_8081)"
sleep 1
––– output –––
OK
––– input –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8083 > /tmp/mock-server-8083.log 2>&1 &
MOCK_PID_8083=$!
echo "Generic mock server started on port 8083 (PID: $MOCK_PID_8083)"
sleep 1
––– output –––
OK
––– input –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8084 --provider openai --delay 6.0 > /tmp/mock-server-8084.log 2>&1 &
MOCK_PID_8084=$!
echo "Slow mock server started on port 8084 (PID: $MOCK_PID_8084)"
sleep 1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_all_params (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='valid-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_all_params" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_url_timeout_no_key (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_url_invalid_key (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='wrong' API_URL='http://localhost:8080/v1/embeddings')" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_timeout_slow_server (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8084/v1/embeddings' API_TIMEOUT='5')" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_url_provider_mismatch (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8081/v1/embeddings')" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_url_provider_override (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8083/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_url_provider_override (id, title) VALUES (1, 'test provider=openai')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_url1 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_url2 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8083/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_url1 (id, title) VALUES (1, 'test document 1')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_url2 (id, title) VALUES (1, 'test document 2')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_timeout1 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8084/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_timeout2 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8084/v1/embeddings' API_TIMEOUT='60')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_timeout1 (id, title) VALUES (1, 'test delay=6.0')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_timeout2 (id, title) VALUES (1, 'test delay=6.0')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_same1 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_same2 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_same1 (id, title) VALUES (1, 'test document 1')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_same2 (id, title) VALUES (1, 'test document 2')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_long_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings?param1=value1&param2=value2&param3=value3&param4=value4&param5=value5&param6=value6&param7=value7&param8=value8&param9=value9&param10=value10')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_special_chars_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings?param=value&other=test')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_auth_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://user:pass@localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_concurrent_alter (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_nonexistent_column (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='${OPENAI_API_KEY}')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE test_nonexistent_column MODIFY COLUMN nonexistent API_URL='http://localhost:8080/v1/embeddings'" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_local_api_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_local_api_url': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_local_api_url (id, title) VALUES (1, 'test document')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_local_api_timeout (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_local_api_timeout': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_local_api_timeout (id, title) VALUES (1, 'test document')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_local_api_key (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title' API_KEY='any-key')" 2>&1; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_local_api_key': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_local_api_key (id, title) VALUES (1, 'test document')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_from_api_url (title TEXT, description TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title,description' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_from_api_url (id, title, description) VALUES (1, 'test title', 'test description')" 2>&1; echo $?
––– output –––
OK
test/clt-tests/mcl/auto-embeddings-qwen.rec
––– 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 –––
mysql -h0 -P9306 -e "CREATE TABLE test_qwen (title TEXT, vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='Qwen/Qwen3-Embedding-0.6B' FROM='title')"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_qwen': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_qwen"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
-        Table: test_qwen
- Create Table: CREATE TABLE test_qwen (
- id bigint,
- title text,
- vec float_vector knn_type='hnsw' hnsw_similarity='L2' model_name='Qwen/Qwen3-Embedding-0.6B' from='title' api_timeout='10'
- )
––– input –––
mysql -h0 -P9306 -e "insert into test_qwen(id, title) values(1, 'book'),(2, 'bread');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) as total_records FROM test_qwen"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select id, title, knn_dist() from test_qwen where knn(vec, 3, 'loaf')"
––– output –––
- +------+-------+------------+
+ ERROR 1064 (42000) at line 1: table test_qwen: requested KNN search attribute 'vec' not found
- | id   | title | knn_dist() |
- +------+-------+------------+
- |    2 | bread | #!/0\.3[0-9]*/!# |
- |    1 | book  | #!/0\.[45][0-9]*/!# |
- +------+-------+------------+

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/mysqldump/maria/random-1m-dump-restore test/clt-tests/performance/concurrent-load-search-stats-validation test/clt-tests/performance/test-json-disk_chunks test/clt-tests/performance/test-optimisation-and-update test/clt-tests/performance/test-show-table-tbl-name-status test/clt-tests/replication/fatal-invalid-port test/clt-tests/replication/test-auto-embeddings-replication test/clt-tests/replication/test-cluster-creation-without-replication test/clt-tests/replication/test-exit-cluster-3-nodes test/clt-tests/replication/test-exit-cluster-restart-survivor test/clt-tests/replication/test-exit-cluster-shared-node-multicluster
✅ OK: 10
❌ Failed: 1
⏳ Duration: 236s
👉 Check Action Results for commit 909b372

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/replication/test-auto-embeddings-replication.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table if exists t;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t (f text, v float_vector knn_type='hnsw' hnsw_similarity='COSINE' model_name='sentence-transformers/all-MiniLM-L6-v2' from='f');"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 't': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P1306 -e "create cluster c;"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "alter cluster c add t;"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: unknown or wrong type of table 't'
+ 1
––– input –––
mysql -h0 -P2306 -e "join cluster c at '127.0.0.1:1312';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into c:t(id,f) values(1,'bread');"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: table 't' absent
+ 1
––– input –––
mysql -E -h0 -P2306 -e "debug wait c status 2 like 'state' option 'timeout'=30;" | awk '/Value:/{print $2}'
––– output –––
- 2
+ 0
––– input –––
mysql -E -h0 -P2306 -e "select id, f from c:t order by id asc;" | awk '/f:/{print $2}'
––– output –––
- bread
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
––– input –––
mysql -h0 -P1306 -e "insert into c:t(id,f, v) values(10,'aaps', (0.1, 0.2));"; echo $?
––– output –––
- ERROR 1064 (42000) at line 1: attribute 'v' has model_name=sentence-transformers/all-MiniLM-L6-v2 specified, but vector contents with 2 values is provided
+ ERROR 1064 (42000) at line 1: table 't' absent
1
––– input –––
mysql -h0 -P1306 -e "insert into c:t(id,f, v) values(11,'not related text presented for testing', (-0.02887810952961445,-0.014508943073451519,0.06253206729888916,0.006139140110462904,0.007788040209561586,-0.029897022992372513,0.004299835301935673,-0.02102580852806568,-0.07824035733938217,-0.04040408879518509,-0.04838048294186592,-0.0078645721077919,0.010616137646138668,0.004826101940125227,-0.062401119619607925,0.07758325338363647,0.0104198744520545,0.0028890324756503105,-0.11988074332475662,-0.09860166907310486,0.025224801152944565,-0.00991450808942318,-0.05856771767139435,0.014609863981604576,0.005707146134227514,0.024516092613339424,0.0820961520075798,0.05104028061032295,-0.014301222749054432,-0.06978834420442581,0.051312025636434555,-0.0773017480969429,0.05717596784234047,0.03005439229309559,-0.06304150074720383,0.06810582429170609,-0.09292984753847122,0.006180487107485533,0.033087845891714096,0.01436525210738182,-0.0019107428379356861,-0.11795717477798462,0.036489419639110565,0.003296283772215247,0.07273916900157928,0.12453976273536682,-0.05751297250390053,-0.019802575930953026,-0.03427072986960411,0.06344299018383026,-0.0916014313697815,-0.013950333930552006,-0.016918571665883064,-0.027785340324044228,-0.06570874154567719,0.04672783613204956,0.016895921900868416,0.026192206889390945,0.00987544097006321,0.0047765751369297504,0.020895836874842644,-0.0705636665225029,-0.022132378071546555,-0.0324690006673336,0.05870749428868294,0.0021685678511857986,-0.043411076068878174,0.07814154028892517,-0.019831260666251183,-0.08912009000778198,-0.04109704867005348,0.05572393164038658,-0.0074473218992352486,0.015599397011101246,0.04969257488846779,-0.003387113567441702,0.022838285192847252,-0.020863434299826622,0.0694182813167572,-0.02072182483971119,-0.08121015131473541,-0.017036229372024536,-0.046413592994213104,0.09961981326341629,0.01960965059697628,-0.05294061452150345,-0.051695119589567184,0.018813325092196465,-0.0276397205889225,-0.034315574914216995,0.00913374125957489,-0.04280592501163483,0.022342398762702942,-0.05029156059026718,-0.03839508444070816,0.059815049171447754,0.013032465241849422,-0.14764592051506042,-0.005115848500281572,0.11305969953536987,-0.08993944525718689,0.08440786600112915,-0.0020546468440443277,-0.03318164497613907,0.04759039729833603,-0.03706233203411102,0.011276835575699806,0.00043600198114290833,0.07980957627296448,-0.15789221227169037,-0.07920952141284943,-0.02279348485171795,0.0539841502904892,-0.0818084329366684,-0.00291087431833148,-0.010869033634662628,0.004449532367289066,0.04457550495862961,-0.007860267534852028,0.023657092824578285,-0.020765071734786034,-0.02642984874546528,0.020103735849261284,0.1111338809132576,0.028429243713617325,-0.0725877657532692,-0.0678577795624733,1.8544020314946612e-33,-0.03472018986940384,-0.06150643527507782,-0.03177795186638832,0.03646891564130783,0.01958777941763401,-0.11167877912521362,0.01035370584577322,-0.0479571558535099,0.01566443033516407,0.008931931108236313,-0.05269512161612511,0.006171927321702242,0.03202659636735916,-0.006528966128826141,0.09422576427459717,-0.012561697512865067,0.04291675239801407,0.09155222773551941,0.02544848434627056,-0.025248372927308083,0.05366683751344681,0.011495773680508137,0.04045502096414566,-0.024824194610118866,-0.019793512299656868,0.03673143684864044,0.04070700332522392,0.02240411750972271,-0.010609647259116173,0.02108629047870636,0.07546887546777725,0.056149739772081375,-0.01266847550868988,0.023099826648831367,0.033572424203157425,0.0018432731740176678,-0.01756606251001358,0.060724057257175446,0.04019973427057266,0.0187228973954916,-0.034152500331401825,-0.034975096583366394,0.05602458491921425,-0.01720142364501953,-0.04200385883450508,-0.005915438756346703,0.04974375665187836,-0.06926773488521576,-0.027901772409677505,0.0007827704539522529,0.04093310236930847,-0.0445101372897625,-0.04872944578528404,-0.002661655191332102,0.08892837166786194,0.12077690660953522,-0.031700246036052704,0.008966736495494843,-0.020614879205822945,-0.04214325174689293,0.09248723089694977,0.012272832915186882,0.03789548575878143,0.0721842497587204,-0.028616590425372124,0.020248470827937126,0.0842500627040863,0.030446691438555717,0.011253142729401588,0.020550614222884178,0.02559511736035347,0.03574708104133606,0.03422650322318077,-0.0746365413069725,0.05465991050004959,0.037171103060245514,0.05248453840613365,0.002069835551083088,-0.008089751936495304,-0.011679762043058872,-0.12151028215885162,-0.008391043171286583,-0.014654085040092468,-0.054292161017656326,0.06412038207054138,-0.05077509954571724,0.0580800399184227,-0.01631723903119564,-0.01568209007382393,0.04950840398669243,-0.09341369569301605,0.023440195247530937,0.09112592786550522,0.00047929398715496063,-0.08850732445716858,-1.9623214127787707e-33,-0.12491357326507568,0.020150018855929375,0.03034389577805996,0.11277838796377182,0.034695543348789215,-0.011876045726239681,-0.06076759099960327,-0.011039776727557182,0.02729235216975212,0.10424460470676422,-0.001800763071514666,-0.008416797965765,0.06515590846538544,0.02585623413324356,-0.05551620572805405,0.07288996875286102,-0.010547428391873837,-0.03874387964606285,-0.00592134241014719,0.08981339633464813,-0.036455925554037094,0.04666841775178909,-0.021836930885910988,-0.016903260722756386,-0.011249814182519913,-0.019797921180725098,-0.017575707286596298,0.0004202927812002599,-0.05519506707787514,0.011089515872299671,0.030541645362973213,-0.02105090580880642,-0.0651649683713913,0.05198892205953598,-0.033706434071063995,0.006662809755653143,-0.026725811883807182,0.006605037488043308,-0.035417590290308,0.11581236124038696,0.011658085510134697,0.027106603607535362,-0.13228893280029297,-0.007210239302366972,-0.026874540373682976,-0.07146837562322617,-0.025904450565576553,0.03189704194664955,0.04362832009792328,-0.05089547485113144,-0.016457589343190193,-0.0020786665845662355,0.034416407346725464,-0.07606993615627289,-0.0384371243417263,0.09190164506435394,-0.0023519210517406464,-0.03578750416636467,0.0174117274582386,0.07065414637327194,-0.05423733592033386,-0.1115489974617958,0.034914083778858185,0.009716940112411976,0.017698979005217552,0.02325839176774025,-0.023224983364343643,0.08413097262382507,-0.05165207386016846,-0.04000084102153778,0.05087630823254585,0.031228039413690567,-0.007687970530241728,0.013114201836287975,0.009889479726552963,-0.06657213717699051,-0.04740755632519722,-0.045509014278650284,-0.016498880460858345,-0.05309320613741875,0.0233579371124506,-0.05407179892063141,0.02378183975815773,0.061486922204494476,0.016216298565268517,0.039252132177352905,0.022517172619700432,-0.013490748591721058,0.02116474136710167,-0.054400794208049774,0.0016664628637954593,0.08511592447757721,0.0061784167774021626,0.026095809414982796,-0.05038367956876755,-1.5553007770563454e-8,0.0017935795476660132,-0.06964796036481857,0.10214224457740784,-0.013182144612073898,0.0788150355219841,0.030127938836812973,-0.09085867553949356,0.06065487489104271,-0.02620915323495865,0.009598396718502045,0.021433483809232712,0.015229065902531147,0.006221206393092871,0.037634145468473434,-0.019239604473114014,0.01714528165757656,0.004608516115695238,0.022722238674759865,0.011902491562068462,0.009837309829890728,0.0965832769870758,0.01768278144299984,0.05329291522502899,-0.042203258723020554,0.04997896030545235,-0.06958130747079849,0.022804096341133118,0.04385494440793991,-0.01289377547800541,0.04677840694785118,-0.03932027146220207,0.06900487095117569,-0.0089718047529459,-0.00459922244772315,0.11239369213581085,0.11475653201341629,0.029179617762565613,-0.05705489590764046,-0.022557003423571587,0.028765123337507248,-0.055568233132362366,0.03479662165045738,-0.10511929541826248,-0.0041320896707475185,0.07684381306171417,0.024079209193587303,0.012334967032074928,-0.13599443435668945,0.01641032285988331,-0.005830815527588129,0.016982978209853172,0.05224009230732918,0.0589921697974205,0.059258945286273956,0.07644383609294891,0.01571839489042759,0.10470645874738693,-0.022268055006861687,0.008824847638607025,0.046184878796339035,-0.0035121834371238947,0.04443963244557381,-0.0010735581163316965,-0.08990925550460815));"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: table 't' absent
+ 1
––– input –––
mysql -E -h0 -P2306 -e "debug wait c status 3 like 'state' option 'timeout'=10;" | awk '/Value:/{print $2}'
––– output –––
- 3
+ 0
––– input –––
mysql -E -h0 -P2306 -e "select id, f from c:t order by id asc;"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
- id: 1
-  f: bread
- *************************** 2. row ***************************
- id: 11
-  f: not related text presented for testing
––– input –––
mysql -h0 -P1306 -e "alter cluster c drop t;"
––– output –––
+ ERROR 1064 (42000) at line 1: unknown or wrong type of table 't'
––– input –––
mysql -h0 -P1306 -e "drop table t;"
––– output –––
+ ERROR 1064 (42000) at line 1: DROP TABLE failed: unknown table 't'

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/buddy/test-buddy-protocol-validation test/clt-tests/buddy/test-fuzzy-search-non-min-infix-len test/clt-tests/buddy/test-log-level-buddy-sync test/clt-tests/buddy/test-manticore-version-in-telemetry test/clt-tests/buddy/test-show-version test/clt-tests/buddy/test-unserialize-error-absence-kafka-operations test/clt-tests/buddy-plugins/test-conversational-advanced test/clt-tests/buddy-plugins/test-conversational-basic test/clt-tests/buddy-plugins/test-conversational-intent test/clt-tests/buddy-plugins/test-conversational-negative test/clt-tests/buddy-plugins/test-enable-disable-buddy-plugin
✅ OK: 10
❌ Failed: 1
⏳ Duration: 198s
👉 Check Action Results for commit 6b68936

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/buddy-plugins/test-conversational-advanced.rec
––– input –––
export SEARCHD_FLAGS="--iostats --cpustats"
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd $SEARCHD_FLAGS > /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 –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS knowledge_base;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 << EOF
CREATE TABLE knowledge_base (
    id BIGINT,
    title TEXT,
    summary TEXT,
    content TEXT,
    category TEXT,
    tags TEXT,
    embedding_vector FLOAT_VECTOR
    knn_type='hnsw'
    hnsw_similarity='cosine'
    model_name='sentence-transformers/all-MiniLM-L6-v2'
    from='title,content'
    api_key='\${OPENAI_API_KEY}'
) TYPE='rt';
EOF
––– output –––
OK
––– input –––
mysql -h0 -P9306 << 'EOF'
INSERT INTO knowledge_base (id, title, summary, content, category, tags)
VALUES
(1, 'Getting Started with Manticore', 'Quick start guide', 'Install Manticore Search and configure your first index', 'Tutorial', 'installation,quickstart'),
(2, 'Vector Search Explained', 'Understanding vectors', 'Vector search uses embeddings to find semantically similar documents', 'Concepts', 'vectors,knn,similarity'),
(3, 'Full-Text Search Guide', 'Text search basics', 'Use MATCH() operator for full-text search with ranking', 'Tutorial', 'fulltext,match,ranking'),
(4, 'RAG Architecture', 'RAG pattern overview', 'Retrieval-Augmented Generation combines search with LLM for intelligent responses', 'Advanced', 'rag,llm,ai'),
(5, 'Clustering Setup', 'Distributed search', 'Configure replication and sharding for high availability', 'Advanced', 'cluster,replication,sharding');
EOF
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM knowledge_base;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE CHAT MODEL fast_assistant (model='openai:gpt-3.5-turbo', max_document_length=0, retrieval_limit=3);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE CHAT MODEL detailed_assistant (model='openai:gpt-4o', max_document_length=0, retrieval_limit=5);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE CHAT MODEL creative_assistant (model='openai:gpt-4o-mini', max_document_length=2000, retrieval_limit=4);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW CHAT MODELS;" | grep -c "openai"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL CHAT('Tell me about vector search', 'knowledge_base', 'fast_assistant')\G;" | awk '/^         response: ?/ { r=$0; in_response=1; next } in_response && /^          sources: / { print r; print; in_response=0; next } in_response { r=r " " $0; next } { print } END { if (in_response) print r }' | tee /tmp/output_1.txt
––– output –––
OK
––– input –––
grep 'sources:' /tmp/output_1.txt | grep -o '\[.*\]' | head -1 | { read -r s; if echo "$s" | jq -e 'map(.id) | contains([2,3,4])' >/dev/null 2>&1; then echo "OK"; else echo "FAIL"; echo "Found: $(echo "$s" | jq -c 'map(.id)')"; echo "$s"; fi; }
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL CHAT('Explain vector search', 'knowledge_base', 'detailed_assistant')\G;" | awk '/^         response: ?/ { r=$0; in_response=1; next } in_response && /^          sources: / { print r; print; in_response=0; next } in_response { r=r " " $0; next } { print } END { if (in_response) print r }' | tee /tmp/output_2.txt
––– output –––
OK
––– input –––
grep 'sources:' /tmp/output_2.txt | grep -o '\[.*\]' | head -1 | { read -r s; if echo "$s" | jq -e 'map(.id) | contains([2,3,4])' >/dev/null 2>&1; then echo "OK"; else echo "FAIL"; echo "Found: $(echo "$s" | jq -c 'map(.id)')"; echo "$s"; fi; }
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL CHAT('Tell me about RAG architecture', 'knowledge_base', 'creative_assistant')\G;" | awk '/^         response: ?/ { r=$0; in_response=1; next } in_response && /^          sources: / { print r; print; in_response=0; next } in_response { r=r " " $0; next } { print } END { if (in_response) print r }' | tee /tmp/output_3.txt
––– output –––
OK
––– input –––
grep 'sources:' /tmp/output_3.txt | grep -o '\[.*\]' | head -1 | { read -r s; if echo "$s" | jq -e 'map(.id) | contains([4])' >/dev/null 2>&1; then echo "OK"; else echo "FAIL"; echo "Found: $(echo "$s" | jq -c 'map(.id)')"; echo "$s"; fi; }
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL CHAT('What is clustering?', 'knowledge_base', 'fast_assistant', 'conv-test-1234-5678-90ab-cdef12345678')\G;" | awk '/^         response: ?/ { r=$0; in_response=1; next } in_response && /^          sources: / { print r; print; in_response=0; next } in_response { r=r " " $0; next } { print } END { if (in_response) print r }' | tee /tmp/output_4.txt
––– output –––
OK
––– input –––
grep 'sources:' /tmp/output_4.txt | grep -o '\[.*\]' | head -1 | { read -r s; if echo "$s" | jq -e 'map(.id) | contains([5])' >/dev/null 2>&1; then echo "OK"; else echo "FAIL"; echo "Found: $(echo "$s" | jq -c 'map(.id)')"; echo "$s"; fi; }
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL CHAT('How do I configure it?', 'knowledge_base', 'fast_assistant', 'conv-test-1234-5678-90ab-cdef12345678')\G;" | awk '/^         response: ?/ { r=$0; in_response=1; next } in_response && /^          sources: / { print r; print; in_response=0; next } in_response { r=r " " $0; next } { print } END { if (in_response) print r }' | tee /tmp/output_5.txt
––– output –––
OK
––– input –––
grep 'sources:' /tmp/output_5.txt | grep -o '\[.*\]' | head -1 | { read -r s; if echo "$s" | jq -e 'map(.id) | contains([5])' >/dev/null 2>&1; then echo "OK"; else echo "FAIL"; echo "Found: $(echo "$s" | jq -c 'map(.id)')"; echo "$s"; fi; }
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL CHAT('What are best practices?', 'knowledge_base', 'detailed_assistant', 'conv-test-1234-5678-90ab-cdef12345678')\G;" | awk '/^         response: ?/ { r=$0; in_response=1; next } in_response && /^          sources: / { print r; print; in_response=0; next } in_response { r=r " " $0; next } { print } END { if (in_response) print r }' | tee /tmp/output_6.txt
––– output –––
*************************** 1. row ***************************
conversation_uuid: conv-test-1234-5678-90ab-cdef12345678
       user_query: What are best practices?
     search_query: #!/.*[Cc]luster.*/!#
-          response: #!/.*[Cc]luster.*/!#
+          response: When setting up Manticore Search, some best practices include:  1. **Replication and Sharding**: Ensure high availability by configuring replication to create data copies across multiple servers. Use sharding to distribute data efficiently, improving performance and scalability.  2. **Index Configuration**: Start by installing Manticore Search and configuring your first index properly. This sets a solid foundation for your data processing needs.  3. **Vector Search**: Utilize vector search with embeddings to find semantically similar documents, enhancing the search capabilities beyond traditional keyword matching.  4. **Full-Text Search**: Use the `MATCH()` operator for effective full-text search, which includes ranking to prioritize relevant results.  5. **RAG Architecture**: Consider using Retrieval-Augmented Generation to combine search with large language models for more intelligent and context-aware responses.  Would you like more details on any of these practices?
          sources: #!/.*/!#
––– input –––
grep 'sources:' /tmp/output_6.txt | grep -o '\[.*\]' | head -1 | { read -r s; if echo "$s" | jq -e 'map(.id) | contains([5])' >/dev/null 2>&1; then echo "OK"; else echo "FAIL"; echo "Found: $(echo "$s" | jq -c 'map(.id)')"; echo "$s"; fi; }
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL CHAT('Show me tutorials', 'knowledge_base', 'creative_assistant', 'conv-other-aaaa-bbbb-cccc-dddddddddddd')\G;" | awk '/^         response: ?/ { r=$0; in_response=1; next } in_response && /^          sources: / { print r; print; in_response=0; next } in_response { r=r " " $0; next } { print } END { if (in_response) print r }'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP CHAT MODEL fast_assistant;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP CHAT MODEL detailed_assistant;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP CHAT MODEL creative_assistant;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW CHAT MODELS;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS knowledge_base;"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/sharding/replication/create-table-3-nodes-6-shards test/clt-tests/sharding/replication/create-table-5-nodes-60-shards test/clt-tests/sharding/replication/test-data-manipulation test/clt-tests/sharding/replication/test-distributed-inserts-with-replication test/clt-tests/sharding/replication/test-multi-node-sharding-and-replication test/clt-tests/sharding/syntax/sharding-syntax-negative test/clt-tests/sharding/syntax/sharding-syntax-positive test/clt-tests/test-configuration/show-settings test/clt-tests/test-configuration/show-threads test/clt-tests/test-configuration/test-buddy-max-connections-configuration test/clt-tests/test-configuration/test-buddy-requests-not-logged
✅ OK: 10
❌ Failed: 1
⏳ Duration: 172s
👉 Check Action Results for commit c0a9f1b

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/replication/create-table-5-nodes-60-shards.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=5
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for port in 1306 2306 3306 4306 5306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: Node synced"; done && cat /tmp/status_1306.log
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table c:t(id bigint) shards='60' rf='3' timeout='60'"
––– output –––
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
––– input –––
for i in 1 2 3 4 5; do mysql -h0 -P${i}306 -e "show tables from system\G"; done | grep 'Table: system.t' | sort -V
––– output –––
OK
––– input –––
for i in 1 2 3 4 5; do mysql -h0 -P${i}306 -e "desc t\G" | grep 'Create Table'; done
––– output –––
OK
––– input –––
for i in 1 2 3 4 5; do mysql -h0 -P${i}306 -e "show tables from system\G" | grep 'Table: system.t' | wc -l; done
––– output –––
OK

@sanikolaev sanikolaev force-pushed the feat/create-table-profile-relevance branch from cb5324d to db4d39e Compare June 3, 2026 16:26
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/sharding/regression/test-optimize-public-sharded test/clt-tests/sharding/regression/test-rf1-3node-agent-layout test/clt-tests/sharding/regression/test-rf2-read-failover test/clt-tests/sharding/regression/test-rf2-restart-recovery test/clt-tests/sharding/regression/test-shard-txn-insert-replace-mix test/clt-tests/sharding/regression/test-timeout-empty-rejected test/clt-tests/sharding/regression/test-timeout-zero-rejected test/clt-tests/sharding/regression/test-truncate-public-sharded test/clt-tests/test-configuration/show-settings test/clt-tests/test-configuration/show-threads test/clt-tests/test-configuration/test-buddy-max-connections-configuration test/clt-tests/test-configuration/test-buddy-requests-not-logged test/clt-tests/test-configuration/test-default-config
✅ OK: 7
❌ Failed: 6
⏳ Duration: 84s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/regression/test-timeout-zero-rejected.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t39(id bigint, title text) shards='2' rf='1' timeout='0';"
––– output –––
- ERROR 1064 (42000) at line 1: You cannot set timeout less than 1 second
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
––– input –––
mysql -h0 -P1306 -e "show tables like 't39';"
––– output –––
+ +-------+-------------+
+ | Table | Type        |
+ +-------+-------------+
+ | t39   | distributed |
+ +-------+-------------+
––– input –––
mysql -h0 -P1306 -e "create table t39_ok(id bigint, title text) shards='2' rf='1' timeout='5';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show tables like 't39_ok';"
––– output –––
- +--------+-------+
+ +--------+-------------+
- | Table  | Type  |
+ | Table  | Type        |
- +--------+-------+
+ +--------+-------------+
- | t39_ok | shard |
+ | t39_ok | distributed |
- +--------+-------+
+ +--------+-------------+
test/clt-tests/sharding/regression/test-timeout-empty-rejected.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t38(id bigint, title text) shards='2' rf='1' timeout='';"
––– output –––
- ERROR 1064 (42000) at line 1: Parameter 'timeout' requires to have a value
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
––– input –––
mysql -h0 -P1306 -e "show tables like 't38';"
––– output –––
+ +-------+-------------+
+ | Table | Type        |
+ +-------+-------------+
+ | t38   | distributed |
+ +-------+-------------+
test/clt-tests/sharding/regression/test-rf1-3node-agent-layout.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t13(id bigint, body text) shards='3' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t13(id,body) values(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f');"; echo $?
––– output –––
OK
––– input –––
sleep 2; mysql -h0 -P1306 -e "select count(*) c from t13 where id>0;" | tail -2 | head -1
––– output –––
OK
––– input –––
mysql -h0 -P2306 -e "select count(*) c from t13 where id>0;" | tail -2 | head -1
––– output –––
- |    6 |
+ |    5 |
––– input –––
mysql -h0 -P3306 -e "select count(*) c from t13 where id>0;" | tail -2 | head -1
––– output –––
- |    6 |
+ |    5 |
test/clt-tests/sharding/regression/test-optimize-public-sharded.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t24(id bigint, title text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t24(id,title) values(1,'a'),(2,'b'),(3,'c');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "optimize table t24;"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: OPTIMIZE TABLE requires an existing RT table
+ 1
––– input –––
mysql -h0 -P1306 -e "select count(*) c from t24 where id>0;"
––– output –––
OK
test/clt-tests/sharding/regression/test-truncate-public-sharded.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t1(id bigint, body text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t1(id,body) values(1,'a'),(2,'b'),(3,'c');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) as c from t1 where id>0;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "truncate table t1;"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Table t1 does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "select count(*) as c from t1 where id>0;"
––– output –––
+------+
| c    |
+------+
- |    0 |
+ |    3 |
+------+
test/clt-tests/sharding/regression/test-rf2-read-failover.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table c:rm(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into rm(id,body) values(1,'a'),(2,'b'),(3,'c'),(4,'d');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) c from rm where id>0;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show create table rm option force=1\G" | grep -o "retry_count=2,ha_strategy=noerrors" | head -1
––– output –––
- retry_count=2,ha_strategy=noerrors
––– input –––
kill -9 $(cat /var/log/manticore-2/searchd.pid); sleep 1
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) c from rm where id>0;"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: table rm: agent 127.0.0.1:2312: receiving failure (errno=111, msg=Connection refused)
- | c    |
- +------+
- |    4 |
- +------+
––– input –––
mysql -h0 -P1306 -e "select count(*) c from rm where id>0;"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/mcl/auto-embeddings-voyage-remote test/clt-tests/mcl/knn-missing-embeddings-startup test/clt-tests/http-interface/cli-endpoint test/clt-tests/http-interface/cli-json-endpoint test/clt-tests/http-interface/error-handling test/clt-tests/http-interface/multi-query test/clt-tests/http-interface/show-version-http test/clt-tests/http-interface/show-version-trailing-semicolon test/clt-tests/http-interface/sql-endpoint test/clt-tests/http-interface/sql-mode-raw-endpoint test/clt-tests/http-interface/test-concurrent-requests-to-buddy test/clt-tests/http-interface/test-content-type-header-daemon-only test/clt-tests/http-interface/test-content-type-header-with-buddy
✅ OK: 12
❌ Failed: 1
⏳ Duration: 74s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/http-interface/cli-json-endpoint.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd $SEARCHD_FLAGS > /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, value_attr STRING) min_infix_len = '3' min_prefix_len = '3'; INSERT INTO t VALUES (1, 'example', 'example'), (2, 'test', 'test');"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20version"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20buddy%20plugins" | grep -o Package | wc -l
––– output –––
- 31
+ 30
––– input –––
curl -s "http://localhost:9308/cli_json?select%20*%20from%20t%20where%20match('exmaple')%20option%20fuzzy=1"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20fields%20from%20t"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?create%20table%20t_copy2%20like%20t"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?select%20*%20from%20t%20limit%201"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/http-interface/test-distributed-inserts test/clt-tests/http-interface/test-fuzzy-search-sql-endpoint test/clt-tests/http-interface/test-inserts test/clt-tests/http-interface/test-manticore-handling-id test/clt-tests/indexer/test-max-iops test/clt-tests/indexer/test-max-iosize test/clt-tests/join/test-avg-select-join test/clt-tests/join/test-join-query-logging-completeness test/clt-tests/kibana/test-kibana-log-to-test-script test/clt-tests/kibana/test-parameter-for-installing-the-kibana-version test/clt-tests/mysqldump/mysql/mcl-all-json test/clt-tests/mysqldump/mysql/mcl-all-multi test/clt-tests/mysqldump/mysql/mcl-all-multi64
✅ OK: 13
❌ Failed: 1
⏳ Duration: 77s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/http-interface/test-distributed-inserts.rec
––– 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 –––
apt-get install -y jq > /dev/null; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS test2;"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test2 (
  id BIGINT,
  model TEXT,
  storage_capacity INTEGER,
  color STRING,
  release_year INTEGER,
  price FLOAT,
  discounted_price FLOAT,
  sold BOOL,
  date_added TIMESTAMP,
  product_codes MULTI,
  values MULTI64,
  additional_info JSON,
  vector FLOAT_VECTOR
    knn_type='hnsw'
    knn_dims='4'
    hnsw_similarity='l2'
) shards='3' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "show tables;"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | test2 | shard |
+ | test2 | distributed |
- +-------+-------+
+ +-------+-------------+
––– input –––
mysql -P9306 -h0 -e "DESCRIBE test2;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": 1,
  "doc": {
    "model": "iPhone 13 Pro",
    "storage_capacity": 256,
    "color": "silver",
    "release_year": 2021,
    "price": 1099.99,
    "discounted_price": 989.99,
    "sold": 1,
    "date_added": 1591362342000,
    "product_codes": [1,2,3],
    "values": [523456764345678976,98765409877866654098,1109876543450987650987],
    "additional_info": {"features": ["ProMotion display", "A15 Bionic chip", "Ceramic Shield front cover"]},
    "vector": [0.773448,0.312478,0.137971,0.459821]
  }
}' | jq '.created'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": 2,
  "doc": {
    "model": "Galaxy S21 Ultra",
    "storage_capacity": 128,
    "color": "black",
    "release_year": 2021,
    "price": 1199.99,
    "discounted_price": 1099.99,
    "sold": 1,
    "date_added": 1609459200000,
    "product_codes": [4,5,6],
    "values": [1234567890123456789,9876543210987654321],
    "additional_info": {"features": ["Dynamic AMOLED 2X", "Exynos 2100", "108MP camera"]},
    "vector": [0.5,0.4,0.3,0.2]
  }
}' | jq '.created'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": 3,
  "doc": {
    "model": "Pixel 6",
    "storage_capacity": 128,
    "color": "white",
    "release_year": 2021,
    "price": 599.99,
    "discounted_price": 549.99,
    "sold": false,
    "date_added": 1630454400000,
    "product_codes": [7,8,9],
    "values": [987654321987654321,123456789123456789],
    "additional_info": {"features": ["Smooth display", "Google Tensor chip", "AI-powered camera"]},
    "vector": [0.8,0.6,0.4,0.2]
  }
}' | jq '.created'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
- +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+------------------------------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
+ +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+---------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
- | id   | model            | storage_capacity | color  | release_year | price       | discounted_price | sold | date_added | product_codes | values                                                     | additional_info                                                                   | vector                              |
+ | id   | model            | storage_capacity | color  | release_year | price       | discounted_price | sold | date_added | product_codes | values                                | additional_info                                                                   | vector                              |
- +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+------------------------------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
+ +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+---------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
- |    1 | iPhone 13 Pro    |              256 | silver |         2021 | 1099.989990 |       989.989990 |    1 | 2224442480 | 1,2,3         | 523456764345678976,9223372036854775807,9223372036854775807 | {"features":["ProMotion display","A15 Bionic chip","Ceramic Shield front cover"]} | 0.773448,0.312478,0.137971,0.459821 |
+ |    1 | iPhone 13 Pro    |              256 | silver |         2021 | 1099.989990 |       989.989990 |    1 | 2224442480 | 1,2,3         | 523456764345678976                    | {"features":["ProMotion display","A15 Bionic chip","Ceramic Shield front cover"]} | 0.773448,0.312478,0.137971,0.459821 |
- |    2 | Galaxy S21 Ultra |              128 | black  |         2021 | 1199.989990 |      1099.989990 |    1 | 3141431296 | 4,5,6         | 1234567890123456789                                        | {"features":["Dynamic AMOLED 2X","Exynos 2100","108MP camera"]}                   | 0.500000,0.400000,0.300000,0.200000 |
+ |    2 | Galaxy S21 Ultra |              128 | black  |         2021 | 1199.989990 |      1099.989990 |    1 | 3141431296 | 4,5,6         | 1234567890123456789                   | {"features":["Dynamic AMOLED 2X","Exynos 2100","108MP camera"]}                   | 0.500000,0.400000,0.300000,0.200000 |
- |    3 | Pixel 6          |              128 | white  |         2021 |  599.989990 |       549.989990 |    0 | 2661794816 | 7,8,9         | 123456789123456789,987654321987654321                      | {"features":["Smooth display","Google Tensor chip","AI-powered camera"]}          | 0.800000,0.600000,0.400000,0.200000 |
+ |    3 | Pixel 6          |              128 | white  |         2021 |  599.989990 |       549.989990 |    0 | 2661794816 | 7,8,9         | 123456789123456789,987654321987654321 | {"features":["Smooth display","Google Tensor chip","AI-powered camera"]}          | 0.800000,0.600000,0.400000,0.200000 |
- +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+------------------------------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
+ +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+---------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
––– input –––
curl -s -X POST http://localhost:9308/replace -d '{
  "table": "test2",
  "id": 1,
  "doc": {
    "model": "Updated Model",
    "storage_capacity": 512,
    "color": "black",
    "release_year": 2022,
    "price": 1399.99,
    "discounted_price": 1299.99,
    "sold": false,
    "date_added": 1630454400000,
    "product_codes": [10,11,12],
    "values": [987654321987654321,123456789123456789],
    "additional_info": {"features": ["New feature 1","New feature 2"]},
    "vector": [0.7,0.8,0.9,1.0]
  }
}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/update -d '{
  "table": "test2",
  "id": 2,
  "doc": {
    "price": 1099.99,
    "discounted_price": 999.99
  }
}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/update -d '{
  "table": "test2",
  "id": 2,
  "doc": {
    "price": 1099.99,
    "discounted_price": 999.99
  }
}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/delete -d '{
  "table": "test2",
  "id": 3
}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/delete -d '{
  "table": "test2",
  "id": 3
}' | jq '.result'
––– output –––
OK
––– input –––
bulk_insert=$(mktemp); echo -e '{ "index": { "_index": "test2", "_id": 4 } }\n{ "id": 4, "model": "iPhone 14", "storage_capacity": 256, "color": "black", "release_year": 2022, "price": 999.99, "discounted_price": 899.99, "sold": 1, "date_added": 1661990400, "product_codes": [19, 20, 21], "values": [1234567890123456789, 9876543210987654321], "additional_info": { "features": ["A16 Bionic", "Dynamic Island"] }, "vector": [0.1, 0.2, 0.3, 0.4] }\n{ "index": { "_index": "test2", "_id": 5 } }\n{ "id": 5, "model": "Pixel 7", "storage_capacity": 128, "color": "white", "release_year": 2022, "price": 699.99, "discounted_price": 649.99, "sold": 0, "date_added": 1661990400, "product_codes": [16, 17, 18], "values": [223344556677889900, 998877665544332211], "additional_info": { "features": ["Tensor G2", "120Hz display"] }, "vector": [0.4, 0.5, 0.6, 0.7] }' > "$bulk_insert"
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_insert" http://localhost:9308/_bulk | jq '.items[] | {index: .index.result, id: .index._id}'
––– output –––
{
  "index": "created",
-   "id": "4"
+   "id": 4
}
{
  "index": "created",
-   "id": "5"
+   "id": 5
}
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
bulk_insert=$(mktemp); echo -e '{"index":{"_index":"test2","_id":6}}\n{"id":6,"model":"OnePlus 10","storage_capacity":256,"color":"blue","release_year":2022,"price":899.99,"discounted_price":849.99,"sold":0,"date_added":1661990400,"product_codes":[22,23,24],"values":[111222333444555666,777888999000111222],"additional_info":{"features":["Snapdragon 8","OxygenOS"]},"vector":[0.2,0.3,0.4,0.5]}\n{"index":{"_index":"test2","_id":7}}\n{"id":7,"model":"Xiaomi 12","storage_capacity":128,"color":"gray","release_year":2022,"price":799.99,"discounted_price":749.99,"sold":1,"date_added":1661990400,"product_codes":[25,26,27],"values":[333444555666777888,999000111222333444],"additional_info":{"features":["MIUI 13","5G"]},"vector":[0.3,0.4,0.5,0.6]}' > "$bulk_insert"; echo $?
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_insert" http://localhost:9308/_bulk | jq '.items[] | {index: .index.result, id: .index._id}'
––– output –––
{
  "index": "created",
-   "id": "6"
+   "id": 6
}
{
  "index": "created",
-   "id": "7"
+   "id": 7
}
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
bulk_update=$(mktemp); echo -e '{"update":{"_index":"test2","_id":6}}\n{"doc":{"price": 799.99, "discounted_price": 749.99}}\n{"update":{"_index":"test2","_id":7}}\n{"doc":{"price": 699.99, "discounted_price": 649.99}}' > "$bulk_update"; echo $?
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_update" http://localhost:9308/_bulk | jq '.items[] | {update: .update.result, id: .update._id}'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
bulk_delete=$(mktemp); echo -e '{"delete":{"_index":"test2","_id":2}}\n{"delete":{"_index":"test2","_id":3}}' > "$bulk_delete"; echo $?
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_delete" http://localhost:9308/_bulk | jq '.items[] | {delete: .delete.result, id: .delete._id}'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
bulk_ops=$(mktemp); echo -e '{"delete":{"_index":"test2","_id":1}}\n{"index":{"_index":"test2","_id":2}}\n{"model":"C","storage_capacity":256,"color":"black","release_year":2023,"price":799.99,"discounted_price":749.99,"sold":0,"date_added":1672531200,"product_codes":[10,11,12],"values":[1234567890123456789,9876543210987654321],"additional_info":{"features":["Feature A","Feature B"]},"vector":[0.5,0.6,0.7,0.8]}\n{"index":{"_index":"test2","_id":17}}\n{"model":"Updated B","storage_capacity":128,"color":"blue","release_year":2024,"price":899.99,"discounted_price":849.99,"sold":1,"date_added":1672531200,"product_codes":[40,41,42],"values":[222222222222222222,333333333333333333],"additional_info":{"features":["Feature X","Feature Y"]},"vector":[0.1,0.2,0.3,0.4]}\n{"update":{"_index":"test2","_id":6}}\n{"doc":{"price":749.99,"discounted_price":699.99}}' > "$bulk_ops"; echo $?
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_ops" http://localhost:9308/_bulk | jq -c '.items[] | {operation: (to_entries | .[0].key), result: (.[].result?), id: (.[]._id?), status: (.[].status?), error: (.[].error?)}'
––– output –––
- {"operation":"delete","result":"deleted","id":"1","status":201,"error":null}
+ {"operation":"delete","result":"deleted","id":1,"status":201,"error":null}
- {"operation":"index","result":"created","id":"2","status":201,"error":null}
+ {"operation":"index","result":"created","id":2,"status":201,"error":null}
- {"operation":"index","result":"created","id":"17","status":201,"error":null}
+ {"operation":"index","result":"created","id":17,"status":201,"error":null}
- {"operation":"update","result":"updated","id":"6","status":201,"error":null}
+ {"operation":"update","result":"updated","id":6,"status":201,"error":null}
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 WHERE id = 4;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DELETE FROM test2 WHERE id BETWEEN 11 AND 20;"; echo $?
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": 4,
  "doc": {
    "model": "Updated iPhone 14",
    "storage_capacity": 512,
    "color": "black",
    "release_year": 2022,
    "price": 1299.99,
    "discounted_price": 1199.99,
    "sold": 1,
    "date_added": 1661990400,
    "product_codes": [19,20,21],
    "values": [1234567890123456789,9876543210987654321],
    "additional_info": {"features": ["A16 Bionic","Dynamic Island","Improved camera"]},
    "vector": [0.1,0.2,0.3,0.4]
  }
}' | jq -e '.error' && echo "Duplicate ID test passed!" || echo "Duplicate ID test failed!"
––– output –––
{
  "type": "action_request_validation_exception",
  "reason": "duplicate id '4'",
-   "table": "test2"
+   "table": "system.test2_s2",
- }
+   "index": "test2"
- Duplicate ID test passed!
+ }
+ Duplicate ID test passed!
––– input –––
(for i in {1..10}; do curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": '$((10 + i))',
  "doc": {
    "model": "Device '$i'",
    "storage_capacity": 64,
    "color": "black",
    "release_year": 2023,
    "price": 499.99,
    "discounted_price": 449.99,
    "sold": "0",
    "date_added": 1672531200,
    "product_codes": [1,2,3],
    "values": [1234567890123456789,9876543210987654321],
    "additional_info": {"features": ["Feature 1","Feature 2"]},
    "vector": [0.1,0.2,0.3,0.4]
  }
}' & done; wait) | jq -s 'map(select(.created == true)) | length == 10' > /dev/null && echo "Parallel insert test passed!" || echo "Parallel insert test failed!"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 WHERE id BETWEEN 11 AND 20;"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/replication/test-replication-with-mysqldump test/clt-tests/replication/test-replication test/clt-tests/replication/test-sst-progress test/clt-tests/replication/test-stale-cluster-drop-after-rejoin test/clt-tests/replication/test-stale-cluster-drop-after-rejoin_v2 test/clt-tests/replication/test-update-disabled-si-warning test/clt-tests/sharding/cluster/attach-table-while-joining-cluster test/clt-tests/sharding/cluster/join-cluster-while-attaching-table test/clt-tests/sharding/cluster/join-cluster-while-creating-another test/clt-tests/sharding/cluster/join-cluster-while-joining-another test/clt-tests/sharding/cluster/join-multiple-clusters-on-same-node test/clt-tests/sharding/cluster/multiple-join-single-alter-cluster test/clt-tests/sharding/cluster/test-drop-sharded-clustering-table
✅ OK: 14
❌ Failed: 1
⏳ Duration: 225s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/cluster/test-drop-sharded-clustering-table.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:tbl1(id bigint) shards='3' rf='2';"; echo $?;
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
=== Node 1306 ===
*************************** 1. row ***************************
Table: tbl1
- Type: shard
+ Type: distributed
=== Node 2306 ===
*************************** 1. row ***************************
Table: tbl1
- Type: shard
+ Type: distributed
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:tbl1;"; echo $?;
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:Tbl2(id bigint) shards='3' rf='1';"; echo $?
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
=== Node 1306 ===
*************************** 1. row ***************************
Table: tbl2
- Type: shard
+ Type: distributed
=== Node 2306 ===
*************************** 1. row ***************************
Table: tbl2
- Type: shard
+ Type: distributed
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:Tbl2;"; echo $?
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:tbl_missing_type(id) shards='3' rf='1';"
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
=== Node 1306 ===
*************************** 1. row ***************************
Table: tbl_missing_type
- Type: shard
+ Type: distributed
=== Node 2306 ===
*************************** 1. row ***************************
Table: tbl_missing_type
- Type: shard
+ Type: distributed
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:tbl_missing_type;"; echo $?
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
OK
––– input –––
LONG_TABLE_NAME=$(printf "tbl%065d" 1)
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:${LONG_TABLE_NAME}(id bigint) shards='3' rf='1';"
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
=== Node 1306 ===
*************************** 1. row ***************************
Table: tbl00000000000000000000000000000000000000000000000000000000000000001
- Type: shard
+ Type: distributed
=== Node 2306 ===
*************************** 1. row ***************************
Table: tbl00000000000000000000000000000000000000000000000000000000000000001
- Type: shard
+ Type: distributed
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:${LONG_TABLE_NAME};"
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:nonexistent_table;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE nonexistent_cluster:tbl1;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:tbl1;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${CLUSTER_NAME}:tbl1 VALUES (1);" & sleep 1; mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:tbl1;"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/sharding/regression/test-create-extra-option-clustered test/clt-tests/sharding/regression/test-create-extra-option-local test/clt-tests/sharding/regression/test-create-if-not-exists-clustered test/clt-tests/sharding/regression/test-create-if-not-exists-local test/clt-tests/sharding/regression/test-drop-clears-internal-cluster test/clt-tests/sharding/regression/test-drop-cluster-prefixed-regular-table test/clt-tests/sharding/regression/test-drop-non-primary-fastfail test/clt-tests/sharding/regression/test-drop-partial-outage-fastfail test/clt-tests/sharding/regression/test-drop-unprefixed-clustered test/clt-tests/sharding/regression/test-empty-option-value test/clt-tests/sharding/regression/test-flush-ramchunk-public-sharded test/clt-tests/sharding/regression/test-knn-shard-no-crash test/clt-tests/sharding/regression/test-local-shard-on-cluster-node
✅ OK: 0
❌ Failed: 13
⏳ Duration: 230s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/regression/test-create-extra-option-clustered.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t29(title text) min_infix_len='3' shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show create table t29\G" | grep -E "min_infix_len|shards="
––– output –––
- ) min_infix_len='3' shards='2' rf='2'
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
––– input –––
mysql -h0 -P1306 -e "insert into t29(id,title) values(1,'one');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) c from t29 where id>0;"
––– output –––
OK
test/clt-tests/sharding/regression/test-knn-shard-no-crash.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t8(title text, vector float_vector knn_type='hnsw' knn_dims='4' hnsw_similarity='l2') shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
for i in $(seq 1 30); do s=$(mysql -h0 -P1306 -N -B -e "show sharding status t8" 2>/dev/null); echo "$s" | grep -q active && ! echo "$s" | grep -q pending && break; sleep 1; done; sleep 2; echo waited
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t8(id,title,vector) values(1,'one',(0.1,0.2,0.3,0.4)),(2,'two',(0.2,0.1,0.4,0.3));"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Failed to insert docs
+ 1
––– input –––
mysql -h0 -P1306 -N -B -e "select id from t8 where knn(vector, 2, (0.1,0.2,0.3,0.4)) order by knn_dist() asc;" 2>&1 | tr -d ' |+-' | grep -v '^$'
––– output –––
- 1
- 2
––– input –––
sleep 1; mysql -h0 -P1306 -e "show status like 'uptime';" | grep uptime | awk '{print ($2 > 0) ? "uptime_positive" : "uptime_zero"}'
––– output –––
OK
test/clt-tests/sharding/regression/test-flush-ramchunk-public-sharded.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t26(id bigint, title text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t26(id,title) values(1,'a'),(2,'b'),(3,'c');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "flush ramchunk t26;"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: FLUSH RAMCHUNK requires an existing RT table
+ 1
––– input –––
mysql -h0 -P1306 -e "select count(*) c from t26 where id>0;"
––– output –––
OK
test/clt-tests/sharding/regression/test-local-shard-on-cluster-node.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:seed(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table local_on_cluster(id bigint, body text) shards='2' rf='1';"
––– output –––
- ERROR 1064 (42000) at line 1: Local sharded tables cannot be created on a node that is part of a replication cluster ('c'). Use CREATE TABLE c:local_on_cluster instead.
––– input –––
mysql -h0 -P1306 -e "show tables like 'local_on_cluster';"
––– output –––
+ +------------------+-------------+
+ | Table            | Type        |
+ +------------------+-------------+
+ | local_on_cluster | distributed |
+ +------------------+-------------+
test/clt-tests/sharding/regression/test-create-extra-option-local.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t25(title text) min_infix_len='3' shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show tables like 't25';"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | t25   | shard |
+ | t25   | distributed |
- +-------+-------+
+ +-------+-------------+
––– input –––
mysql -h0 -P1306 -e "show create table t25\G" | grep -E "min_infix_len|shards="
––– output –––
- ) min_infix_len='3' shards='2' rf='1'
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
––– input –––
mysql -h0 -P1306 -e "insert into t25(id,title) values(1,'one'),(2,'two');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) c from t25 where id>0;"
––– output –––
OK
test/clt-tests/sharding/regression/test-empty-option-value.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t21(id bigint, body text) shards='' rf='1';"
––– output –––
- ERROR 1064 (42000) at line 1: Parameter 'shards' requires to have a value
+ ERROR 1064 (42000) at line 1: Invalid shards or rf options are set
––– input –––
mysql -h0 -P1306 -e "show tables like 't21';"
––– output –––
OK
test/clt-tests/sharding/regression/test-create-if-not-exists-local.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t2(id bigint, body text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t2(id bigint, body text) shards='2' rf='1';"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table if not exists t2(id bigint, body text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show tables like 't2';"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | t2    | shard |
+ | t2    | distributed |
- +-------+-------+
+ +-------+-------------+
test/clt-tests/sharding/regression/test-drop-partial-outage-fastfail.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table c:t20(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t20(id,body) values(1,'a'),(2,'b');"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
for _ in $(seq 1 60); do v=$(mysql -h0 -P1306 -e "show status like 'cluster_c_size'" | awk 'NR==4{print $4}'); [ "$v" = "1" ] && break; sleep 1; done; echo "size=$v"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table c:t20;"
––– output –––
- ERROR 1064 (42000) at line 1: cluster 'c' has unreachable members (1 of 2 alive): refusing to DROP — retry when the cluster is fully synced
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
––– input –––
mysql -h0 -P1306 -e "select count(*) c from system.sharding_table where table='t20'"
––– output –––
+------+
| c    |
+------+
- |    2 |
+ |    0 |
+------+
––– input –––
mysql -h0 -P1306 -e "show tables like 't20';"
––– output –––
- +-------+-------+
- | Table | Type  |
- +-------+-------+
- | t20   | shard |
- +-------+-------+
test/clt-tests/sharding/regression/test-drop-clears-internal-cluster.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t5(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_%_indexes';" | grep -cE "^\| cluster_[a-f0-9]{32}_indexes"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table ${CLUSTER_NAME}:t5;"; echo $?
––– output –––
OK
––– input –––
sleep 5; mysql -h0 -P1306 -e "show status like 'cluster_%_indexes';" | grep -cE "^\| cluster_[a-f0-9]{32}_indexes"
––– output –––
- 0
+ 1
test/clt-tests/sharding/regression/test-create-if-not-exists-clustered.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t4(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t4(id bigint, body text) shards='2' rf='2';"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table if not exists ${CLUSTER_NAME}:t4(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: You cannot set rf greater than 1 when creating single node sharded table.
+ 1
––– input –––
mysql -h0 -P1306 -e "show tables like 't4';"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | t4    | shard |
+ | t4    | distributed |
- +-------+-------+
+ +-------+-------------+
test/clt-tests/sharding/regression/test-drop-unprefixed-clustered.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t6(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table t6;"
––– output –––
- ERROR 1064 (42000) at line 1: table 't6' belongs to cluster 'c': use DROP TABLE c:t6
––– input –––
mysql -h0 -P1306 -e "show tables like 't6';"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | t6    | shard |
+ | t6    | distributed |
- +-------+-------+
+ +-------+-------------+
test/clt-tests/sharding/regression/test-drop-non-primary-fastfail.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table c:tnp(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
kill -9 $(cat /var/log/manticore-2/searchd.pid) $(cat /var/log/manticore-3/searchd.pid)
––– output –––
OK
––– input –––
for _ in $(seq 1 60); do v=$(mysql -h0 -P1306 -e "show status like 'cluster_c_status'" | awk 'NR==4{print $4}'); [ "$v" = "non-primary" ] && break; sleep 1; done; echo "status=$v"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table c:tnp;"
––– output –––
- ERROR 1064 (42000) at line 1: cluster 'c' is not in primary view (status='non-primary'): refusing to DROP — retry when the cluster is fully synced
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
test/clt-tests/sharding/regression/test-drop-cluster-prefixed-regular-table.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table plain_rt(id bigint, body text);"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "alter cluster ${CLUSTER_NAME} add plain_rt;"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table ${CLUSTER_NAME}:plain_rt;"
––– output –––
- ERROR 1064 (42000) at line 1: table 'plain_rt' is a regular table in cluster 'c': use ALTER CLUSTER c DROP plain_rt to remove it from the cluster, then DROP TABLE plain_rt
+ ERROR 1064 (42000) at line 1: table 'plain_rt' is not sharded: DROP SHARDED TABLE failed: table 'plain_rt' must be sharded

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/sharding/functional/functional-sharding-and-cluster-negative test/clt-tests/sharding/functional/functional-sharding-positive test/clt-tests/sharding/functional/test-dist-table-shards-5000 test/clt-tests/sharding/replication/create-table-1-node-10-shards test/clt-tests/sharding/replication/create-table-2-nodes-4-shards test/clt-tests/sharding/replication/create-table-3-nodes-6-shards test/clt-tests/sharding/replication/create-table-5-nodes-60-shards test/clt-tests/sharding/replication/test-data-manipulation test/clt-tests/sharding/replication/test-distributed-inserts-with-replication test/clt-tests/sharding/replication/test-multi-node-sharding-and-replication test/clt-tests/sharding/syntax/sharding-syntax-negative test/clt-tests/sharding/syntax/sharding-syntax-positive test/clt-tests/sharding/rollback/automatic-rollback-on-creation-failure
✅ OK: 8
❌ Failed: 5
⏳ Duration: 304s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/replication/test-distributed-inserts-with-replication.rec
––– input –––
apt-get install -y jq > /dev/null; echo $?
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log;fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log;fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=replication
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE CLUSTER ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "JOIN CLUSTER ${CLUSTER_NAME} AT '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "SHOW STATUS LIKE 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for port in 1306 2306; do echo "Checking status for port $port:"; timeout 10 bash -c "while ! mysql -h0 -P$port -e \"SHOW STATUS LIKE 'cluster_replication_node_state'\G\" | grep -q 'Value: synced'; do sleep 1; done" && echo "Port $port: Node is synced." || echo "Port $port: Node is not synced (Value: closed or other)."; done
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS test2;"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE replication:test2 (id BIGINT, model TEXT, storage_capacity INTEGER, color STRING, release_year INTEGER, price FLOAT, discounted_price FLOAT, sold BOOL, date_added TIMESTAMP, product_codes MULTI, values MULTI64, additional_info JSON, vector FLOAT_VECTOR KNN_TYPE='hnsw' KNN_DIMS='4' HNSW_SIMILARITY='l2') SHARDS='3' RF='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_replication_node_state'\G"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SHOW TABLES FROM SYSTEM\G"
––– output –––
OK
––– input –––
mysql -h0 -P2306 -e "SHOW TABLES FROM SYSTEM\G"
––– output –––
OK
––– input –––
mysql -P1306 -h0 -e "SHOW TABLES;"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | test2 | shard |
+ | test2 | distributed |
- +-------+-------+
+ +-------+-------------+
––– input –––
mysql -P2306 -h0 -e "SHOW TABLES;"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | test2 | shard |
+ | test2 | distributed |
- +-------+-------+
+ +-------+-------------+
––– input –––
mysql -P1306 -h0 -e "DESCRIBE test2;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": 1, "doc": {"model": "iPhone 13 Pro", "storage_capacity": 256, "color": "silver", "release_year": 2021, "price": 1099.99, "discounted_price": 989.99, "sold": 1, "date_added": 1591362342000, "product_codes": [1,2,3], "values": [523456764345678976], "additional_info": {"features": ["ProMotion display", "A15 Bionic chip"]}, "vector": [0.773448,0.312478,0.137971,0.459821]}}' | jq '.result'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": 2, "doc": {"model": "Galaxy S21 Ultra", "storage_capacity": 128, "color": "black", "release_year": 2021, "price": 1199.99, "discounted_price": 1099.99, "sold": 1, "date_added": 1609459200000, "product_codes": [4,5,6], "values": [1234567890123456789], "additional_info": {"features": ["Dynamic AMOLED 2X", "Exynos 2100"]}, "vector": [0.5,0.4,0.3,0.2]}}' | jq '.result'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": 3, "doc": {"model": "Pixel 6", "storage_capacity": 128, "color": "white", "release_year": 2021, "price": 599.99, "discounted_price": 549.99, "sold": false, "date_added": 1630454400000, "product_codes": [7,8,9], "values": [987654321987654321], "additional_info": {"features": ["Smooth display", "Google Tensor chip"]}, "vector": [0.8,0.6,0.4,0.2]}}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/replace -d '{"table": "test2", "id": 1, "doc": {"model": "Updated Model", "storage_capacity": 512, "color": "black", "release_year": 2022, "price": 1399.99, "discounted_price": 1299.99, "sold": false, "date_added": 1630454400000, "product_codes": [10,11,12], "values": [987654321987654321], "additional_info": {"features": ["New feature 1", "New feature 2"]}, "vector": [0.7,0.8,0.9,1.0]}}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/update -d '{"table": "test2", "id": 2, "doc": {"price": 1099.99, "discounted_price": 999.99}}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/update -d '{"table": "test2", "id": 2, "doc": {"price": 1099.99, "discounted_price": 999.99}}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/delete -d '{"table": "test2", "id": 3}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/delete -d '{"table": "test2", "id": 3}' | jq '.result'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": 4, "doc": {"model": "Updated iPhone 14", "storage_capacity": 512, "color": "black", "release_year": 2022, "price": 1299.99, "discounted_price": 1199.99, "sold": 1, "date_added": 1661990400, "product_codes": [19,20,21], "values": [1234567890123456789],"additional_info": {"features": ["A16 Bionic","Dynamic Island","Improved camera"]},"vector": [0.1,0.2,0.3,0.4]}}' | jq -e '.error' && echo "Duplicate ID test passed!" || echo "Duplicate ID test failed!"
––– output –––
OK
––– input –––
(for i in {1..10}; do curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": '$((10 + $i))', "doc": {"model": "Device '$i'", "storage_capacity": 64, "color": "black", "release_year": 2023, "price": 499.99, "discounted_price": 449.99, "sold": 0, "date_added": 1672531200, "product_codes": [1,2,3], "values": [1234567890123456789], "additional_info": {"features": ["Feature 1","Feature 2"]}, "vector": [0.1,0.2,0.3,0.4]}}' & done; wait) | jq -s 'map(select(.created == true)) | length == 10' > /dev/null && echo "Parallel insert test passed!" || echo "Parallel insert test failed!"
––– output –––
OK
––– input –––
sleep 2; mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
sleep 2; mysql -h0 -P1306 -e "SELECT * FROM test2 WHERE id BETWEEN 11 AND 20 ORDER BY id ASC;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 WHERE id = 20;"
––– output –––
OK
––– input –––
rm -f bulk.json bulk_insert.json bulk_update.json bulk_delete.json bulk_operations.json; if [[ ! -f bulk.json && ! -f bulk_insert.json && ! -f bulk_update.json && ! -f bulk_delete.json && ! -f bulk_operations.json ]]; then echo "All temporary files deleted successfully."; else echo "Error: Some temporary files were not deleted."; fi
––– output –––
OK
test/clt-tests/sharding/syntax/sharding-syntax-positive.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl1"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl2 shards='5' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show create table tbl2"
––– output –––
- +-------+---------------------------------------------------+
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- | Table | Create Table                                      |
- +-------+---------------------------------------------------+
- | tbl2  | CREATE TABLE tbl2 (
- id bigint
- ) shards='5' rf='1' |
- +-------+---------------------------------------------------+
––– input –––
mysql -h0 -P1306 -e "create table tbl3(id bigint) shards='3' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl4(id bigint) SHARDS='4' RF='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl5(id bigint) shards = '2' rf = '1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl6(id bigint) shards='1' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TaBle tbl8(id bigint) ShaRDS='4' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl9 shards='1000' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl10 SHARDS='3' rf='1'"; echo $?
––– output –––
OK
test/clt-tests/sharding/replication/test-multi-node-sharding-and-replication.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=5
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table c:t(id bigint) shards='5' rf='3' timeout='300'" >/dev/null
––– output –––
OK
––– input –––
grep 'started v' /var/log/manticore-{1,2,3,4,5}/searchd.log | cut -d\' -f3 | cut -d: -f3 | wc -l
––– output –––
OK
––– input –––
for i in 1 2 3 4 5; do echo "#{$i}"; mysql -h0 -P${i}306 -e "show create table t option force=1\G" | awk '/^Create Table:/{p=1} p' | xargs; done
––– output –––
#{1}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
#{2}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
#{3}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
#{4}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
#{5}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
test/clt-tests/sharding/syntax/sharding-syntax-negative.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl1(id bigint) shards='a' rf='b'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl2(id bigint) shards='-10' rf='-1'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl3 shards='abc' rf='1';"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl4(id bigint) shards='3"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl5 shards='5' rf'12';"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl6(id bigint) shards='' rf='1'"
––– output –––
- ERROR 1064 (42000) at line 1: Parameter 'shards' requires to have a value
+ ERROR 1064 (42000) at line 1: Invalid shards or rf options are set
––– input –––
mysql -h0 -P1306 -e "create table tbl7(id bigint) shards='5' rf='1' extra"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl8(id bigint) shards='0' rf='0'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl9(id bigint) shards='1.5' rf='2.3'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl10(id bigint) shards '5' rf '1'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl11(id bigint) shards='' rf=''"
––– output –––
- ERROR 1064 (42000) at line 1: Parameter 'shards' requires to have a value
+ ERROR 1064 (42000) at line 1: Invalid shards or rf options are set
––– input –––
mysql -h0 -P1306 -e "create table tbl12(id bigint) shards='5' shards='3' rf='1'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl13(id bigint) shards=\"3\" rf=\"1\""
––– output –––
OK
test/clt-tests/sharding/rollback/automatic-rollback-on-creation-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:test_products (id bigint, name string, price float) shards='2' rf='2'" & sleep 3; export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; sleep 1; echo "Node 2 killed"
––– output –––
- Node 2 killed
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ Node 2 killed
––– input –––
sleep 15; echo "Wait completed"
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 10; mysql -h0 -P2306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as shard_count FROM system.sharding_table WHERE table = 'test_products'"
––– output –––
- +-------------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_table' in search request
- | shard_count |
- +-------------+
- |           2 |
- +-------------+

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/sharding/rollback/data-consistency-multiple-failures test/clt-tests/sharding/rollback/master-node-failure test/clt-tests/sharding/rollback/master-takeover-while-rollback test/clt-tests/sharding/rollback/mixed-rf-tables-node-failure test/clt-tests/sharding/rollback/new-node-addition-rf-replication test/clt-tests/sharding/rollback/node-failure-mid-creation-recovery test/clt-tests/sharding/rollback/node-killed-rf-maintained test/clt-tests/sharding/rollback/node-rejoin-stale-cluster-cleanup test/clt-tests/sharding/rollback/node-removal-rf-maintained test/clt-tests/sharding/rollback/rebalance-master-killed-mid-operation test/clt-tests/sharding/rollback/rf1-no-rebalance-on-failure test/clt-tests/sharding/rollback/sequential-node-failures-high-rf test/clt-tests/sharding/regression/test-columnar-engine-shard
✅ OK: 1
❌ Failed: 12
⏳ Duration: 943s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/rollback/sequential-node-failures-high-rf.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='3' rf='3'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'Widget A'), (2, 'Widget B'), (3, 'Widget C')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 2 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:3312
system.t_s1: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
+ system.t_s2: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:4312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 20 grep -qm1 'Skipping rebalance for table' <(tail -n 100 -f /var/log/manticore-{3,4}/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P3306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
OK
––– input –––
truncate -s 0 /var/log/manticore-3/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-3/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:3312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:4312
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
- |    3 |
- +------+
test/clt-tests/sharding/rollback/master-takeover-while-rollback.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'becoming master' <(tail -n 1000 -f /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 2
––– output –––
OK
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:1312 127.0.0.1:2312
test/clt-tests/sharding/rollback/node-failure-mid-creation-recovery.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:orders (id bigint, total float) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO orders (id, total) VALUES (1, 100), (2, 200)"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
for port in 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 2306: synced
- Port 3306: synced
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 15; for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 1306: synced
- Port 2306: synced
- Port 3306: synced
test/clt-tests/sharding/rollback/data-consistency-multiple-failures.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, account string, amount float, ts int) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, account, amount, ts) VALUES (1, 'ACC001', 100.50, 1000), (2, 'ACC002', 200.75, 2000), (3, 'ACC003', 150.25, 3000), (4, 'ACC001', 300.00, 4000), (5, 'ACC002', 250.50, 5000)"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*), SUM(amount) FROM ${TABLE_NAME}"
––– output –––
- 5	1002.000000
+ +------+-------------+
+ |    5 | 1002.000000 |
+ +------+-------------+
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'becoming master' <(tail -n 1000 -f /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P2306 -e "INSERT INTO ${TABLE_NAME} (id, account, amount, ts) VALUES (6, 'ACC003', 175.00, 6000), (7, 'ACC001', 225.75, 7000)"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: table 't' does not support INSERT
+ 1
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 2
––– output –––
OK
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'becoming master' <(tail -n 1000 -f /var/log/manticore-{1,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 1 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 2
––– output –––
OK
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*), SUM(amount) FROM ${TABLE_NAME}"
––– output –––
- 7	1402.75
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
––– input –––
for port in 1306 2306 3306; do echo "Node $port:"; mysql -h0 -P$port -sN -e "SELECT COUNT(*), SUM(amount) FROM ${TABLE_NAME}"; done
––– output –––
Node 1306:
- 7	1402.75
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
Node 2306:
- 7	1402.75
+ ERROR 1064 (42000) at line 1: table t: agent 127.0.0.1:1312: remote query error: unknown local table(s) 'system.t_s0' in search request;
- Node 3306:
+ table t: agent 127.0.0.1:1312: remote query error: unknown local table(s) 'system.t_s1' in search request
- 7	1402.75
+ Node 3306:
+ +------+------------+
+ |    2 | 301.250000 |
+ +------+------------+
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS ${TABLE_NAME}"; echo $?
––– output –––
OK
test/clt-tests/sharding/rollback/new-node-addition-rf-replication.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:existing_table (id bigint, data string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
for i in 1 2; do mysql -h0 -P${i}306 -sN -e "SELECT COUNT(*) FROM system.sharding_table WHERE table = 'existing_table'"; done
––– output –––
- 2
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_table' in search request
- 2
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_table' in search request
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P3306 -e "JOIN CLUSTER c at '127.0.0.1:1312'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: cluster 'c', no nodes available(127.0.0.1:1312), error: '127.0.0.1:1312': retries limit exceeded
+ 1
––– input –––
for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: Node synced"; done
––– output –––
- Port 1306: Node synced
- Port 2306: Node synced
- Port 3306: Node synced
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM system.sharding_state"
––– output –––
- 3
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_state' in search request
––– input –––
sleep 15; echo "Cluster stabilized"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS existing_table"
––– output –––
OK
test/clt-tests/sharding/rollback/node-rejoin-stale-cluster-cleanup.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'alpha'), (2, 'beta')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: table t: agent 127.0.0.1:1312: receiving failure (errno=111, msg=Connection refused)
- |    2 |
- +------+
––– input –––
truncate -s 0 /var/log/manticore-2/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 90 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
- |    2 |
- +------+
test/clt-tests/sharding/rollback/rf1-no-rebalance-on-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='2' rf='1'"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'Widget A'), (2, 'Widget B'), (3, 'Widget C'), (4, 'Widget D')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as total FROM ${TABLE_NAME}\\G" | grep total
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'Skipping rebalance for table' <(tail -n 1000 -f /var/log/manticore-1/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as cnt FROM ${TABLE_NAME}\\G" | grep -E 'cnt:' | awk '{print $2}'
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 15; for port in 1306 2306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as cnt FROM ${TABLE_NAME}\\G" | grep -E 'cnt:' | awk '{print $2}'
––– output –––
- 4
+ 2
test/clt-tests/sharding/rollback/node-removal-rf-maintained.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:items (id bigint, name string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO items (id, name) VALUES (1, 'Item1'), (2, 'Item2'), (3, 'Item3')"; echo $?
––– output –––
OK
––– input –––
for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 1306: synced
- Port 2306: synced
- Port 3306: synced
––– input –––
mysql -h0 -P1306 -e "show tables from system\\G" | grep -E 'items_s[0-9]' | wc -l
––– output –––
- 2
+ 0
test/clt-tests/sharding/rollback/node-killed-rf-maintained.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:data (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO data (id, value) VALUES (1, 'test1'), (2, 'test2')"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
sleep 10; mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P1306 -e "INSERT INTO data (id, value) VALUES (3, 'test3')"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 20
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P2306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM data"
––– output –––
- 3
+ +------+
+ |    3 |
+ +------+
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM data"
––– output –––
- 3
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'data' in search request
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS data"; echo $?
––– output –––
OK
test/clt-tests/sharding/rollback/master-node-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:data (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
sleep 5; mysql -h0 -P1306 -e "INSERT INTO data (id, value) VALUES (1, 'test_value')"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
for port in 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 2306: synced
- Port 3306: synced
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 15; mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_c_status'\\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 1306: synced
- Port 2306: synced
- Port 3306: synced
test/clt-tests/sharding/rollback/rebalance-master-killed-mid-operation.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='3' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'one'), (2, 'two'), (3, 'three')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:2312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:3312 127.0.0.1:4312
+ system.t_s2: 127.0.0.1:1312 127.0.0.1:3312
––– input –––
export INSTANCE=4; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 4 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 20 grep -qm1 'Rebalancing due to inactive nodes' <(tail -n 100 -f /var/log/manticore-1/searchd.log); echo $?
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Master killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 30 grep -qm1 'becoming master' <(tail -n 100 -f /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
sleep 5
––– output –––
OK
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
+------+
- |    3 |
+ |    0 |
+------+
––– input –––
truncate -s 0 /var/log/manticore-{2,3}/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 90 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:3312 127.0.0.1:2312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:3312 127.0.0.1:2312
+ system.t_s1: 127.0.0.1:2312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:3312 127.0.0.1:2312
+ system.t_s2: 127.0.0.1:1312 127.0.0.1:3312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
+------+
- |    3 |
+ |    0 |
+------+
test/clt-tests/sharding/rollback/mixed-rf-tables-node-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:norep (id bigint, value string) shards='2' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:rep (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO norep (id, value) VALUES (1, 'a'), (2, 'b')"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Failed to insert docs
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO rep (id, value) VALUES (1, 'x'), (2, 'y')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "norep"
––– output –––
- system.norep_s0: 127.0.0.1:1312
+ system.norep_s0: local
- system.norep_s1: 127.0.0.1:2312
+ system.norep_s1: 127.0.0.1:3312
––– input –––
show_shards 1306 "rep"
––– output –––
- system.rep_s0: 127.0.0.1:1312 127.0.0.1:2312
+ system.rep_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.rep_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.rep_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Skipping rebalance for table norep' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "norep"
––– output –––
- system.norep_s0: 127.0.0.1:1312
+ system.norep_s1: 127.0.0.1:3312
- system.norep_s1: 127.0.0.1:2312
––– input –––
show_shards 2306 "rep"
––– output –––
- system.rep_s0: 127.0.0.1:2312 127.0.0.1:3312
+ system.rep_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.rep_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.rep_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM rep"
––– output –––
+------+
- |    2 |
+ |    0 |
+------+
––– input –––
truncate -s 0 /var/log/manticore-2/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 90 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 1306 "norep"
––– output –––
- system.norep_s0: 127.0.0.1:1312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.norep_s1: 127.0.0.1:2312
––– input –––
show_shards 1306 "rep"
––– output –––
- system.rep_s0: 127.0.0.1:1312 127.0.0.1:2312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.rep_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM norep"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'norep' in search request
- |    2 |
- +------+
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM rep"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'rep' in search request
- |    2 |
- +------+

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/mcl/auto-embeddings-voyage-remote test/clt-tests/mcl/knn-missing-embeddings-startup test/clt-tests/http-interface/cli-endpoint test/clt-tests/http-interface/cli-json-endpoint test/clt-tests/http-interface/error-handling test/clt-tests/http-interface/multi-query test/clt-tests/http-interface/show-version-http test/clt-tests/http-interface/show-version-trailing-semicolon test/clt-tests/http-interface/sql-endpoint test/clt-tests/http-interface/sql-mode-raw-endpoint test/clt-tests/http-interface/test-concurrent-requests-to-buddy test/clt-tests/http-interface/test-content-type-header-daemon-only test/clt-tests/http-interface/test-content-type-header-with-buddy
✅ OK: 12
❌ Failed: 1
⏳ Duration: 57s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/http-interface/cli-json-endpoint.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd $SEARCHD_FLAGS > /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, value_attr STRING) min_infix_len = '3' min_prefix_len = '3'; INSERT INTO t VALUES (1, 'example', 'example'), (2, 'test', 'test');"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20version"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20buddy%20plugins" | grep -o Package | wc -l
––– output –––
- 31
+ 30
––– input –––
curl -s "http://localhost:9308/cli_json?select%20*%20from%20t%20where%20match('exmaple')%20option%20fuzzy=1"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20fields%20from%20t"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?create%20table%20t_copy2%20like%20t"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?select%20*%20from%20t%20limit%201"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/sharding/regression/test-optimize-public-sharded test/clt-tests/sharding/regression/test-rf1-3node-agent-layout test/clt-tests/sharding/regression/test-rf2-read-failover test/clt-tests/sharding/regression/test-rf2-restart-recovery test/clt-tests/sharding/regression/test-shard-txn-insert-replace-mix test/clt-tests/sharding/regression/test-timeout-empty-rejected test/clt-tests/sharding/regression/test-timeout-zero-rejected test/clt-tests/sharding/regression/test-truncate-public-sharded test/clt-tests/test-configuration/show-settings test/clt-tests/test-configuration/show-threads test/clt-tests/test-configuration/test-buddy-max-connections-configuration test/clt-tests/test-configuration/test-buddy-requests-not-logged test/clt-tests/test-configuration/test-default-config
✅ OK: 7
❌ Failed: 6
⏳ Duration: 82s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/regression/test-timeout-zero-rejected.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t39(id bigint, title text) shards='2' rf='1' timeout='0';"
––– output –––
- ERROR 1064 (42000) at line 1: You cannot set timeout less than 1 second
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
––– input –––
mysql -h0 -P1306 -e "show tables like 't39';"
––– output –––
+ +-------+-------------+
+ | Table | Type        |
+ +-------+-------------+
+ | t39   | distributed |
+ +-------+-------------+
––– input –––
mysql -h0 -P1306 -e "create table t39_ok(id bigint, title text) shards='2' rf='1' timeout='5';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show tables like 't39_ok';"
––– output –––
- +--------+-------+
+ +--------+-------------+
- | Table  | Type  |
+ | Table  | Type        |
- +--------+-------+
+ +--------+-------------+
- | t39_ok | shard |
+ | t39_ok | distributed |
- +--------+-------+
+ +--------+-------------+
test/clt-tests/sharding/regression/test-timeout-empty-rejected.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t38(id bigint, title text) shards='2' rf='1' timeout='';"
––– output –––
- ERROR 1064 (42000) at line 1: Parameter 'timeout' requires to have a value
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
––– input –––
mysql -h0 -P1306 -e "show tables like 't38';"
––– output –––
+ +-------+-------------+
+ | Table | Type        |
+ +-------+-------------+
+ | t38   | distributed |
+ +-------+-------------+
test/clt-tests/sharding/regression/test-rf1-3node-agent-layout.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t13(id bigint, body text) shards='3' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t13(id,body) values(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f');"; echo $?
––– output –––
OK
––– input –––
sleep 2; mysql -h0 -P1306 -e "select count(*) c from t13 where id>0;" | tail -2 | head -1
––– output –––
OK
––– input –––
mysql -h0 -P2306 -e "select count(*) c from t13 where id>0;" | tail -2 | head -1
––– output –––
- |    6 |
+ |    5 |
––– input –––
mysql -h0 -P3306 -e "select count(*) c from t13 where id>0;" | tail -2 | head -1
––– output –––
- |    6 |
+ |    5 |
test/clt-tests/sharding/regression/test-optimize-public-sharded.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t24(id bigint, title text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t24(id,title) values(1,'a'),(2,'b'),(3,'c');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "optimize table t24;"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: OPTIMIZE TABLE requires an existing RT table
+ 1
––– input –––
mysql -h0 -P1306 -e "select count(*) c from t24 where id>0;"
––– output –––
OK
test/clt-tests/sharding/regression/test-truncate-public-sharded.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t1(id bigint, body text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t1(id,body) values(1,'a'),(2,'b'),(3,'c');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) as c from t1 where id>0;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "truncate table t1;"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Table t1 does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "select count(*) as c from t1 where id>0;"
––– output –––
+------+
| c    |
+------+
- |    0 |
+ |    3 |
+------+
test/clt-tests/sharding/regression/test-rf2-read-failover.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table c:rm(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into rm(id,body) values(1,'a'),(2,'b'),(3,'c'),(4,'d');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) c from rm where id>0;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show create table rm option force=1\G" | grep -o "retry_count=2,ha_strategy=noerrors" | head -1
––– output –––
- retry_count=2,ha_strategy=noerrors
––– input –––
kill -9 $(cat /var/log/manticore-2/searchd.pid); sleep 1
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) c from rm where id>0;"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: table rm: agent 127.0.0.1:2312: receiving failure (errno=111, msg=Connection refused)
- | c    |
- +------+
- |    4 |
- +------+
––– input –––
mysql -h0 -P1306 -e "select count(*) c from rm where id>0;"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/http-interface/test-distributed-inserts test/clt-tests/http-interface/test-fuzzy-search-sql-endpoint test/clt-tests/http-interface/test-inserts test/clt-tests/http-interface/test-manticore-handling-id test/clt-tests/indexer/test-max-iops test/clt-tests/indexer/test-max-iosize test/clt-tests/join/test-avg-select-join test/clt-tests/join/test-join-query-logging-completeness test/clt-tests/kibana/test-kibana-log-to-test-script test/clt-tests/kibana/test-parameter-for-installing-the-kibana-version test/clt-tests/mysqldump/mysql/mcl-all-json test/clt-tests/mysqldump/mysql/mcl-all-multi test/clt-tests/mysqldump/mysql/mcl-all-multi64
✅ OK: 13
❌ Failed: 1
⏳ Duration: 70s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/http-interface/test-distributed-inserts.rec
––– 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 –––
apt-get install -y jq > /dev/null; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS test2;"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test2 (
  id BIGINT,
  model TEXT,
  storage_capacity INTEGER,
  color STRING,
  release_year INTEGER,
  price FLOAT,
  discounted_price FLOAT,
  sold BOOL,
  date_added TIMESTAMP,
  product_codes MULTI,
  values MULTI64,
  additional_info JSON,
  vector FLOAT_VECTOR
    knn_type='hnsw'
    knn_dims='4'
    hnsw_similarity='l2'
) shards='3' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "show tables;"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | test2 | shard |
+ | test2 | distributed |
- +-------+-------+
+ +-------+-------------+
––– input –––
mysql -P9306 -h0 -e "DESCRIBE test2;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": 1,
  "doc": {
    "model": "iPhone 13 Pro",
    "storage_capacity": 256,
    "color": "silver",
    "release_year": 2021,
    "price": 1099.99,
    "discounted_price": 989.99,
    "sold": 1,
    "date_added": 1591362342000,
    "product_codes": [1,2,3],
    "values": [523456764345678976,98765409877866654098,1109876543450987650987],
    "additional_info": {"features": ["ProMotion display", "A15 Bionic chip", "Ceramic Shield front cover"]},
    "vector": [0.773448,0.312478,0.137971,0.459821]
  }
}' | jq '.created'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": 2,
  "doc": {
    "model": "Galaxy S21 Ultra",
    "storage_capacity": 128,
    "color": "black",
    "release_year": 2021,
    "price": 1199.99,
    "discounted_price": 1099.99,
    "sold": 1,
    "date_added": 1609459200000,
    "product_codes": [4,5,6],
    "values": [1234567890123456789,9876543210987654321],
    "additional_info": {"features": ["Dynamic AMOLED 2X", "Exynos 2100", "108MP camera"]},
    "vector": [0.5,0.4,0.3,0.2]
  }
}' | jq '.created'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": 3,
  "doc": {
    "model": "Pixel 6",
    "storage_capacity": 128,
    "color": "white",
    "release_year": 2021,
    "price": 599.99,
    "discounted_price": 549.99,
    "sold": false,
    "date_added": 1630454400000,
    "product_codes": [7,8,9],
    "values": [987654321987654321,123456789123456789],
    "additional_info": {"features": ["Smooth display", "Google Tensor chip", "AI-powered camera"]},
    "vector": [0.8,0.6,0.4,0.2]
  }
}' | jq '.created'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
- +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+------------------------------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
+ +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+---------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
- | id   | model            | storage_capacity | color  | release_year | price       | discounted_price | sold | date_added | product_codes | values                                                     | additional_info                                                                   | vector                              |
+ | id   | model            | storage_capacity | color  | release_year | price       | discounted_price | sold | date_added | product_codes | values                                | additional_info                                                                   | vector                              |
- +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+------------------------------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
+ +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+---------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
- |    1 | iPhone 13 Pro    |              256 | silver |         2021 | 1099.989990 |       989.989990 |    1 | 2224442480 | 1,2,3         | 523456764345678976,9223372036854775807,9223372036854775807 | {"features":["ProMotion display","A15 Bionic chip","Ceramic Shield front cover"]} | 0.773448,0.312478,0.137971,0.459821 |
+ |    1 | iPhone 13 Pro    |              256 | silver |         2021 | 1099.989990 |       989.989990 |    1 | 2224442480 | 1,2,3         | 523456764345678976                    | {"features":["ProMotion display","A15 Bionic chip","Ceramic Shield front cover"]} | 0.773448,0.312478,0.137971,0.459821 |
- |    2 | Galaxy S21 Ultra |              128 | black  |         2021 | 1199.989990 |      1099.989990 |    1 | 3141431296 | 4,5,6         | 1234567890123456789                                        | {"features":["Dynamic AMOLED 2X","Exynos 2100","108MP camera"]}                   | 0.500000,0.400000,0.300000,0.200000 |
+ |    2 | Galaxy S21 Ultra |              128 | black  |         2021 | 1199.989990 |      1099.989990 |    1 | 3141431296 | 4,5,6         | 1234567890123456789                   | {"features":["Dynamic AMOLED 2X","Exynos 2100","108MP camera"]}                   | 0.500000,0.400000,0.300000,0.200000 |
- |    3 | Pixel 6          |              128 | white  |         2021 |  599.989990 |       549.989990 |    0 | 2661794816 | 7,8,9         | 123456789123456789,987654321987654321                      | {"features":["Smooth display","Google Tensor chip","AI-powered camera"]}          | 0.800000,0.600000,0.400000,0.200000 |
+ |    3 | Pixel 6          |              128 | white  |         2021 |  599.989990 |       549.989990 |    0 | 2661794816 | 7,8,9         | 123456789123456789,987654321987654321 | {"features":["Smooth display","Google Tensor chip","AI-powered camera"]}          | 0.800000,0.600000,0.400000,0.200000 |
- +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+------------------------------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
+ +------+------------------+------------------+--------+--------------+-------------+------------------+------+------------+---------------+---------------------------------------+-----------------------------------------------------------------------------------+-------------------------------------+
––– input –––
curl -s -X POST http://localhost:9308/replace -d '{
  "table": "test2",
  "id": 1,
  "doc": {
    "model": "Updated Model",
    "storage_capacity": 512,
    "color": "black",
    "release_year": 2022,
    "price": 1399.99,
    "discounted_price": 1299.99,
    "sold": false,
    "date_added": 1630454400000,
    "product_codes": [10,11,12],
    "values": [987654321987654321,123456789123456789],
    "additional_info": {"features": ["New feature 1","New feature 2"]},
    "vector": [0.7,0.8,0.9,1.0]
  }
}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/update -d '{
  "table": "test2",
  "id": 2,
  "doc": {
    "price": 1099.99,
    "discounted_price": 999.99
  }
}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/update -d '{
  "table": "test2",
  "id": 2,
  "doc": {
    "price": 1099.99,
    "discounted_price": 999.99
  }
}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/delete -d '{
  "table": "test2",
  "id": 3
}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/delete -d '{
  "table": "test2",
  "id": 3
}' | jq '.result'
––– output –––
OK
––– input –––
bulk_insert=$(mktemp); echo -e '{ "index": { "_index": "test2", "_id": 4 } }\n{ "id": 4, "model": "iPhone 14", "storage_capacity": 256, "color": "black", "release_year": 2022, "price": 999.99, "discounted_price": 899.99, "sold": 1, "date_added": 1661990400, "product_codes": [19, 20, 21], "values": [1234567890123456789, 9876543210987654321], "additional_info": { "features": ["A16 Bionic", "Dynamic Island"] }, "vector": [0.1, 0.2, 0.3, 0.4] }\n{ "index": { "_index": "test2", "_id": 5 } }\n{ "id": 5, "model": "Pixel 7", "storage_capacity": 128, "color": "white", "release_year": 2022, "price": 699.99, "discounted_price": 649.99, "sold": 0, "date_added": 1661990400, "product_codes": [16, 17, 18], "values": [223344556677889900, 998877665544332211], "additional_info": { "features": ["Tensor G2", "120Hz display"] }, "vector": [0.4, 0.5, 0.6, 0.7] }' > "$bulk_insert"
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_insert" http://localhost:9308/_bulk | jq '.items[] | {index: .index.result, id: .index._id}'
––– output –––
{
  "index": "created",
-   "id": "4"
+   "id": 4
}
{
  "index": "created",
-   "id": "5"
+   "id": 5
}
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
bulk_insert=$(mktemp); echo -e '{"index":{"_index":"test2","_id":6}}\n{"id":6,"model":"OnePlus 10","storage_capacity":256,"color":"blue","release_year":2022,"price":899.99,"discounted_price":849.99,"sold":0,"date_added":1661990400,"product_codes":[22,23,24],"values":[111222333444555666,777888999000111222],"additional_info":{"features":["Snapdragon 8","OxygenOS"]},"vector":[0.2,0.3,0.4,0.5]}\n{"index":{"_index":"test2","_id":7}}\n{"id":7,"model":"Xiaomi 12","storage_capacity":128,"color":"gray","release_year":2022,"price":799.99,"discounted_price":749.99,"sold":1,"date_added":1661990400,"product_codes":[25,26,27],"values":[333444555666777888,999000111222333444],"additional_info":{"features":["MIUI 13","5G"]},"vector":[0.3,0.4,0.5,0.6]}' > "$bulk_insert"; echo $?
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_insert" http://localhost:9308/_bulk | jq '.items[] | {index: .index.result, id: .index._id}'
––– output –––
{
  "index": "created",
-   "id": "6"
+   "id": 6
}
{
  "index": "created",
-   "id": "7"
+   "id": 7
}
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
bulk_update=$(mktemp); echo -e '{"update":{"_index":"test2","_id":6}}\n{"doc":{"price": 799.99, "discounted_price": 749.99}}\n{"update":{"_index":"test2","_id":7}}\n{"doc":{"price": 699.99, "discounted_price": 649.99}}' > "$bulk_update"; echo $?
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_update" http://localhost:9308/_bulk | jq '.items[] | {update: .update.result, id: .update._id}'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
bulk_delete=$(mktemp); echo -e '{"delete":{"_index":"test2","_id":2}}\n{"delete":{"_index":"test2","_id":3}}' > "$bulk_delete"; echo $?
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_delete" http://localhost:9308/_bulk | jq '.items[] | {delete: .delete.result, id: .delete._id}'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 order by id asc;"
––– output –––
OK
––– input –––
bulk_ops=$(mktemp); echo -e '{"delete":{"_index":"test2","_id":1}}\n{"index":{"_index":"test2","_id":2}}\n{"model":"C","storage_capacity":256,"color":"black","release_year":2023,"price":799.99,"discounted_price":749.99,"sold":0,"date_added":1672531200,"product_codes":[10,11,12],"values":[1234567890123456789,9876543210987654321],"additional_info":{"features":["Feature A","Feature B"]},"vector":[0.5,0.6,0.7,0.8]}\n{"index":{"_index":"test2","_id":17}}\n{"model":"Updated B","storage_capacity":128,"color":"blue","release_year":2024,"price":899.99,"discounted_price":849.99,"sold":1,"date_added":1672531200,"product_codes":[40,41,42],"values":[222222222222222222,333333333333333333],"additional_info":{"features":["Feature X","Feature Y"]},"vector":[0.1,0.2,0.3,0.4]}\n{"update":{"_index":"test2","_id":6}}\n{"doc":{"price":749.99,"discounted_price":699.99}}' > "$bulk_ops"; echo $?
––– output –––
OK
––– input –––
curl -s -H 'Content-type: application/x-ndjson' --data-binary @"$bulk_ops" http://localhost:9308/_bulk | jq -c '.items[] | {operation: (to_entries | .[0].key), result: (.[].result?), id: (.[]._id?), status: (.[].status?), error: (.[].error?)}'
––– output –––
- {"operation":"delete","result":"deleted","id":"1","status":201,"error":null}
+ {"operation":"delete","result":"deleted","id":1,"status":201,"error":null}
- {"operation":"index","result":"created","id":"2","status":201,"error":null}
+ {"operation":"index","result":"created","id":2,"status":201,"error":null}
- {"operation":"index","result":"created","id":"17","status":201,"error":null}
+ {"operation":"index","result":"created","id":17,"status":201,"error":null}
- {"operation":"update","result":"updated","id":"6","status":201,"error":null}
+ {"operation":"update","result":"updated","id":6,"status":201,"error":null}
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 WHERE id = 4;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DELETE FROM test2 WHERE id BETWEEN 11 AND 20;"; echo $?
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": 4,
  "doc": {
    "model": "Updated iPhone 14",
    "storage_capacity": 512,
    "color": "black",
    "release_year": 2022,
    "price": 1299.99,
    "discounted_price": 1199.99,
    "sold": 1,
    "date_added": 1661990400,
    "product_codes": [19,20,21],
    "values": [1234567890123456789,9876543210987654321],
    "additional_info": {"features": ["A16 Bionic","Dynamic Island","Improved camera"]},
    "vector": [0.1,0.2,0.3,0.4]
  }
}' | jq -e '.error' && echo "Duplicate ID test passed!" || echo "Duplicate ID test failed!"
––– output –––
{
  "type": "action_request_validation_exception",
  "reason": "duplicate id '4'",
-   "table": "test2"
+   "table": "system.test2_s2",
- }
+   "index": "test2"
- Duplicate ID test passed!
+ }
+ Duplicate ID test passed!
––– input –––
(for i in {1..10}; do curl -s -X POST http://localhost:9308/insert -d '{
  "table": "test2",
  "id": '$((10 + i))',
  "doc": {
    "model": "Device '$i'",
    "storage_capacity": 64,
    "color": "black",
    "release_year": 2023,
    "price": 499.99,
    "discounted_price": 449.99,
    "sold": "0",
    "date_added": 1672531200,
    "product_codes": [1,2,3],
    "values": [1234567890123456789,9876543210987654321],
    "additional_info": {"features": ["Feature 1","Feature 2"]},
    "vector": [0.1,0.2,0.3,0.4]
  }
}' & done; wait) | jq -s 'map(select(.created == true)) | length == 10' > /dev/null && echo "Parallel insert test passed!" || echo "Parallel insert test failed!"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test2 WHERE id BETWEEN 11 AND 20;"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/replication/test-replication-with-mysqldump test/clt-tests/replication/test-replication test/clt-tests/replication/test-sst-progress test/clt-tests/replication/test-stale-cluster-drop-after-rejoin test/clt-tests/replication/test-stale-cluster-drop-after-rejoin_v2 test/clt-tests/replication/test-update-disabled-si-warning test/clt-tests/sharding/cluster/attach-table-while-joining-cluster test/clt-tests/sharding/cluster/join-cluster-while-attaching-table test/clt-tests/sharding/cluster/join-cluster-while-creating-another test/clt-tests/sharding/cluster/join-cluster-while-joining-another test/clt-tests/sharding/cluster/join-multiple-clusters-on-same-node test/clt-tests/sharding/cluster/multiple-join-single-alter-cluster test/clt-tests/sharding/cluster/test-drop-sharded-clustering-table
✅ OK: 14
❌ Failed: 1
⏳ Duration: 232s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/cluster/test-drop-sharded-clustering-table.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:tbl1(id bigint) shards='3' rf='2';"; echo $?;
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
=== Node 1306 ===
*************************** 1. row ***************************
Table: tbl1
- Type: shard
+ Type: distributed
=== Node 2306 ===
*************************** 1. row ***************************
Table: tbl1
- Type: shard
+ Type: distributed
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:tbl1;"; echo $?;
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:Tbl2(id bigint) shards='3' rf='1';"; echo $?
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
=== Node 1306 ===
*************************** 1. row ***************************
Table: tbl2
- Type: shard
+ Type: distributed
=== Node 2306 ===
*************************** 1. row ***************************
Table: tbl2
- Type: shard
+ Type: distributed
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:Tbl2;"; echo $?
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:tbl_missing_type(id) shards='3' rf='1';"
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
=== Node 1306 ===
*************************** 1. row ***************************
Table: tbl_missing_type
- Type: shard
+ Type: distributed
=== Node 2306 ===
*************************** 1. row ***************************
Table: tbl_missing_type
- Type: shard
+ Type: distributed
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:tbl_missing_type;"; echo $?
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
OK
––– input –––
LONG_TABLE_NAME=$(printf "tbl%065d" 1)
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:${LONG_TABLE_NAME}(id bigint) shards='3' rf='1';"
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
=== Node 1306 ===
*************************** 1. row ***************************
Table: tbl00000000000000000000000000000000000000000000000000000000000000001
- Type: shard
+ Type: distributed
=== Node 2306 ===
*************************** 1. row ***************************
Table: tbl00000000000000000000000000000000000000000000000000000000000000001
- Type: shard
+ Type: distributed
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:${LONG_TABLE_NAME};"
––– output –––
OK
––– input –––
echo "=== Node 1306 ==="; mysql -h0 -P1306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 1306 failed!"; echo "=== Node 2306 ==="; mysql -h0 -P2306 -e "SHOW TABLES\G" | sed 's/^[[:space:]]*//' || echo "Node 2306 failed!"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:nonexistent_table;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE nonexistent_cluster:tbl1;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:tbl1;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${CLUSTER_NAME}:tbl1 VALUES (1);" & sleep 1; mysql -h0 -P1306 -e "DROP TABLE ${CLUSTER_NAME}:tbl1;"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/sharding/functional/functional-sharding-and-cluster-negative test/clt-tests/sharding/functional/functional-sharding-positive test/clt-tests/sharding/functional/test-dist-table-shards-5000 test/clt-tests/sharding/replication/create-table-1-node-10-shards test/clt-tests/sharding/replication/create-table-2-nodes-4-shards test/clt-tests/sharding/replication/create-table-3-nodes-6-shards test/clt-tests/sharding/replication/create-table-5-nodes-60-shards test/clt-tests/sharding/replication/test-data-manipulation test/clt-tests/sharding/replication/test-distributed-inserts-with-replication test/clt-tests/sharding/replication/test-multi-node-sharding-and-replication test/clt-tests/sharding/syntax/sharding-syntax-negative test/clt-tests/sharding/syntax/sharding-syntax-positive test/clt-tests/sharding/rollback/automatic-rollback-on-creation-failure
✅ OK: 8
❌ Failed: 5
⏳ Duration: 280s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/replication/test-distributed-inserts-with-replication.rec
––– input –––
apt-get install -y jq > /dev/null; echo $?
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log;fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log;fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=replication
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE CLUSTER ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "JOIN CLUSTER ${CLUSTER_NAME} AT '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "SHOW STATUS LIKE 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for port in 1306 2306; do echo "Checking status for port $port:"; timeout 10 bash -c "while ! mysql -h0 -P$port -e \"SHOW STATUS LIKE 'cluster_replication_node_state'\G\" | grep -q 'Value: synced'; do sleep 1; done" && echo "Port $port: Node is synced." || echo "Port $port: Node is not synced (Value: closed or other)."; done
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS test2;"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE replication:test2 (id BIGINT, model TEXT, storage_capacity INTEGER, color STRING, release_year INTEGER, price FLOAT, discounted_price FLOAT, sold BOOL, date_added TIMESTAMP, product_codes MULTI, values MULTI64, additional_info JSON, vector FLOAT_VECTOR KNN_TYPE='hnsw' KNN_DIMS='4' HNSW_SIMILARITY='l2') SHARDS='3' RF='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_replication_node_state'\G"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SHOW TABLES FROM SYSTEM\G"
––– output –––
OK
––– input –––
mysql -h0 -P2306 -e "SHOW TABLES FROM SYSTEM\G"
––– output –––
OK
––– input –––
mysql -P1306 -h0 -e "SHOW TABLES;"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | test2 | shard |
+ | test2 | distributed |
- +-------+-------+
+ +-------+-------------+
––– input –––
mysql -P2306 -h0 -e "SHOW TABLES;"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | test2 | shard |
+ | test2 | distributed |
- +-------+-------+
+ +-------+-------------+
––– input –––
mysql -P1306 -h0 -e "DESCRIBE test2;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": 1, "doc": {"model": "iPhone 13 Pro", "storage_capacity": 256, "color": "silver", "release_year": 2021, "price": 1099.99, "discounted_price": 989.99, "sold": 1, "date_added": 1591362342000, "product_codes": [1,2,3], "values": [523456764345678976], "additional_info": {"features": ["ProMotion display", "A15 Bionic chip"]}, "vector": [0.773448,0.312478,0.137971,0.459821]}}' | jq '.result'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": 2, "doc": {"model": "Galaxy S21 Ultra", "storage_capacity": 128, "color": "black", "release_year": 2021, "price": 1199.99, "discounted_price": 1099.99, "sold": 1, "date_added": 1609459200000, "product_codes": [4,5,6], "values": [1234567890123456789], "additional_info": {"features": ["Dynamic AMOLED 2X", "Exynos 2100"]}, "vector": [0.5,0.4,0.3,0.2]}}' | jq '.result'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": 3, "doc": {"model": "Pixel 6", "storage_capacity": 128, "color": "white", "release_year": 2021, "price": 599.99, "discounted_price": 549.99, "sold": false, "date_added": 1630454400000, "product_codes": [7,8,9], "values": [987654321987654321], "additional_info": {"features": ["Smooth display", "Google Tensor chip"]}, "vector": [0.8,0.6,0.4,0.2]}}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/replace -d '{"table": "test2", "id": 1, "doc": {"model": "Updated Model", "storage_capacity": 512, "color": "black", "release_year": 2022, "price": 1399.99, "discounted_price": 1299.99, "sold": false, "date_added": 1630454400000, "product_codes": [10,11,12], "values": [987654321987654321], "additional_info": {"features": ["New feature 1", "New feature 2"]}, "vector": [0.7,0.8,0.9,1.0]}}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/update -d '{"table": "test2", "id": 2, "doc": {"price": 1099.99, "discounted_price": 999.99}}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/update -d '{"table": "test2", "id": 2, "doc": {"price": 1099.99, "discounted_price": 999.99}}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/delete -d '{"table": "test2", "id": 3}' | jq '.result'
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/delete -d '{"table": "test2", "id": 3}' | jq '.result'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": 4, "doc": {"model": "Updated iPhone 14", "storage_capacity": 512, "color": "black", "release_year": 2022, "price": 1299.99, "discounted_price": 1199.99, "sold": 1, "date_added": 1661990400, "product_codes": [19,20,21], "values": [1234567890123456789],"additional_info": {"features": ["A16 Bionic","Dynamic Island","Improved camera"]},"vector": [0.1,0.2,0.3,0.4]}}' | jq -e '.error' && echo "Duplicate ID test passed!" || echo "Duplicate ID test failed!"
––– output –––
OK
––– input –––
(for i in {1..10}; do curl -s -X POST http://localhost:1308/insert -d '{"table": "test2", "id": '$((10 + $i))', "doc": {"model": "Device '$i'", "storage_capacity": 64, "color": "black", "release_year": 2023, "price": 499.99, "discounted_price": 449.99, "sold": 0, "date_added": 1672531200, "product_codes": [1,2,3], "values": [1234567890123456789], "additional_info": {"features": ["Feature 1","Feature 2"]}, "vector": [0.1,0.2,0.3,0.4]}}' & done; wait) | jq -s 'map(select(.created == true)) | length == 10' > /dev/null && echo "Parallel insert test passed!" || echo "Parallel insert test failed!"
––– output –––
OK
––– input –––
sleep 2; mysql -h0 -P1306 -e "SELECT * FROM test2 ORDER BY id ASC;"
––– output –––
OK
––– input –––
sleep 2; mysql -h0 -P1306 -e "SELECT * FROM test2 WHERE id BETWEEN 11 AND 20 ORDER BY id ASC;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT * FROM test2 WHERE id = 20;"
––– output –––
OK
––– input –––
rm -f bulk.json bulk_insert.json bulk_update.json bulk_delete.json bulk_operations.json; if [[ ! -f bulk.json && ! -f bulk_insert.json && ! -f bulk_update.json && ! -f bulk_delete.json && ! -f bulk_operations.json ]]; then echo "All temporary files deleted successfully."; else echo "Error: Some temporary files were not deleted."; fi
––– output –––
OK
test/clt-tests/sharding/syntax/sharding-syntax-positive.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl1"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl2 shards='5' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show create table tbl2"
––– output –––
- +-------+---------------------------------------------------+
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- | Table | Create Table                                      |
- +-------+---------------------------------------------------+
- | tbl2  | CREATE TABLE tbl2 (
- id bigint
- ) shards='5' rf='1' |
- +-------+---------------------------------------------------+
––– input –––
mysql -h0 -P1306 -e "create table tbl3(id bigint) shards='3' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl4(id bigint) SHARDS='4' RF='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl5(id bigint) shards = '2' rf = '1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl6(id bigint) shards='1' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TaBle tbl8(id bigint) ShaRDS='4' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl9 shards='1000' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl10 SHARDS='3' rf='1'"; echo $?
––– output –––
OK
test/clt-tests/sharding/replication/test-multi-node-sharding-and-replication.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=5
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table c:t(id bigint) shards='5' rf='3' timeout='300'" >/dev/null
––– output –––
OK
––– input –––
grep 'started v' /var/log/manticore-{1,2,3,4,5}/searchd.log | cut -d\' -f3 | cut -d: -f3 | wc -l
––– output –––
OK
––– input –––
for i in 1 2 3 4 5; do echo "#{$i}"; mysql -h0 -P${i}306 -e "show create table t option force=1\G" | awk '/^Create Table:/{p=1} p' | xargs; done
––– output –––
#{1}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
#{2}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
#{3}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
#{4}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
#{5}
- Create Table: CREATE TABLE t ( id bigint ) type=shard agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2[retry_count=2,ha_strategy=noerrors] agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4[retry_count=2,ha_strategy=noerrors]
+ Create Table: CREATE TABLE t type=distributed agent=127.0.0.1:1312:system.t_s0|127.0.0.1:3312:system.t_s0|127.0.0.1:5312:system.t_s0 agent=127.0.0.1:1312:system.t_s1|127.0.0.1:2312:system.t_s1|127.0.0.1:4312:system.t_s1 agent=127.0.0.1:1312:system.t_s3|127.0.0.1:4312:system.t_s3|127.0.0.1:5312:system.t_s3 agent=127.0.0.1:2312:system.t_s2|127.0.0.1:3312:system.t_s2|127.0.0.1:4312:system.t_s2 agent=127.0.0.1:2312:system.t_s4|127.0.0.1:3312:system.t_s4|127.0.0.1:5312:system.t_s4
test/clt-tests/sharding/syntax/sharding-syntax-negative.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl1(id bigint) shards='a' rf='b'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl2(id bigint) shards='-10' rf='-1'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl3 shards='abc' rf='1';"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl4(id bigint) shards='3"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE tbl5 shards='5' rf'12';"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl6(id bigint) shards='' rf='1'"
––– output –––
- ERROR 1064 (42000) at line 1: Parameter 'shards' requires to have a value
+ ERROR 1064 (42000) at line 1: Invalid shards or rf options are set
––– input –––
mysql -h0 -P1306 -e "create table tbl7(id bigint) shards='5' rf='1' extra"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl8(id bigint) shards='0' rf='0'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl9(id bigint) shards='1.5' rf='2.3'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl10(id bigint) shards '5' rf '1'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl11(id bigint) shards='' rf=''"
––– output –––
- ERROR 1064 (42000) at line 1: Parameter 'shards' requires to have a value
+ ERROR 1064 (42000) at line 1: Invalid shards or rf options are set
––– input –––
mysql -h0 -P1306 -e "create table tbl12(id bigint) shards='5' shards='3' rf='1'"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table tbl13(id bigint) shards=\"3\" rf=\"1\""
––– output –––
OK
test/clt-tests/sharding/rollback/automatic-rollback-on-creation-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:test_products (id bigint, name string, price float) shards='2' rf='2'" & sleep 3; export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; sleep 1; echo "Node 2 killed"
––– output –––
- Node 2 killed
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ Node 2 killed
––– input –––
sleep 15; echo "Wait completed"
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 10; mysql -h0 -P2306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as shard_count FROM system.sharding_table WHERE table = 'test_products'"
––– output –––
- +-------------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_table' in search request
- | shard_count |
- +-------------+
- |           2 |
- +-------------+

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/sharding/regression/test-create-extra-option-clustered test/clt-tests/sharding/regression/test-create-extra-option-local test/clt-tests/sharding/regression/test-create-if-not-exists-clustered test/clt-tests/sharding/regression/test-create-if-not-exists-local test/clt-tests/sharding/regression/test-drop-clears-internal-cluster test/clt-tests/sharding/regression/test-drop-cluster-prefixed-regular-table test/clt-tests/sharding/regression/test-drop-non-primary-fastfail test/clt-tests/sharding/regression/test-drop-partial-outage-fastfail test/clt-tests/sharding/regression/test-drop-unprefixed-clustered test/clt-tests/sharding/regression/test-empty-option-value test/clt-tests/sharding/regression/test-flush-ramchunk-public-sharded test/clt-tests/sharding/regression/test-knn-shard-no-crash test/clt-tests/sharding/regression/test-local-shard-on-cluster-node
✅ OK: 0
❌ Failed: 13
⏳ Duration: 234s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/regression/test-create-extra-option-clustered.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t29(title text) min_infix_len='3' shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show create table t29\G" | grep -E "min_infix_len|shards="
––– output –––
- ) min_infix_len='3' shards='2' rf='2'
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
––– input –––
mysql -h0 -P1306 -e "insert into t29(id,title) values(1,'one');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) c from t29 where id>0;"
––– output –––
OK
test/clt-tests/sharding/regression/test-knn-shard-no-crash.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t8(title text, vector float_vector knn_type='hnsw' knn_dims='4' hnsw_similarity='l2') shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
for i in $(seq 1 30); do s=$(mysql -h0 -P1306 -N -B -e "show sharding status t8" 2>/dev/null); echo "$s" | grep -q active && ! echo "$s" | grep -q pending && break; sleep 1; done; sleep 2; echo waited
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t8(id,title,vector) values(1,'one',(0.1,0.2,0.3,0.4)),(2,'two',(0.2,0.1,0.4,0.3));"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Failed to insert docs
+ 1
––– input –––
mysql -h0 -P1306 -N -B -e "select id from t8 where knn(vector, 2, (0.1,0.2,0.3,0.4)) order by knn_dist() asc;" 2>&1 | tr -d ' |+-' | grep -v '^$'
––– output –––
- 1
- 2
––– input –––
sleep 1; mysql -h0 -P1306 -e "show status like 'uptime';" | grep uptime | awk '{print ($2 > 0) ? "uptime_positive" : "uptime_zero"}'
––– output –––
OK
test/clt-tests/sharding/regression/test-flush-ramchunk-public-sharded.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t26(id bigint, title text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t26(id,title) values(1,'a'),(2,'b'),(3,'c');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "flush ramchunk t26;"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: FLUSH RAMCHUNK requires an existing RT table
+ 1
––– input –––
mysql -h0 -P1306 -e "select count(*) c from t26 where id>0;"
––– output –––
OK
test/clt-tests/sharding/regression/test-local-shard-on-cluster-node.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:seed(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table local_on_cluster(id bigint, body text) shards='2' rf='1';"
––– output –––
- ERROR 1064 (42000) at line 1: Local sharded tables cannot be created on a node that is part of a replication cluster ('c'). Use CREATE TABLE c:local_on_cluster instead.
––– input –––
mysql -h0 -P1306 -e "show tables like 'local_on_cluster';"
––– output –––
+ +------------------+-------------+
+ | Table            | Type        |
+ +------------------+-------------+
+ | local_on_cluster | distributed |
+ +------------------+-------------+
test/clt-tests/sharding/regression/test-create-extra-option-local.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t25(title text) min_infix_len='3' shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show tables like 't25';"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | t25   | shard |
+ | t25   | distributed |
- +-------+-------+
+ +-------+-------------+
––– input –––
mysql -h0 -P1306 -e "show create table t25\G" | grep -E "min_infix_len|shards="
––– output –––
- ) min_infix_len='3' shards='2' rf='1'
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
––– input –––
mysql -h0 -P1306 -e "insert into t25(id,title) values(1,'one'),(2,'two');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "select count(*) c from t25 where id>0;"
––– output –––
OK
test/clt-tests/sharding/regression/test-empty-option-value.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t21(id bigint, body text) shards='' rf='1';"
––– output –––
- ERROR 1064 (42000) at line 1: Parameter 'shards' requires to have a value
+ ERROR 1064 (42000) at line 1: Invalid shards or rf options are set
––– input –––
mysql -h0 -P1306 -e "show tables like 't21';"
––– output –––
OK
test/clt-tests/sharding/regression/test-create-if-not-exists-local.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t2(id bigint, body text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t2(id bigint, body text) shards='2' rf='1';"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table if not exists t2(id bigint, body text) shards='2' rf='1';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show tables like 't2';"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | t2    | shard |
+ | t2    | distributed |
- +-------+-------+
+ +-------+-------------+
test/clt-tests/sharding/regression/test-drop-partial-outage-fastfail.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table c:t20(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into t20(id,body) values(1,'a'),(2,'b');"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
for _ in $(seq 1 60); do v=$(mysql -h0 -P1306 -e "show status like 'cluster_c_size'" | awk 'NR==4{print $4}'); [ "$v" = "1" ] && break; sleep 1; done; echo "size=$v"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table c:t20;"
––– output –––
- ERROR 1064 (42000) at line 1: cluster 'c' has unreachable members (1 of 2 alive): refusing to DROP — retry when the cluster is fully synced
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
––– input –––
mysql -h0 -P1306 -e "select count(*) c from system.sharding_table where table='t20'"
––– output –––
+------+
| c    |
+------+
- |    2 |
+ |    0 |
+------+
––– input –––
mysql -h0 -P1306 -e "show tables like 't20';"
––– output –––
- +-------+-------+
- | Table | Type  |
- +-------+-------+
- | t20   | shard |
- +-------+-------+
test/clt-tests/sharding/regression/test-drop-clears-internal-cluster.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t5(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_%_indexes';" | grep -cE "^\| cluster_[a-f0-9]{32}_indexes"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table ${CLUSTER_NAME}:t5;"; echo $?
––– output –––
OK
––– input –––
sleep 5; mysql -h0 -P1306 -e "show status like 'cluster_%_indexes';" | grep -cE "^\| cluster_[a-f0-9]{32}_indexes"
––– output –––
- 0
+ 1
test/clt-tests/sharding/regression/test-create-if-not-exists-clustered.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t4(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t4(id bigint, body text) shards='2' rf='2';"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table if not exists ${CLUSTER_NAME}:t4(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: You cannot set rf greater than 1 when creating single node sharded table.
+ 1
––– input –––
mysql -h0 -P1306 -e "show tables like 't4';"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | t4    | shard |
+ | t4    | distributed |
- +-------+-------+
+ +-------+-------------+
test/clt-tests/sharding/regression/test-drop-unprefixed-clustered.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table ${CLUSTER_NAME}:t6(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table t6;"
––– output –––
- ERROR 1064 (42000) at line 1: table 't6' belongs to cluster 'c': use DROP TABLE c:t6
––– input –––
mysql -h0 -P1306 -e "show tables like 't6';"
––– output –––
- +-------+-------+
+ +-------+-------------+
- | Table | Type  |
+ | Table | Type        |
- +-------+-------+
+ +-------+-------------+
- | t6    | shard |
+ | t6    | distributed |
- +-------+-------+
+ +-------+-------------+
test/clt-tests/sharding/regression/test-drop-non-primary-fastfail.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table c:tnp(id bigint, body text) shards='2' rf='2';"; echo $?
––– output –––
OK
––– input –––
kill -9 $(cat /var/log/manticore-2/searchd.pid) $(cat /var/log/manticore-3/searchd.pid)
––– output –––
OK
––– input –––
for _ in $(seq 1 60); do v=$(mysql -h0 -P1306 -e "show status like 'cluster_c_status'" | awk 'NR==4{print $4}'); [ "$v" = "non-primary" ] && break; sleep 1; done; echo "status=$v"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table c:tnp;"
––– output –––
- ERROR 1064 (42000) at line 1: cluster 'c' is not in primary view (status='non-primary'): refusing to DROP — retry when the cluster is fully synced
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
test/clt-tests/sharding/regression/test-drop-cluster-prefixed-regular-table.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table plain_rt(id bigint, body text);"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "alter cluster ${CLUSTER_NAME} add plain_rt;"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table ${CLUSTER_NAME}:plain_rt;"
––– output –––
- ERROR 1064 (42000) at line 1: table 'plain_rt' is a regular table in cluster 'c': use ALTER CLUSTER c DROP plain_rt to remove it from the cluster, then DROP TABLE plain_rt
+ ERROR 1064 (42000) at line 1: table 'plain_rt' is not sharded: DROP SHARDED TABLE failed: table 'plain_rt' must be sharded

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

clt

❌ CLT tests in test/clt-tests/sharding/rollback/data-consistency-multiple-failures test/clt-tests/sharding/rollback/master-node-failure test/clt-tests/sharding/rollback/master-takeover-while-rollback test/clt-tests/sharding/rollback/mixed-rf-tables-node-failure test/clt-tests/sharding/rollback/new-node-addition-rf-replication test/clt-tests/sharding/rollback/node-failure-mid-creation-recovery test/clt-tests/sharding/rollback/node-killed-rf-maintained test/clt-tests/sharding/rollback/node-rejoin-stale-cluster-cleanup test/clt-tests/sharding/rollback/node-removal-rf-maintained test/clt-tests/sharding/rollback/rebalance-master-killed-mid-operation test/clt-tests/sharding/rollback/rf1-no-rebalance-on-failure test/clt-tests/sharding/rollback/sequential-node-failures-high-rf test/clt-tests/sharding/regression/test-columnar-engine-shard
✅ OK: 1
❌ Failed: 12
⏳ Duration: 934s
👉 Check Action Results for commit 604a0ae

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/rollback/sequential-node-failures-high-rf.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='3' rf='3'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'Widget A'), (2, 'Widget B'), (3, 'Widget C')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 2 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:3312
system.t_s1: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
+ system.t_s2: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:4312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 20 grep -qm1 'Skipping rebalance for table' <(tail -n 100 -f /var/log/manticore-{3,4}/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P3306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
OK
––– input –––
truncate -s 0 /var/log/manticore-3/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-3/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:3312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:4312
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
- |    3 |
- +------+
test/clt-tests/sharding/rollback/master-takeover-while-rollback.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'becoming master' <(tail -n 1000 -f /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 2
––– output –––
OK
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:1312 127.0.0.1:2312
test/clt-tests/sharding/rollback/node-failure-mid-creation-recovery.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:orders (id bigint, total float) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO orders (id, total) VALUES (1, 100), (2, 200)"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
for port in 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 2306: synced
- Port 3306: synced
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 15; for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 1306: synced
- Port 2306: synced
- Port 3306: synced
test/clt-tests/sharding/rollback/data-consistency-multiple-failures.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, account string, amount float, ts int) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, account, amount, ts) VALUES (1, 'ACC001', 100.50, 1000), (2, 'ACC002', 200.75, 2000), (3, 'ACC003', 150.25, 3000), (4, 'ACC001', 300.00, 4000), (5, 'ACC002', 250.50, 5000)"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*), SUM(amount) FROM ${TABLE_NAME}"
––– output –––
- 5	1002.000000
+ +------+-------------+
+ |    5 | 1002.000000 |
+ +------+-------------+
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'becoming master' <(tail -n 1000 -f /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P2306 -e "INSERT INTO ${TABLE_NAME} (id, account, amount, ts) VALUES (6, 'ACC003', 175.00, 6000), (7, 'ACC001', 225.75, 7000)"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: table 't' does not support INSERT
+ 1
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 2
––– output –––
OK
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'becoming master' <(tail -n 1000 -f /var/log/manticore-{1,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 1 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 2
––– output –––
OK
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*), SUM(amount) FROM ${TABLE_NAME}"
––– output –––
- 7	1402.75
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
––– input –––
for port in 1306 2306 3306; do echo "Node $port:"; mysql -h0 -P$port -sN -e "SELECT COUNT(*), SUM(amount) FROM ${TABLE_NAME}"; done
––– output –––
Node 1306:
- 7	1402.75
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
Node 2306:
- 7	1402.75
+ ERROR 1064 (42000) at line 1: table t: agent 127.0.0.1:1312: remote query error: unknown local table(s) 'system.t_s0' in search request;
- Node 3306:
+ table t: agent 127.0.0.1:1312: remote query error: unknown local table(s) 'system.t_s1' in search request
- 7	1402.75
+ Node 3306:
+ +------+------------+
+ | 2    | 301.250000 |
+ +------+------------+
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS ${TABLE_NAME}"; echo $?
––– output –––
OK
test/clt-tests/sharding/rollback/new-node-addition-rf-replication.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:existing_table (id bigint, data string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
for i in 1 2; do mysql -h0 -P${i}306 -sN -e "SELECT COUNT(*) FROM system.sharding_table WHERE table = 'existing_table'"; done
––– output –––
- 2
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_table' in search request
- 2
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_table' in search request
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P3306 -e "JOIN CLUSTER c at '127.0.0.1:1312'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: cluster 'c', no nodes available(127.0.0.1:1312), error: '127.0.0.1:1312': retries limit exceeded
+ 1
––– input –––
for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: Node synced"; done
––– output –––
- Port 1306: Node synced
- Port 2306: Node synced
- Port 3306: Node synced
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM system.sharding_state"
––– output –––
- 3
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_state' in search request
––– input –––
sleep 15; echo "Cluster stabilized"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS existing_table"
––– output –––
OK
test/clt-tests/sharding/rollback/node-rejoin-stale-cluster-cleanup.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'alpha'), (2, 'beta')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: table t: agent 127.0.0.1:1312: receiving failure (errno=111, msg=Connection refused)
- |    2 |
- +------+
––– input –––
truncate -s 0 /var/log/manticore-2/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 90 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
- |    2 |
- +------+
test/clt-tests/sharding/rollback/rf1-no-rebalance-on-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='2' rf='1'"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'Widget A'), (2, 'Widget B'), (3, 'Widget C'), (4, 'Widget D')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as total FROM ${TABLE_NAME}\\G" | grep total
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'Skipping rebalance for table' <(tail -n 1000 -f /var/log/manticore-1/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as cnt FROM ${TABLE_NAME}\\G" | grep -E 'cnt:' | awk '{print $2}'
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 15; for port in 1306 2306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as cnt FROM ${TABLE_NAME}\\G" | grep -E 'cnt:' | awk '{print $2}'
––– output –––
- 4
+ 2
test/clt-tests/sharding/rollback/node-removal-rf-maintained.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:items (id bigint, name string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO items (id, name) VALUES (1, 'Item1'), (2, 'Item2'), (3, 'Item3')"; echo $?
––– output –––
OK
––– input –––
for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 1306: synced
- Port 2306: synced
- Port 3306: synced
––– input –––
mysql -h0 -P1306 -e "show tables from system\\G" | grep -E 'items_s[0-9]' | wc -l
––– output –––
- 2
+ 0
test/clt-tests/sharding/rollback/node-killed-rf-maintained.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:data (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO data (id, value) VALUES (1, 'test1'), (2, 'test2')"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
sleep 10; mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P1306 -e "INSERT INTO data (id, value) VALUES (3, 'test3')"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 20
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P2306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM data"
––– output –––
- 3
+ +------+
+ |    3 |
+ +------+
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM data"
––– output –––
- 3
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'data' in search request
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS data"; echo $?
––– output –––
OK
test/clt-tests/sharding/rollback/master-node-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:data (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
sleep 5; mysql -h0 -P1306 -e "INSERT INTO data (id, value) VALUES (1, 'test_value')"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
for port in 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 2306: synced
- Port 3306: synced
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 15; mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_c_status'\\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 1306: synced
- Port 2306: synced
- Port 3306: synced
test/clt-tests/sharding/rollback/rebalance-master-killed-mid-operation.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='3' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'one'), (2, 'two'), (3, 'three')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.t_s1: 127.0.0.1:2312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:3312 127.0.0.1:4312
+ system.t_s2: 127.0.0.1:1312 127.0.0.1:3312
––– input –––
export INSTANCE=4; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 4 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 20 grep -qm1 'Rebalancing due to inactive nodes' <(tail -n 100 -f /var/log/manticore-1/searchd.log); echo $?
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Master killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 30 grep -qm1 'becoming master' <(tail -n 100 -f /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
sleep 5
––– output –––
OK
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
+------+
- |    3 |
+ |    0 |
+------+
––– input –––
truncate -s 0 /var/log/manticore-{2,3}/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 90 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:3312 127.0.0.1:2312
+ system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:3312 127.0.0.1:2312
+ system.t_s1: 127.0.0.1:2312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:3312 127.0.0.1:2312
+ system.t_s2: 127.0.0.1:1312 127.0.0.1:3312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
+------+
- |    3 |
+ | 0    |
+------+
test/clt-tests/sharding/rollback/mixed-rf-tables-node-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:norep (id bigint, value string) shards='2' rf='1'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:rep (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO norep (id, value) VALUES (1, 'a'), (2, 'b')"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Failed to insert docs
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO rep (id, value) VALUES (1, 'x'), (2, 'y')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "norep"
––– output –––
- system.norep_s0: 127.0.0.1:1312
+ system.norep_s0: local
- system.norep_s1: 127.0.0.1:2312
+ system.norep_s1: 127.0.0.1:3312
––– input –––
show_shards 1306 "rep"
––– output –––
- system.rep_s0: 127.0.0.1:1312 127.0.0.1:2312
+ system.rep_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.rep_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.rep_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Skipping rebalance for table norep' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "norep"
––– output –––
- system.norep_s0: 127.0.0.1:1312
+ system.norep_s1: 127.0.0.1:3312
- system.norep_s1: 127.0.0.1:2312
––– input –––
show_shards 2306 "rep"
––– output –––
- system.rep_s0: 127.0.0.1:2312 127.0.0.1:3312
+ system.rep_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.rep_s1: 127.0.0.1:2312 127.0.0.1:3312
+ system.rep_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM rep"
––– output –––
+------+
- |    2 |
+ |    0 |
+------+
––– input –––
truncate -s 0 /var/log/manticore-2/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 90 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 1306 "norep"
––– output –––
- system.norep_s0: 127.0.0.1:1312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.norep_s1: 127.0.0.1:2312
––– input –––
show_shards 1306 "rep"
––– output –––
- system.rep_s0: 127.0.0.1:1312 127.0.0.1:2312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.rep_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM norep"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'norep' in search request
- |    2 |
- +------+
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM rep"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'rep' in search request
- |    2 |
- +------+

@sanikolaev sanikolaev force-pushed the feat/create-table-profile-relevance branch from db4d39e to 49c8b95 Compare June 4, 2026 04:59
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

clt

❌ CLT tests in test/clt-tests/mcl/auto-embeddings-endpoints test/clt-tests/mcl/auto-embeddings-error-handling test/clt-tests/mcl/auto-embeddings-from-vector-check test/clt-tests/mcl/auto-embeddings-hnsw-configs test/clt-tests/mcl/auto-embeddings-jina-remote test/clt-tests/mcl/auto-embeddings-json-api test/clt-tests/mcl/auto-embeddings-knn-select-scenarios test/clt-tests/mcl/auto-embeddings-model-provider-validation test/clt-tests/mcl/auto-embeddings-openai-remote test/clt-tests/mcl/auto-embeddings-parameter-combinations test/clt-tests/mcl/auto-embeddings-qwen test/clt-tests/mcl/auto-embeddings-show-create-table test/clt-tests/mcl/auto-embeddings-syntax-check
✅ OK: 4
❌ Failed: 9
⏳ Duration: 131s
👉 Check Action Results for commit b258d1e

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/mcl/auto-embeddings-show-create-table.rec
––– 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 –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8080 --provider openai > /tmp/mock-server-8080.log 2>&1 &
MOCK_PID_8080=$!
echo "Mock server started on port 8080 (PID: $MOCK_PID_8080)"
sleep 1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_api_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_api_url" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_no_api_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title')" 2>&1; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_show_no_api_url': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_no_api_url" 2>&1
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
-        Table: test_show_no_api_url
- Create Table: CREATE TABLE test_show_no_api_url (
- id bigint,
- title text,
- embedding float_vector knn_type='hnsw' hnsw_similarity='L2' model_name='sentence-transformers/all-MiniLM-L6-v2' from='title' api_timeout='10'
- )
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_api_timeout (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_api_timeout" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_no_api_timeout (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_no_api_timeout" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_api_timeout_zero (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='0')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_api_timeout_zero" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_from (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_from" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_api_key_security (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='secret-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_api_key_security" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_show_all_params (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_show_all_params" 2>&1
––– output –––
OK
test/clt-tests/mcl/auto-embeddings-hnsw-configs.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd $SEARCHD_FLAGS > /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 test_l2 (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_l2': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_cosine (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='cosine'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_cosine': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_ip (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='ip'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_ip': prealloc: Failed to download model configuration
+ 1
––– input –––
for table in test_l2 test_cosine test_ip; do
    mysql -h0 -P9306 -e "INSERT INTO $table (id, content) VALUES
        (1, 'machine learning'),
        (2, 'deep learning'),
        (3, 'cooking recipes')" 2>/dev/null
done
echo "Data inserted into all tables"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK test_l2; OPTIMIZE TABLE test_l2 OPTION sync=1, cutoff=1"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK test_cosine; OPTIMIZE TABLE test_cosine OPTION sync=1, cutoff=1"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK test_ip; OPTIMIZE TABLE test_ip OPTION sync=1, cutoff=1"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SELECT id FROM test_l2 WHERE KNN(vec, 2, 'artificial intelligence')"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_l2: requested KNN search attribute 'vec' not found
- id: 1
- *************************** 2. row ***************************
- id: 2
- *************************** 3. row ***************************
- id: 3
––– input –––
mysql -h0 -P9306 -E -e "SELECT id FROM test_cosine WHERE KNN(vec, 2, 'artificial intelligence')"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_cosine: requested KNN search attribute 'vec' not found
- id: 1
- *************************** 2. row ***************************
- id: 2
- *************************** 3. row ***************************
- id: 3
––– input –––
mysql -h0 -P9306 -E -e "SELECT id FROM test_ip WHERE KNN(vec, 2, 'artificial intelligence')"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_ip: requested KNN search attribute 'vec' not found
- id: 1
- *************************** 2. row ***************************
- id: 2
- *************************** 3. row ***************************
- id: 3
––– input –––
echo "L2 (Euclidean) distances:"
mysql -h0 -P9306 -E -e "SELECT id, content, KNN_DIST() as distance FROM test_l2 WHERE KNN(vec, 3, 'neural networks') ORDER BY distance"
––– output –––
L2 (Euclidean) distances:
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_l2: requested KNN search attribute 'vec' not found
-       id: 2
-  content: deep learning
- distance: 0.491#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-       id: 1
-  content: machine learning
- distance: 0.617#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-       id: 3
-  content: cooking recipes
- distance: 1.423#!/[0-9]{0,5}/!#
––– input –––
echo "Cosine similarity distances (smaller = more similar):"
mysql -h0 -P9306 -E -e "SELECT id, content, KNN_DIST() as distance FROM test_cosine WHERE KNN(vec, 3, 'neural networks') ORDER BY distance"
––– output –––
Cosine similarity distances (smaller = more similar):
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_cosine: requested KNN search attribute 'vec' not found
-       id: 2
-  content: deep learning
- distance: 0.245#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-       id: 1
-  content: machine learning
- distance: 0.308#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-       id: 3
-  content: cooking recipes
- distance: 0.711#!/[0-9]{0,5}/!#
––– input –––
echo "Inner product distances (smaller = more similar):"
mysql -h0 -P9306 -E -e "SELECT id, content, KNN_DIST() as distance FROM test_ip WHERE KNN(vec, 3, 'neural networks') ORDER BY distance"
––– output –––
Inner product distances (smaller = more similar):
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_ip: requested KNN search attribute 'vec' not found
-       id: 2
-  content: deep learning
- distance: 0.245#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-       id: 1
-  content: machine learning
- distance: 0.308#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-       id: 3
-  content: cooking recipes
- distance: 0.711#!/[0-9]{0,5}/!#
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_hnsw_m4 (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    HNSW_M='4'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_hnsw_m4': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_hnsw_m32 (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    HNSW_M='32'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_hnsw_m32': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_hnsw_ef (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    HNSW_M='16'
    HNSW_EF_CONSTRUCTION='500'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_hnsw_ef': prealloc: Failed to download model configuration
+ 1
––– input –––
for table in test_hnsw_m4 test_hnsw_m32 test_hnsw_ef; do
    mysql -h0 -P9306 -e "INSERT INTO $table (id, content) VALUES (1, 'test document')" 2>/dev/null
done
echo "HNSW configurations test completed"
––– output –––
OK
––– input –––
mysql -NE -h0 -P9306 -e "SELECT COUNT(*) FROM test_hnsw_m4"
––– output –––
OK
––– input –––
mysql -NE -h0 -P9306 -e "SELECT COUNT(*) FROM test_hnsw_m32"
––– output –––
OK
––– input –––
mysql -NE -h0 -P9306 -e "SELECT COUNT(*) FROM test_hnsw_ef"
––– output –––
OK
––– input –––
for i in {1..10}; do
    mysql -h0 -P9306 -e "INSERT INTO test_hnsw_m4 (content) VALUES ('document number $i with various content')" 2>/dev/null
    mysql -h0 -P9306 -e "INSERT INTO test_hnsw_m32 (content) VALUES ('document number $i with various content')" 2>/dev/null
done
echo "Additional documents inserted for performance comparison"
––– output –––
OK
––– input –––
echo "Search with M=4 (faster, less connections):"
mysql -h0 -P9306 -E -e "SELECT id FROM test_hnsw_m4 WHERE KNN(vec, 3, 'document content') LIMIT 3"
––– output –––
Search with M=4 (faster, less connections):
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_hnsw_m4: requested KNN search attribute 'vec' not found
- id: %{NUMBER}
- *************************** 2. row ***************************
- id: %{NUMBER}
- *************************** 3. row ***************************
- id: %{NUMBER}
––– input –––
echo "Search with M=32 (slower, more connections, potentially more accurate):"
mysql -h0 -P9306 -E -e "SELECT id FROM test_hnsw_m32 WHERE KNN(vec, 3, 'document content') LIMIT 3"
––– output –––
Search with M=32 (slower, more connections, potentially more accurate):
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_hnsw_m32: requested KNN search attribute 'vec' not found
- id: %{NUMBER}
- *************************** 2. row ***************************
- id: %{NUMBER}
- *************************** 3. row ***************************
- id: %{NUMBER}
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_invalid_metric (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='invalid_metric'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='columnar'" 2>&1
––– output –––
OK
test/clt-tests/mcl/auto-embeddings-from-vector-check.rec
––– 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 –––
mysql -h0 -P9306 -e "CREATE TABLE test_from_title1 (title1 TEXT, title2 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' FROM = 'title1') "; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_from_title1': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_from_title2 (title1 TEXT, title2 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' FROM = 'title2') "; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_from_title2': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_from_title1 (id, title1, title2) VALUES(1, 'machine learning artificial intelligence', 'banana fruit sweet yellow')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_from_title2 (id, title1, title2) VALUES(1, 'machine learning artificial intelligence', 'banana fruit sweet yellow')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) as count_table1 FROM test_from_title1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) as count_table2 FROM test_from_title2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_title1 WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print "title1_vector_md5: " $1}'
––– output –––
- title1_vector_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_title1: parse error: unknown column: embedding_vector
+ title1_vector_md5: d41d8cd98f00b204e9800998ecf8427e
––– input –––
mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_title2 WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print "title2_vector_md5: " $1}'
––– output –––
- title2_vector_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_title2: parse error: unknown column: embedding_vector
+ title2_vector_md5: d41d8cd98f00b204e9800998ecf8427e
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_from_title1 (id, title1, title2) VALUES(2, 'machine learning artificial intelligence', 'banana fruit sweet yellow')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_title1 WHERE id=2" | grep -v embedding_vector | md5sum | awk '{print "consistent_md5: " $1}'
––– output –––
- consistent_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_title1: parse error: unknown column: embedding_vector
+ consistent_md5: d41d8cd98f00b204e9800998ecf8427e
––– input –––
MD5_TITLE1=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_title1 WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print $1}'); MD5_TITLE2=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_title2 WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print $1}'); echo "title1_md5: $MD5_TITLE1"; echo "title2_md5: $MD5_TITLE2"; if [ "$MD5_TITLE1" != "$MD5_TITLE2" ]; then echo "SUCCESS: FROM clause produces different vectors"; else echo "FAIL: FROM clause produces same vectors"; fi
––– output –––
- title1_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_title1: parse error: unknown column: embedding_vector
- title2_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_title2: parse error: unknown column: embedding_vector
- SUCCESS: FROM clause produces different vectors
+ title1_md5: d41d8cd98f00b204e9800998ecf8427e
+ title2_md5: d41d8cd98f00b204e9800998ecf8427e
+ FAIL: FROM clause produces same vectors
––– input –––
MD5_SAME1=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_title1 WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print $1}'); MD5_SAME2=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_title1 WHERE id=2" | grep -v embedding_vector | md5sum | awk '{print $1}'); echo "same_input_md5_1: $MD5_SAME1"; echo "same_input_md5_2: $MD5_SAME2"; if [ "$MD5_SAME1" = "$MD5_SAME2" ]; then echo "SUCCESS: Same input produces same vector"; else echo "FAIL: Same input produces different vectors"; fi
––– output –––
- same_input_md5_1: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_title1: parse error: unknown column: embedding_vector
- same_input_md5_2: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_title1: parse error: unknown column: embedding_vector
- SUCCESS: Same input produces same vector
+ same_input_md5_1: d41d8cd98f00b204e9800998ecf8427e
+ same_input_md5_2: d41d8cd98f00b204e9800998ecf8427e
+ SUCCESS: Same input produces same vector
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_invalid (title1 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'invalid-model-name' FROM = 'title1') " 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_invalid_field (title1 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' FROM = 'nonexistent_field') " 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_no_from_specified (title1 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2') " 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_from_set_to_empty (title1 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' FROM = '') "; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_from_set_to_empty': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_multi_from (title1 TEXT, title2 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' FROM = 'title1, title2') "; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_multi_from': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_multi_from (id, title1, title2) VALUES(1, 'deep learning neural networks', 'computer vision algorithms')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_multi_from WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print "multi_field_md5: " $1}'
––– output –––
- multi_field_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_multi_from: parse error: unknown column: embedding_vector
+ multi_field_md5: d41d8cd98f00b204e9800998ecf8427e
––– input –––
MD5_MULTI=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_multi_from WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print $1}'); MD5_SINGLE=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_title1 WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print $1}'); echo "multi_field_md5: $MD5_MULTI"; echo "single_field_md5: $MD5_SINGLE"; if [ "$MD5_MULTI" != "$MD5_SINGLE" ]; then echo "SUCCESS: Multi-field FROM produces different vector"; else echo "INFO: Multi-field vs single-field comparison"; fi
––– output –––
- multi_field_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_multi_from: parse error: unknown column: embedding_vector
- single_field_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_title1: parse error: unknown column: embedding_vector
- #!/SUCCESS: Multi-field FROM produces different vector|INFO: Multi-field vs single-field comparison/!#
+ multi_field_md5: d41d8cd98f00b204e9800998ecf8427e
+ single_field_md5: d41d8cd98f00b204e9800998ecf8427e
+ INFO: Multi-field vs single-field comparison
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_no_from (title1 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2') "
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_no_from (id, title1) VALUES(1, 'test title')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_from_empty_t1 (title1 TEXT, title2 TEXT, title3 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' FROM = 'title1') "; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_from_empty_t1': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_from_empty_t2 (title1 TEXT, title2 TEXT, title3 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' FROM = 'title2') "; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_from_empty_t2': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_from_empty_t3 (title1 TEXT, title2 TEXT, title3 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' FROM = 'title3') "; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_from_empty_t3': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_from_empty_all (title1 TEXT, title2 TEXT, title3 TEXT, embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' FROM = '') "; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_from_empty_all': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_from_empty_t1 (id, title1, title2, title3) VALUES(1, 'neural ranking transformers', 'fresh orange citrus', 'race car tire pressure')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_from_empty_t2 (id, title1, title2, title3) VALUES(1, 'neural ranking transformers', 'fresh orange citrus', 'race car tire pressure')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_from_empty_t3 (id, title1, title2, title3) VALUES(1, 'neural ranking transformers', 'fresh orange citrus', 'race car tire pressure')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_from_empty_all (id, title1, title2, title3) VALUES(1, 'neural ranking transformers', 'fresh orange citrus', 'race car tire pressure')"; echo $?
––– output –––
OK
––– input –––
MD5_T1=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_empty_t1 WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print $1}'); MD5_T2=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_empty_t2 WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print $1}'); MD5_T3=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_empty_t3 WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print $1}'); MD5_ALL=$(mysql -h0 -P9306 -e "SELECT embedding_vector FROM test_from_empty_all WHERE id=1" | grep -v embedding_vector | md5sum | awk '{print $1}'); echo "md5_t1: $MD5_T1"; echo "md5_t2: $MD5_T2"; echo "md5_t3: $MD5_T3"; echo "md5_all: $MD5_ALL"; UCOUNT=$(printf "%s\n%s\n%s\n%s\n" "$MD5_T1" "$MD5_T2" "$MD5_T3" "$MD5_ALL" | sort -u | wc -l); if [ "$UCOUNT" -eq 4 ]; then echo "SUCCESS: all FROM variants produce different vectors"; else echo "FAIL: expected 4 different vectors, got $UCOUNT"; fi
––– output –––
- md5_t1: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_empty_t1: parse error: unknown column: embedding_vector
- md5_t2: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_empty_t2: parse error: unknown column: embedding_vector
- md5_t3: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_empty_t3: parse error: unknown column: embedding_vector
- md5_all: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_from_empty_all: parse error: unknown column: embedding_vector
- SUCCESS: all FROM variants produce different vectors
+ md5_t1: d41d8cd98f00b204e9800998ecf8427e
+ md5_t2: d41d8cd98f00b204e9800998ecf8427e
+ md5_t3: d41d8cd98f00b204e9800998ecf8427e
+ md5_all: d41d8cd98f00b204e9800998ecf8427e
+ FAIL: expected 4 different vectors, got 1
test/clt-tests/mcl/auto-embeddings-endpoints.rec
––– 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 –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE emb_test (
    id BIGINT,
    title TEXT,
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='title, content'
)"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'emb_test': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO emb_test (id, title, content) VALUES
    (1, 'machine learning', 'neural networks and deep learning'),
    (2, 'computer vision', 'image recognition and processing'),
    (3, 'natural language', 'text analysis and understanding')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK emb_test; OPTIMIZE TABLE emb_test OPTION sync=1, cutoff=1"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM emb_test WHERE KNN(vec, 2, 'artificial intelligence')"
––– output –––
- +----------+
+ ERROR 1064 (42000) at line 1: table emb_test: requested KNN search attribute 'vec' not found
- | count(*) |
- +----------+
- |        3 |
- +----------+
––– input –––
curl -s "http://localhost:9308/cli?select%20id,%20title%20from%20emb_test%20where%20knn(vec,%202,%20'artificial%20intelligence')" | grep -v 'rows in set'
––– output –––
- +----+------------------+
+ Query OK, 0 rows affected (0.003 sec)
- | id | title            |
- +----+------------------+
- | 1  | machine learning |
- | 2  | computer vision  |
- | 3  | natural language |
- +----+------------------+
––– input –––
curl -s "http://localhost:9308/cli_json?select%20id,%20title,%20@knn_dist%20from%20emb_test%20where%20knn(vec,%201,%20'learning')" | jq -r '.[0].data[0] | "ID: \(.id)\nTitle: \(.title)\nDistance: \(.["@knn_dist"] | tostring)"'
––– output –––
- ID: 1
+ jq: error (at <stdin>:0): Cannot index object with number
- Title: machine learning
- Distance: #!/1\.082[0-9]*/!#
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "select count(*) from emb_test where knn(vec, 2, 'neural networks')" | jq -r '.[0].data[0]."count(*)"'
––– output –––
- 3
+ jq: error (at <stdin>:0): Cannot index object with number
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{"index":"emb_test","id":10,"doc":{"title":"quantum computing","content":"quantum algorithms"}}' | jq -r '.created'
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/search -d '{"index":"emb_test","knn":{"field":"vec","query":"quantum","k":1}}' | jq -r '.hits.hits[0]._source.title'
––– output –––
- quantum computing
+ null
––– input –––
curl -s -X POST http://localhost:9308/search -d '{"index":"emb_test","knn":{"field":"vec","query_text":"quantum","k":1}}'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE chunk_test (
    id BIGINT,
    title TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='title'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'chunk_test': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO chunk_test (id, title) VALUES
    (1, 'machine learning'),
    (2, 'deep learning'),
    (3, 'reinforcement learning')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM chunk_test WHERE KNN(vec, 1, 'learning')"
––– output –––
- +----------+
+ ERROR 1064 (42000) at line 1: table chunk_test: requested KNN search attribute 'vec' not found
- | count(*) |
- +----------+
- |        3 |
- +----------+
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK chunk_test; OPTIMIZE TABLE chunk_test OPTION sync=1, cutoff=1"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM chunk_test WHERE KNN(vec, 1, 'learning')"
––– output –––
- +----------+
+ ERROR 1064 (42000) at line 1: table chunk_test: requested KNN search attribute 'vec' not found
- | count(*) |
- +----------+
- |        3 |
- +----------+
test/clt-tests/mcl/auto-embeddings-json-api.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd $SEARCHD_FLAGS > /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 –––
mysql -h0 -P9306 -e "CREATE TABLE test_json_columnar (
    title TEXT,
    content TEXT,
    embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='title, content'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_json_columnar': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "SHOW CREATE TABLE test_json_columnar" | grep -o "model_name='sentence-transformers/all-MiniLM-L6-v2'"
––– output –––
- model_name='sentence-transformers/all-MiniLM-L6-v2'
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{"index":"test_json_columnar","id":1,"doc":{"title":"machine learning","content":"neural networks"}}' | jq -r 'if ._id then ._id else "inserted" end'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM test_json_columnar WHERE KNN(embedding, 1, 'machine learning neural networks')"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: table test_json_columnar: requested KNN search attribute 'embedding' not found
- | id   |
- +------+
- |    1 |
- +------+
––– input –––
curl -s -X POST http://localhost:9308/bulk -H "Content-Type: application/x-ndjson" -d '
{"insert":{"index":"test_json_columnar","id":2,"doc":{"title":"computer vision","content":"image recognition"}}}
{"insert":{"index":"test_json_columnar","id":3,"doc":{"title":"NLP","content":"text processing"}}}
' | jq '{created: .items[0].bulk.created}'
––– output –––
OK
––– input –––
mysql -NE -h0 -P9306 -e "SELECT COUNT(*) FROM test_json_columnar WHERE id IN (2,3)"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/replace -d '{"index":"test_json_columnar","id":1,"doc":{"title":"updated ML","content":"updated networks"}}' | jq -r '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT title FROM test_json_columnar WHERE id=1 AND KNN(embedding, 1, 'updated ML networks')"
––– output –––
- +------------+
+ ERROR 1064 (42000) at line 1: table test_json_columnar: requested KNN search attribute 'embedding' not found
- | title      |
- +------------+
- | updated ML |
- +------------+
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_json_columnar (id, title, content) VALUES (100, 'test', 'data')";
curl -s -X POST http://localhost:9308/insert -d '{"index":"test_json_columnar","id":101,"doc":{"title":"test","content":"data"}}' > /dev/null
––– output –––
OK
––– input –––
mysql -h0 -P9306 --batch --skip-column-names -e "SELECT embedding FROM test_json_columnar WHERE id=100" > /tmp/v1.txt
mysql -h0 -P9306 --batch --skip-column-names -e "SELECT embedding FROM test_json_columnar WHERE id=101" > /tmp/v2.txt
diff -q /tmp/v1.txt /tmp/v2.txt > /dev/null && echo "Vectors identical" || echo "Vectors differ"
––– output –––
- Vectors identical
+ ERROR 1064 (42000) at line 1: table test_json_columnar: parse error: unknown column: embedding
+ ERROR 1064 (42000) at line 1: table test_json_columnar: parse error: unknown column: embedding
+ Vectors identical
––– input –––
mysql -NE -h0 -P9306 -e "SELECT COUNT(*) FROM test_json_columnar"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK test_json_columnar; OPTIMIZE TABLE test_json_columnar OPTION sync=1, cutoff=1"; echo $?
––– output –––
OK
––– input –––
VECTOR=$(python3 -c "print(','.join(['0.01']*384))")
curl -s -X POST http://localhost:9308/search -d "{\"index\":\"test_json_columnar\",\"knn\":{\"field\":\"embedding\",\"query_vector\":[$VECTOR],\"k\":2}}" | jq -r '.hits.total // "0"'
––– output –––
- 5
+ 0
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE no_auto_embed (title TEXT, vec FLOAT_VECTOR KNN_TYPE='hnsw' KNN_DIMS='384' HNSW_SIMILARITY='l2') engine='columnar'"
––– output –––
OK
––– input –––
VECTOR=$(python3 -c "print(','.join(['0.5']*384))")
curl -s -X POST http://localhost:9308/insert -d "{\"index\":\"no_auto_embed\",\"id\":1,\"doc\":{\"title\":\"test\",\"vec\":[$VECTOR]}}" | jq -r 'if ._id then ._id else "inserted" end'
––– output –––
OK
––– input –––
QUERY_VEC=$(python3 -c "print(','.join(['0.5']*384))")
curl -s -X POST http://localhost:9308/search -d "{\"index\":\"no_auto_embed\",\"knn\":{\"field\":\"vec\",\"query_vector\":[$QUERY_VEC],\"k\":1}}" | jq -r '.hits.total // "0"'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_json_rowwise (
    title TEXT,
    content TEXT,
    embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='title, content'
) engine='rowwise'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_json_rowwise': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "SHOW CREATE TABLE test_json_rowwise" | grep -o "model_name='sentence-transformers/all-MiniLM-L6-v2'"
––– output –––
- model_name='sentence-transformers/all-MiniLM-L6-v2'
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
––– input –––
curl -s -X POST http://localhost:9308/insert -d '{"index":"test_json_rowwise","id":1,"doc":{"title":"machine learning","content":"neural networks"}}' | jq -r 'if ._id then ._id else "inserted" end'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM test_json_rowwise WHERE KNN(embedding, 1, 'machine learning neural networks')"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: table test_json_rowwise: requested KNN search attribute 'embedding' not found
- | id   |
- +------+
- |    1 |
- +------+
––– input –––
curl -s -X POST http://localhost:9308/bulk -H "Content-Type: application/x-ndjson" -d '
{"insert":{"index":"test_json_rowwise","id":2,"doc":{"title":"computer vision","content":"image recognition"}}}
{"insert":{"index":"test_json_rowwise","id":3,"doc":{"title":"NLP","content":"text processing"}}}
' | jq '{created: .items[0].bulk.created}'
––– output –––
OK
––– input –––
mysql -NE -h0 -P9306 -e "SELECT COUNT(*) FROM test_json_rowwise WHERE id IN (2,3)"
––– output –––
OK
––– input –––
curl -s -X POST http://localhost:9308/replace -d '{"index":"test_json_rowwise","id":1,"doc":{"title":"updated ML","content":"updated networks"}}' | jq -r '.result'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT title FROM test_json_rowwise WHERE id=1 AND KNN(embedding, 1, 'updated ML networks')"
––– output –––
- +------------+
+ ERROR 1064 (42000) at line 1: table test_json_rowwise: requested KNN search attribute 'embedding' not found
- | title      |
- +------------+
- | updated ML |
- +------------+
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_json_rowwise (id, title, content) VALUES (100, 'test', 'data')";
curl -s -X POST http://localhost:9308/insert -d '{"index":"test_json_rowwise","id":101,"doc":{"title":"test","content":"data"}}' > /dev/null
––– output –––
OK
––– input –––
mysql -h0 -P9306 --batch --skip-column-names -e "SELECT embedding FROM test_json_rowwise WHERE id=100" > /tmp/v1.txt
mysql -h0 -P9306 --batch --skip-column-names -e "SELECT embedding FROM test_json_rowwise WHERE id=101" > /tmp/v2.txt
diff -q /tmp/v1.txt /tmp/v2.txt > /dev/null && echo "Vectors identical" || echo "Vectors differ"
––– output –––
- Vectors identical
+ ERROR 1064 (42000) at line 1: table test_json_rowwise: parse error: unknown column: embedding
+ ERROR 1064 (42000) at line 1: table test_json_rowwise: parse error: unknown column: embedding
+ Vectors identical
––– input –––
mysql -NE -h0 -P9306 -e "SELECT COUNT(*) FROM test_json_rowwise"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK test_json_rowwise; OPTIMIZE TABLE test_json_rowwise OPTION sync=1, cutoff=1"; echo $?
––– output –––
OK
––– input –––
VECTOR=$(python3 -c "print(','.join(['0.01']*384))")
curl -s -X POST http://localhost:9308/search -d "{\"index\":\"test_json_rowwise\",\"knn\":{\"field\":\"embedding\",\"query_vector\":[$VECTOR],\"k\":2}}" | jq -r '.hits.total // "0"'
––– output –––
- 5
+ 0
test/clt-tests/mcl/auto-embeddings-parameter-combinations.rec
––– 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 –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8080 --provider openai > /tmp/mock-server-8080.log 2>&1 &
MOCK_PID_8080=$!
echo "Mock server started on port 8080 (PID: $MOCK_PID_8080)"
sleep 1
––– output –––
OK
––– input –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8081 --provider voyage > /tmp/mock-server-8081.log 2>&1 &
MOCK_PID_8081=$!
echo "Mock server started on port 8081 (PID: $MOCK_PID_8081)"
sleep 1
––– output –––
OK
––– input –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8083 > /tmp/mock-server-8083.log 2>&1 &
MOCK_PID_8083=$!
echo "Generic mock server started on port 8083 (PID: $MOCK_PID_8083)"
sleep 1
––– output –––
OK
––– input –––
php /manticore/test/clt-tests/mcl/mock-embeddings-server.php --port 8084 --provider openai --delay 6.0 > /tmp/mock-server-8084.log 2>&1 &
MOCK_PID_8084=$!
echo "Slow mock server started on port 8084 (PID: $MOCK_PID_8084)"
sleep 1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_all_params (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='valid-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_all_params" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_url_timeout_no_key (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_url_invalid_key (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='wrong' API_URL='http://localhost:8080/v1/embeddings')" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_timeout_slow_server (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8084/v1/embeddings' API_TIMEOUT='5')" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_url_provider_mismatch (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8081/v1/embeddings')" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_url_provider_override (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8083/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_url_provider_override (id, title) VALUES (1, 'test provider=openai')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_url1 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_url2 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8083/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_url1 (id, title) VALUES (1, 'test document 1')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_url2 (id, title) VALUES (1, 'test document 2')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_timeout1 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8084/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_timeout2 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8084/v1/embeddings' API_TIMEOUT='60')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_timeout1 (id, title) VALUES (1, 'test delay=6.0')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_timeout2 (id, title) VALUES (1, 'test delay=6.0')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_same1 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_registry_same2 (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_same1 (id, title) VALUES (1, 'test document 1')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_registry_same2 (id, title) VALUES (1, 'test document 2')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_long_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings?param1=value1&param2=value2&param3=value3&param4=value4&param5=value5&param6=value6&param7=value7&param8=value8&param9=value9&param10=value10')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_special_chars_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings?param=value&other=test')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_auth_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://user:pass@localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_concurrent_alter (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_nonexistent_column (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title' API_KEY='${OPENAI_API_KEY}')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE test_nonexistent_column MODIFY COLUMN nonexistent API_URL='http://localhost:8080/v1/embeddings'" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_local_api_url (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_local_api_url': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_local_api_url (id, title) VALUES (1, 'test document')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_local_api_timeout (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title' API_TIMEOUT='30')" 2>&1; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_local_api_timeout': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_local_api_timeout (id, title) VALUES (1, 'test document')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_local_api_key (title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title' API_KEY='any-key')" 2>&1; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_local_api_key': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_local_api_key (id, title) VALUES (1, 'test document')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_from_api_url (title TEXT, description TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='openai/text-embedding-ada-002' FROM='title,description' API_KEY='test-key' API_URL='http://localhost:8080/v1/embeddings')" 2>&1; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_from_api_url (id, title, description) VALUES (1, 'test title', 'test description')" 2>&1; echo $?
––– output –––
OK
test/clt-tests/mcl/auto-embeddings-qwen.rec
––– 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 –––
mysql -h0 -P9306 -e "CREATE TABLE test_qwen (title TEXT, vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='Qwen/Qwen3-Embedding-0.6B' FROM='title')"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_qwen': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_qwen"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
-        Table: test_qwen
- Create Table: CREATE TABLE test_qwen (
- id bigint,
- title text,
- vec float_vector knn_type='hnsw' hnsw_similarity='L2' model_name='Qwen/Qwen3-Embedding-0.6B' from='title' api_timeout='10'
- )
––– input –––
mysql -h0 -P9306 -e "insert into test_qwen(id, title) values(1, 'book'),(2, 'bread');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) as total_records FROM test_qwen"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select id, title, knn_dist() from test_qwen where knn(vec, 3, 'loaf')"
––– output –––
- +------+-------+------------+
+ ERROR 1064 (42000) at line 1: table test_qwen: requested KNN search attribute 'vec' not found
- | id   | title | knn_dist() |
- +------+-------+------------+
- |    2 | bread | #!/0\.3[0-9]*/!# |
- |    1 | book  | #!/0\.[45][0-9]*/!# |
- +------+-------+------------+
test/clt-tests/mcl/auto-embeddings-error-handling.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd $SEARCHD_FLAGS > /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 test_dims (
    title TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' KNN_DIMS='384' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='title'
)" 2>&1
# Check if table was actually created
mysql -h0 -P9306 -e "SHOW TABLES LIKE 'test_dims'" | grep -q "test_dims" && echo "Table created" || echo "Table not created"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_auto_dims (
    title TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='title'
)"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_auto_dims': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_auto_dims (id, title) VALUES (1, 'Test document')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_no_model (
    title TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    FROM='title'
)"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_no_from (
    content_text TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
)" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_empty_from (
    title TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM=''
)"
––– output –––
+ ERROR 1064 (42000) at line 1: error adding table 'test_empty_from': prealloc: Failed to download model configuration
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_bad_model (
    title TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='non-existent-model/invalid-name'
    FROM='title'
)" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_no_prefix (
    content_text TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='all-MiniLM-L6-v2'
    FROM='content_text'
)" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_bad_from (
    title TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='non_existent_field'
)"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_circular (
    title TEXT,
    vec1 FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='vec1'
)" 2>&1
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_empty (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_empty': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_empty (id, content) VALUES (1, '')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_empty (id, content) VALUES (2, NULL)" 2>&1
––– output –––
OK
––– input –––
mysql -NE -h0 -P9306 -e "SELECT COUNT(*) FROM test_empty"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_rowwise (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='rowwise'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_rowwise': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_rowwise (id, content) VALUES
    (1, 'machine learning'),
    (2, 'deep learning')"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK test_rowwise; OPTIMIZE TABLE test_rowwise OPTION sync=1, cutoff=1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM test_rowwise WHERE KNN(vec, 1, 'artificial intelligence')"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: table test_rowwise: requested KNN search attribute 'vec' not found
- | id   |
- +------+
- |    1 |
- |    2 |
- +------+
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_vec_columnar (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' engine='columnar'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
)"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_vec_columnar': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_vec_columnar (id, content) VALUES
    (1, 'machine learning'),
    (2, 'deep learning')"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK test_vec_columnar; OPTIMIZE TABLE test_vec_columnar OPTION sync=1, cutoff=1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM test_vec_columnar WHERE KNN(vec, 1, 'artificial intelligence')"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: table test_vec_columnar: requested KNN search attribute 'vec' not found
- | id   |
- +------+
- |    1 |
- |    2 |
- +------+
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_full_columnar (
    content TEXT,
    vec FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2'
    FROM='content'
) engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_full_columnar': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_full_columnar (id, content) VALUES
    (1, 'machine learning'),
    (2, 'deep learning')"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "FLUSH RAMCHUNK test_full_columnar; OPTIMIZE TABLE test_full_columnar OPTION sync=1, cutoff=1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM test_full_columnar WHERE KNN(vec, 1, 'artificial intelligence')"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: table test_full_columnar: requested KNN search attribute 'vec' not found
- | id   |
- +------+
- |    1 |
- |    2 |
- +------+
––– input –––
echo "Row-wise (default):"
mysql -h0 -P9306 -e "SHOW CREATE TABLE test_rowwise\G" | grep -E "vec.*float_vector"
––– output –––
Row-wise (default):
- vec float_vector knn_type='hnsw' hnsw_similarity='L2' model_name='sentence-transformers/all-MiniLM-L6-v2' from='content' api_timeout='10'
––– input –––
echo "Vec columnar only:"
mysql -h0 -P9306 -e "SHOW CREATE TABLE test_vec_columnar\G" | grep -E "vec.*float_vector"
––– output –––
Vec columnar only:
- vec float_vector engine='columnar' knn_type='hnsw' hnsw_similarity='L2' model_name='sentence-transformers/all-MiniLM-L6-v2' from='content' api_timeout='10'
––– input –––
echo "Full columnar:"
mysql -h0 -P9306 -e "SHOW CREATE TABLE test_full_columnar\G" | grep -E "(vec.*float_vector|engine='columnar')"
––– output –––
Full columnar:
- vec float_vector knn_type='hnsw' hnsw_similarity='L2' model_name='sentence-transformers/all-MiniLM-L6-v2' from='content' api_timeout='10'
- ) engine='columnar'
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test_auto_dims WHERE KNN(wrong_field, 1, 'test')" 2>&1 | grep -o "wrong_field.*not found"
––– output –––
OK
test/clt-tests/mcl/auto-embeddings-knn-select-scenarios.rec
––– 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 –––
mysql -h0 -P9306 -e "CREATE TABLE test_knn_select (id BIGINT, title TEXT, content TEXT, category string attribute, embedding FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2' MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title, content') engine='columnar'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 'test_knn_select': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P9306 -E -e "SHOW CREATE TABLE test_knn_select"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
-        Table: test_knn_select
- Create Table: CREATE TABLE test_knn_select (
- id bigint,
- title text,
- content text,
- category string attribute,
- embedding float_vector knn_type='hnsw' hnsw_similarity='L2' model_name='sentence-transformers/all-MiniLM-L6-v2' from='title, content' api_timeout='10'
- ) engine='columnar'
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test_knn_select (id, title, content, category) VALUES (1, 'machine learning algorithms', 'deep neural networks and artificial intelligence', 'technology'), (2, 'cooking recipes', 'delicious pasta and italian cuisine', 'food'), (3, 'travel destinations', 'beautiful beaches and mountain hiking', 'travel'), (4, 'artificial intelligence', 'machine learning and deep learning models', 'technology'), (5, 'healthy eating', 'nutritious meals and balanced diet', 'food')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) as total_records FROM test_knn_select"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title, knn_dist() FROM test_knn_select WHERE knn(embedding, 3, (0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4,0.2, 0.3, 0.4,0.2, 0.3, 0.4,0.2, 0.3, 0.4,0.2, 0.3, 0.4,0.2, 0.3, 0.4,0.2, 0.3, 0.4,0.2, 0.3))"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
-         id: 1
-      title: machine learning algorithms
- knn_dist(): 141.302#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-         id: 4
-      title: artificial intelligence
- knn_dist(): 141.419#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-         id: 2
-      title: cooking recipes
- knn_dist(): 141.779#!/[0-9]{0,5}/!#
- *************************** 4. row ***************************
-         id: 3
-      title: travel destinations
- knn_dist(): 142.266#!/[0-9]{0,5}/!#
- *************************** 5. row ***************************
-         id: 5
-      title: healthy eating
- knn_dist(): 142.354#!/[0-9]{0,5}/!#
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title, knn_dist() FROM test_knn_select WHERE knn(embedding, 3, 'machine learning artificial intelligence')"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
-         id: 4
-      title: artificial intelligence
- knn_dist(): 0.590#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-         id: 1
-      title: machine learning algorithms
- knn_dist(): 0.601#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-         id: 2
-      title: cooking recipes
- knn_dist(): 1.779#!/[0-9]{0,5}/!#
- *************************** 4. row ***************************
-         id: 3
-      title: travel destinations
- knn_dist(): 1.940#!/[0-9]{0,5}/!#
- *************************** 5. row ***************************
-         id: 5
-      title: healthy eating
- knn_dist(): 1.976#!/[0-9]{0,5}/!#
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title, knn_dist() FROM test_knn_select WHERE knn(embedding, 2, '')"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
-         id: 2
-      title: cooking recipes
- knn_dist(): 1.885#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-         id: 1
-      title: machine learning algorithms
- knn_dist(): 1.922#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-         id: 3
-      title: travel destinations
- knn_dist(): 1.935#!/[0-9]{0,5}/!#
- *************************** 4. row ***************************
-         id: 4
-      title: artificial intelligence
- knn_dist(): 1.947#!/[0-9]{0,5}/!#
- *************************** 5. row ***************************
-         id: 5
-      title: healthy eating
- knn_dist(): 1.977#!/[0-9]{0,5}/!#
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title, knn_dist() FROM test_knn_select WHERE knn(embedding, 2, 'food cooking recipes')"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
-         id: 2
-      title: cooking recipes
- knn_dist(): 0.807#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-         id: 5
-      title: healthy eating
- knn_dist(): 1.310#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-         id: 4
-      title: artificial intelligence
- knn_dist(): 1.739#!/[0-9]{0,5}/!#
- *************************** 4. row ***************************
-         id: 1
-      title: machine learning algorithms
- knn_dist(): 1.747#!/[0-9]{0,5}/!#
- *************************** 5. row ***************************
-         id: 3
-      title: travel destinations
- knn_dist(): 1.831#!/[0-9]{0,5}/!#
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title, knn_dist() FROM test_knn_select WHERE knn(embedding, 2, 1)"
––– output –––
- *************************** 1. row ***************************
-         id: 4
-      title: artificial intelligence
- knn_dist(): 0.225#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-         id: 2
-      title: cooking recipes
- knn_dist(): 1.762#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-         id: 3
-      title: travel destinations
- knn_dist(): 1.838#!/[0-9]{0,5}/!#
- *************************** 4. row ***************************
-         id: 5
-      title: healthy eating
- knn_dist(): 1.974#!/[0-9]{0,5}/!#
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title, category, knn_dist() FROM test_knn_select WHERE knn(embedding, 5, 'technology computers') AND category = 'technology'"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
-         id: 4
-      title: artificial intelligence
-   category: technology
- knn_dist(): 1.328#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-         id: 1
-      title: machine learning algorithms
-   category: technology
- knn_dist(): 1.357#!/[0-9]{0,5}/!#
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title, knn_dist() FROM test_knn_select WHERE knn(embedding, 3, 'travel vacation destinations', {ef=100, rescore=1, oversampling=2.0})"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
-         id: 3
-      title: travel destinations
- knn_dist(): 0.595#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-         id: 2
-      title: cooking recipes
- knn_dist(): 1.772#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-         id: 4
-      title: artificial intelligence
- knn_dist(): 1.796#!/[0-9]{0,5}/!#
- *************************** 4. row ***************************
-         id: 5
-      title: healthy eating
- knn_dist(): 1.869#!/[0-9]{0,5}/!#
- *************************** 5. row ***************************
-         id: 1
-      title: machine learning algorithms
- knn_dist(): 1.875#!/[0-9]{0,5}/!#
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title FROM test_knn_select WHERE knn(embedding, 3, 'search query with special chars @#$%^&*()')"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
-    id: 4
- title: artificial intelligence
- *************************** 2. row ***************************
-    id: 3
- title: travel destinations
- *************************** 3. row ***************************
-    id: 1
- title: machine learning algorithms
- *************************** 4. row ***************************
-    id: 5
- title: healthy eating
- *************************** 5. row ***************************
-    id: 2
- title: cooking recipes
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title, knn_dist() FROM test_knn_select WHERE knn(embedding, 3, 'artificial intelligence') AND MATCH('machine')"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
-         id: 4
-      title: artificial intelligence
- knn_dist(): 0.846#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-         id: 1
-      title: machine learning algorithms
- knn_dist(): 0.908#!/[0-9]{0,5}/!#
––– input –––
mysql -h0 -P9306 -E -e "SELECT id, title, knn_dist() FROM test_knn_select WHERE knn(embedding, 5, 'healthy nutrition food')"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
-         id: 5
-      title: healthy eating
- knn_dist(): 0.472#!/[0-9]{0,5}/!#
- *************************** 2. row ***************************
-         id: 2
-      title: cooking recipes
- knn_dist(): 1.500#!/[0-9]{0,5}/!#
- *************************** 3. row ***************************
-         id: 3
-      title: travel destinations
- knn_dist(): 1.803#!/[0-9]{0,5}/!#
- *************************** 4. row ***************************
-         id: 1
-      title: machine learning algorithms
- knn_dist(): 1.977#!/[0-9]{0,5}/!#
- *************************** 5. row ***************************
-         id: 4
-      title: artificial intelligence
- knn_dist(): 1.989#!/[0-9]{0,5}/!#
––– input –––
QUERY1_MD5=$(mysql -h0 -P9306 -E -e "SELECT id, knn_dist() FROM test_knn_select WHERE knn(embedding, 3, 'machine learning')" | md5sum | awk '{print $1}'); QUERY2_MD5=$(mysql -h0 -P9306 -E -e "SELECT id, knn_dist() FROM test_knn_select WHERE knn(embedding, 3, 'machine learning')" | md5sum | awk '{print $1}'); echo "query1_md5: $QUERY1_MD5"; echo "query2_md5: $QUERY2_MD5"; if [ "$QUERY1_MD5" = "$QUERY2_MD5" ]; then echo "SUCCESS: Same text query produces consistent results"; else echo "FAIL: Same text query produces different results"; fi
––– output –––
- query1_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
- query2_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
- SUCCESS: Same text query produces consistent results
+ query1_md5: d41d8cd98f00b204e9800998ecf8427e
+ query2_md5: d41d8cd98f00b204e9800998ecf8427e
+ SUCCESS: Same text query produces consistent results
––– input –––
TECH_MD5=$(mysql -h0 -P9306 -E -e "SELECT id, knn_dist() FROM test_knn_select WHERE knn(embedding, 3, 'technology computers')" | md5sum | awk '{print $1}'); FOOD_MD5=$(mysql -h0 -P9306 -E -e "SELECT id, knn_dist() FROM test_knn_select WHERE knn(embedding, 3, 'food cooking')" | md5sum | awk '{print $1}'); echo "tech_query_md5: $TECH_MD5"; echo "food_query_md5: $FOOD_MD5"; if [ "$TECH_MD5" != "$FOOD_MD5" ]; then echo "SUCCESS: Different text queries produce different results"; else echo "INFO: Query comparison result"; fi
––– output –––
- tech_query_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
- food_query_md5: #!/[a-f0-9]{32}/!#
+ ERROR 1064 (42000) at line 1: table test_knn_select: requested KNN search attribute 'embedding' not found
- #!/SUCCESS: Different text queries produce different results|INFO: Query comparison result/!#
+ tech_query_md5: d41d8cd98f00b204e9800998ecf8427e
+ food_query_md5: d41d8cd98f00b204e9800998ecf8427e
+ INFO: Query comparison result
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test_no_auto (id BIGINT, title TEXT, embedding FLOAT_VECTOR KNN_TYPE='hnsw' KNN_DIMS='384' HNSW_SIMILARITY='l2') engine='columnar'"; mysql -h0 -P9306 -e "INSERT INTO test_no_auto (id, title, embedding) VALUES (1, 'test', (0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.1, 0.2, 0.3, 0.4))"; mysql -h0 -P9306 -E -e "SELECT id, title FROM test_no_auto WHERE knn(embedding, 2, 'test query')"
––– output –––
OK

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

clt

❌ CLT tests in test/clt-tests/sharding/functional/functional-sharding-and-cluster-negative test/clt-tests/sharding/functional/functional-sharding-positive test/clt-tests/sharding/functional/test-dist-table-shards-5000 test/clt-tests/sharding/replication/create-table-1-node-10-shards test/clt-tests/sharding/replication/create-table-2-nodes-4-shards test/clt-tests/sharding/replication/create-table-3-nodes-6-shards test/clt-tests/sharding/replication/create-table-5-nodes-60-shards test/clt-tests/sharding/replication/test-data-manipulation test/clt-tests/sharding/replication/test-distributed-inserts-with-replication test/clt-tests/sharding/replication/test-multi-node-sharding-and-replication test/clt-tests/sharding/syntax/sharding-syntax-negative test/clt-tests/sharding/syntax/sharding-syntax-positive test/clt-tests/sharding/rollback/automatic-rollback-on-creation-failure
✅ OK: 12
❌ Failed: 1
⏳ Duration: 287s
👉 Check Action Results for commit b258d1e

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/rollback/automatic-rollback-on-creation-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:test_products (id bigint, name string, price float) shards='2' rf='2'" & sleep 3; export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; sleep 1; echo "Node 2 killed"
––– output –––
- Node 2 killed
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ Node 2 killed
––– input –––
sleep 15; echo "Wait completed"
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 10; mysql -h0 -P2306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as shard_count FROM system.sharding_table WHERE table = 'test_products'"
––– output –––
- +-------------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_table' in search request
- | shard_count |
- +-------------+
- |           2 |
- +-------------+

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

clt

❌ CLT tests in test/clt-tests/performance/test-json-disk_chunks test/clt-tests/performance/test-optimisation-and-update test/clt-tests/performance/test-show-table-tbl-name-status test/clt-tests/replication/fatal-invalid-port test/clt-tests/replication/test-auto-embeddings-replication test/clt-tests/replication/test-cluster-creation-without-replication test/clt-tests/replication/test-exit-cluster-3-nodes test/clt-tests/replication/test-exit-cluster-restart-survivor test/clt-tests/replication/test-exit-cluster-shared-node-multicluster test/clt-tests/replication/test-exit-cluster test/clt-tests/replication/test-generation-of-document-auto-id-in-replication test/clt-tests/replication/test-ist-recovery-after-node-crash test/clt-tests/replication/test-lock-tables-replicated
✅ OK: 15
❌ Failed: 1
⏳ Duration: 320s
👉 Check Action Results for commit b258d1e

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/replication/test-auto-embeddings-replication.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "drop table if exists t;"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create table t (f text, v float_vector knn_type='hnsw' hnsw_similarity='COSINE' model_name='sentence-transformers/all-MiniLM-L6-v2' from='f');"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: error adding table 't': prealloc: Failed to download model configuration
+ 1
––– input –––
mysql -h0 -P1306 -e "create cluster c;"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "alter cluster c add t;"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: unknown or wrong type of table 't'
+ 1
––– input –––
mysql -h0 -P2306 -e "join cluster c at '127.0.0.1:1312';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "insert into c:t(id,f) values(1,'bread');"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: table 't' absent
+ 1
––– input –––
mysql -E -h0 -P2306 -e "debug wait c status 2 like 'state' option 'timeout'=30;" | awk '/Value:/{print $2}'
––– output –––
- 2
+ 0
––– input –––
mysql -E -h0 -P2306 -e "select id, f from c:t order by id asc;" | awk '/f:/{print $2}'
––– output –––
- bread
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
––– input –––
mysql -h0 -P1306 -e "insert into c:t(id,f, v) values(10,'aaps', (0.1, 0.2));"; echo $?
––– output –––
- ERROR 1064 (42000) at line 1: attribute 'v' has model_name=sentence-transformers/all-MiniLM-L6-v2 specified, but vector contents with 2 values is provided
+ ERROR 1064 (42000) at line 1: table 't' absent
1
––– input –––
mysql -h0 -P1306 -e "insert into c:t(id,f, v) values(11,'not related text presented for testing', (-0.02887810952961445,-0.014508943073451519,0.06253206729888916,0.006139140110462904,0.007788040209561586,-0.029897022992372513,0.004299835301935673,-0.02102580852806568,-0.07824035733938217,-0.04040408879518509,-0.04838048294186592,-0.0078645721077919,0.010616137646138668,0.004826101940125227,-0.062401119619607925,0.07758325338363647,0.0104198744520545,0.0028890324756503105,-0.11988074332475662,-0.09860166907310486,0.025224801152944565,-0.00991450808942318,-0.05856771767139435,0.014609863981604576,0.005707146134227514,0.024516092613339424,0.0820961520075798,0.05104028061032295,-0.014301222749054432,-0.06978834420442581,0.051312025636434555,-0.0773017480969429,0.05717596784234047,0.03005439229309559,-0.06304150074720383,0.06810582429170609,-0.09292984753847122,0.006180487107485533,0.033087845891714096,0.01436525210738182,-0.0019107428379356861,-0.11795717477798462,0.036489419639110565,0.003296283772215247,0.07273916900157928,0.12453976273536682,-0.05751297250390053,-0.019802575930953026,-0.03427072986960411,0.06344299018383026,-0.0916014313697815,-0.013950333930552006,-0.016918571665883064,-0.027785340324044228,-0.06570874154567719,0.04672783613204956,0.016895921900868416,0.026192206889390945,0.00987544097006321,0.0047765751369297504,0.020895836874842644,-0.0705636665225029,-0.022132378071546555,-0.0324690006673336,0.05870749428868294,0.0021685678511857986,-0.043411076068878174,0.07814154028892517,-0.019831260666251183,-0.08912009000778198,-0.04109704867005348,0.05572393164038658,-0.0074473218992352486,0.015599397011101246,0.04969257488846779,-0.003387113567441702,0.022838285192847252,-0.020863434299826622,0.0694182813167572,-0.02072182483971119,-0.08121015131473541,-0.017036229372024536,-0.046413592994213104,0.09961981326341629,0.01960965059697628,-0.05294061452150345,-0.051695119589567184,0.018813325092196465,-0.0276397205889225,-0.034315574914216995,0.00913374125957489,-0.04280592501163483,0.022342398762702942,-0.05029156059026718,-0.03839508444070816,0.059815049171447754,0.013032465241849422,-0.14764592051506042,-0.005115848500281572,0.11305969953536987,-0.08993944525718689,0.08440786600112915,-0.0020546468440443277,-0.03318164497613907,0.04759039729833603,-0.03706233203411102,0.011276835575699806,0.00043600198114290833,0.07980957627296448,-0.15789221227169037,-0.07920952141284943,-0.02279348485171795,0.0539841502904892,-0.0818084329366684,-0.00291087431833148,-0.010869033634662628,0.004449532367289066,0.04457550495862961,-0.007860267534852028,0.023657092824578285,-0.020765071734786034,-0.02642984874546528,0.020103735849261284,0.1111338809132576,0.028429243713617325,-0.0725877657532692,-0.0678577795624733,1.8544020314946612e-33,-0.03472018986940384,-0.06150643527507782,-0.03177795186638832,0.03646891564130783,0.01958777941763401,-0.11167877912521362,0.01035370584577322,-0.0479571558535099,0.01566443033516407,0.008931931108236313,-0.05269512161612511,0.006171927321702242,0.03202659636735916,-0.006528966128826141,0.09422576427459717,-0.012561697512865067,0.04291675239801407,0.09155222773551941,0.02544848434627056,-0.025248372927308083,0.05366683751344681,0.011495773680508137,0.04045502096414566,-0.024824194610118866,-0.019793512299656868,0.03673143684864044,0.04070700332522392,0.02240411750972271,-0.010609647259116173,0.02108629047870636,0.07546887546777725,0.056149739772081375,-0.01266847550868988,0.023099826648831367,0.033572424203157425,0.0018432731740176678,-0.01756606251001358,0.060724057257175446,0.04019973427057266,0.0187228973954916,-0.034152500331401825,-0.034975096583366394,0.05602458491921425,-0.01720142364501953,-0.04200385883450508,-0.005915438756346703,0.04974375665187836,-0.06926773488521576,-0.027901772409677505,0.0007827704539522529,0.04093310236930847,-0.0445101372897625,-0.04872944578528404,-0.002661655191332102,0.08892837166786194,0.12077690660953522,-0.031700246036052704,0.008966736495494843,-0.020614879205822945,-0.04214325174689293,0.09248723089694977,0.012272832915186882,0.03789548575878143,0.0721842497587204,-0.028616590425372124,0.020248470827937126,0.0842500627040863,0.030446691438555717,0.011253142729401588,0.020550614222884178,0.02559511736035347,0.03574708104133606,0.03422650322318077,-0.0746365413069725,0.05465991050004959,0.037171103060245514,0.05248453840613365,0.002069835551083088,-0.008089751936495304,-0.011679762043058872,-0.12151028215885162,-0.008391043171286583,-0.014654085040092468,-0.054292161017656326,0.06412038207054138,-0.05077509954571724,0.0580800399184227,-0.01631723903119564,-0.01568209007382393,0.04950840398669243,-0.09341369569301605,0.023440195247530937,0.09112592786550522,0.00047929398715496063,-0.08850732445716858,-1.9623214127787707e-33,-0.12491357326507568,0.020150018855929375,0.03034389577805996,0.11277838796377182,0.034695543348789215,-0.011876045726239681,-0.06076759099960327,-0.011039776727557182,0.02729235216975212,0.10424460470676422,-0.001800763071514666,-0.008416797965765,0.06515590846538544,0.02585623413324356,-0.05551620572805405,0.07288996875286102,-0.010547428391873837,-0.03874387964606285,-0.00592134241014719,0.08981339633464813,-0.036455925554037094,0.04666841775178909,-0.021836930885910988,-0.016903260722756386,-0.011249814182519913,-0.019797921180725098,-0.017575707286596298,0.0004202927812002599,-0.05519506707787514,0.011089515872299671,0.030541645362973213,-0.02105090580880642,-0.0651649683713913,0.05198892205953598,-0.033706434071063995,0.006662809755653143,-0.026725811883807182,0.006605037488043308,-0.035417590290308,0.11581236124038696,0.011658085510134697,0.027106603607535362,-0.13228893280029297,-0.007210239302366972,-0.026874540373682976,-0.07146837562322617,-0.025904450565576553,0.03189704194664955,0.04362832009792328,-0.05089547485113144,-0.016457589343190193,-0.0020786665845662355,0.034416407346725464,-0.07606993615627289,-0.0384371243417263,0.09190164506435394,-0.0023519210517406464,-0.03578750416636467,0.0174117274582386,0.07065414637327194,-0.05423733592033386,-0.1115489974617958,0.034914083778858185,0.009716940112411976,0.017698979005217552,0.02325839176774025,-0.023224983364343643,0.08413097262382507,-0.05165207386016846,-0.04000084102153778,0.05087630823254585,0.031228039413690567,-0.007687970530241728,0.013114201836287975,0.009889479726552963,-0.06657213717699051,-0.04740755632519722,-0.045509014278650284,-0.016498880460858345,-0.05309320613741875,0.0233579371124506,-0.05407179892063141,0.02378183975815773,0.061486922204494476,0.016216298565268517,0.039252132177352905,0.022517172619700432,-0.013490748591721058,0.02116474136710167,-0.054400794208049774,0.0016664628637954593,0.08511592447757721,0.0061784167774021626,0.026095809414982796,-0.05038367956876755,-1.5553007770563454e-8,0.0017935795476660132,-0.06964796036481857,0.10214224457740784,-0.013182144612073898,0.0788150355219841,0.030127938836812973,-0.09085867553949356,0.06065487489104271,-0.02620915323495865,0.009598396718502045,0.021433483809232712,0.015229065902531147,0.006221206393092871,0.037634145468473434,-0.019239604473114014,0.01714528165757656,0.004608516115695238,0.022722238674759865,0.011902491562068462,0.009837309829890728,0.0965832769870758,0.01768278144299984,0.05329291522502899,-0.042203258723020554,0.04997896030545235,-0.06958130747079849,0.022804096341133118,0.04385494440793991,-0.01289377547800541,0.04677840694785118,-0.03932027146220207,0.06900487095117569,-0.0089718047529459,-0.00459922244772315,0.11239369213581085,0.11475653201341629,0.029179617762565613,-0.05705489590764046,-0.022557003423571587,0.028765123337507248,-0.055568233132362366,0.03479662165045738,-0.10511929541826248,-0.0041320896707475185,0.07684381306171417,0.024079209193587303,0.012334967032074928,-0.13599443435668945,0.01641032285988331,-0.005830815527588129,0.016982978209853172,0.05224009230732918,0.0589921697974205,0.059258945286273956,0.07644383609294891,0.01571839489042759,0.10470645874738693,-0.022268055006861687,0.008824847638607025,0.046184878796339035,-0.0035121834371238947,0.04443963244557381,-0.0010735581163316965,-0.08990925550460815));"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: table 't' absent
+ 1
––– input –––
mysql -E -h0 -P2306 -e "debug wait c status 3 like 'state' option 'timeout'=10;" | awk '/Value:/{print $2}'
––– output –––
- 3
+ 0
––– input –––
mysql -E -h0 -P2306 -e "select id, f from c:t order by id asc;"
––– output –––
- *************************** 1. row ***************************
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
- id: 1
-  f: bread
- *************************** 2. row ***************************
- id: 11
-  f: not related text presented for testing
––– input –––
mysql -h0 -P1306 -e "alter cluster c drop t;"
––– output –––
+ ERROR 1064 (42000) at line 1: unknown or wrong type of table 't'
––– input –––
mysql -h0 -P1306 -e "drop table t;"
––– output –––
+ ERROR 1064 (42000) at line 1: DROP TABLE failed: unknown table 't'

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

clt

❌ CLT tests in test/clt-tests/sharding/rollback/data-consistency-multiple-failures test/clt-tests/sharding/rollback/master-node-failure test/clt-tests/sharding/rollback/master-takeover-while-rollback test/clt-tests/sharding/rollback/mixed-rf-tables-node-failure test/clt-tests/sharding/rollback/new-node-addition-rf-replication test/clt-tests/sharding/rollback/node-failure-mid-creation-recovery test/clt-tests/sharding/rollback/node-killed-rf-maintained test/clt-tests/sharding/rollback/node-rejoin-stale-cluster-cleanup test/clt-tests/sharding/rollback/node-removal-rf-maintained test/clt-tests/sharding/rollback/rebalance-master-killed-mid-operation test/clt-tests/sharding/rollback/rf1-no-rebalance-on-failure test/clt-tests/sharding/rollback/sequential-node-failures-high-rf test/clt-tests/sharding/regression/test-columnar-engine-shard
✅ OK: 1
❌ Failed: 12
⏳ Duration: 878s
👉 Check Action Results for commit b258d1e

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/sharding/rollback/sequential-node-failures-high-rf.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='3' rf='3'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'Widget A'), (2, 'Widget B'), (3, 'Widget C')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:4312
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 2 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 20 grep -qm1 'Skipping rebalance for table' <(tail -n 100 -f /var/log/manticore-{3,4}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P3306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
OK
––– input –––
truncate -s 0 /var/log/manticore-3/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-3/searchd.log); echo $?
––– output –––
- 0
+ tail: /var/log/manticore-3/searchd.log: file truncated
+ 124
––– input –––
for i in 1 2 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312 127.0.0.1:4312
- system.t_s2: 127.0.0.1:1312 127.0.0.1:2312 127.0.0.1:4312
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
OK
test/clt-tests/sharding/rollback/master-takeover-while-rollback.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:1312 127.0.0.1:2312
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'becoming master' <(tail -n 1000 -f /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 2
––– output –––
OK
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
test/clt-tests/sharding/rollback/node-failure-mid-creation-recovery.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:orders (id bigint, total float) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO orders (id, total) VALUES (1, 100), (2, 200)"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
for port in 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 2306: synced
- Port 3306: synced
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 15; for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 1306: synced
- Port 2306: synced
- Port 3306: synced
test/clt-tests/sharding/rollback/data-consistency-multiple-failures.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, account string, amount float, ts int) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, account, amount, ts) VALUES (1, 'ACC001', 100.50, 1000), (2, 'ACC002', 200.75, 2000), (3, 'ACC003', 150.25, 3000), (4, 'ACC001', 300.00, 4000), (5, 'ACC002', 250.50, 5000)"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*), SUM(amount) FROM ${TABLE_NAME}"
––– output –––
- 5	1002.000000
+ +------+-------------+
+ |    5 | 1002.000000 |
+ +------+-------------+
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'becoming master' <(tail -n 1000 -f /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P2306 -e "INSERT INTO ${TABLE_NAME} (id, account, amount, ts) VALUES (6, 'ACC003', 175.00, 6000), (7, 'ACC001', 225.75, 7000)"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 2
––– output –––
OK
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'becoming master' <(tail -n 1000 -f /var/log/manticore-{1,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
for i in 1 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 2
––– output –––
OK
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*), SUM(amount) FROM ${TABLE_NAME}"
––– output –––
- 7	1402.75
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
––– input –––
for port in 1306 2306 3306; do echo "Node $port:"; mysql -h0 -P$port -sN -e "SELECT COUNT(*), SUM(amount) FROM ${TABLE_NAME}"; done
––– output –––
Node 1306:
- 7	1402.75
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
Node 2306:
- 7	1402.75
+ +------+------------+
- Node 3306:
+ |    3 | 476.250000 |
- 7	1402.75
+ +------+------------+
+ Node 3306:
+ +------+-------------+
+ |    7 | 1402.750000 |
+ +------+-------------+
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS ${TABLE_NAME}"; echo $?
––– output –––
OK
test/clt-tests/sharding/rollback/new-node-addition-rf-replication.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:existing_table (id bigint, data string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
for i in 1 2; do mysql -h0 -P${i}306 -sN -e "SELECT COUNT(*) FROM system.sharding_table WHERE table = 'existing_table'"; done
––– output –––
- 2
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_table' in search request
- 2
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_table' in search request
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P3306 -e "JOIN CLUSTER c at '127.0.0.1:1312'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: cluster 'c', no nodes available(127.0.0.1:1312), error: '127.0.0.1:1312': retries limit exceeded
+ 1
––– input –––
for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: Node synced"; done
––– output –––
- Port 1306: Node synced
- Port 2306: Node synced
- Port 3306: Node synced
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM system.sharding_state"
––– output –––
- 3
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'system.sharding_state' in search request
––– input –––
sleep 15; echo "Cluster stabilized"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS existing_table"
––– output –––
OK
test/clt-tests/sharding/rollback/node-rejoin-stale-cluster-cleanup.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'alpha'), (2, 'beta')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:2312 127.0.0.1:3312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
OK
––– input –––
truncate -s 0 /var/log/manticore-2/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 90 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 't' in search request
- |    2 |
- +------+
test/clt-tests/sharding/rollback/rf1-no-rebalance-on-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='2' rf='1'"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: local
- system.t_s1: 127.0.0.1:2312
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'Widget A'), (2, 'Widget B'), (3, 'Widget C'), (4, 'Widget D')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as total FROM ${TABLE_NAME}\\G" | grep total
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 10 grep -qm1 'Skipping rebalance for table' <(tail -n 1000 -f /var/log/manticore-1/searchd.log); echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: local
- system.t_s1: 127.0.0.1:2312
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as cnt FROM ${TABLE_NAME}\\G" | grep -E 'cnt:' | awk '{print $2}'
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 15; for port in 1306 2306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SELECT COUNT(*) as cnt FROM ${TABLE_NAME}\\G" | grep -E 'cnt:' | awk '{print $2}'
––– output –––
OK
test/clt-tests/sharding/rollback/node-removal-rf-maintained.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:items (id bigint, name string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO items (id, name) VALUES (1, 'Item1'), (2, 'Item2'), (3, 'Item3')"; echo $?
––– output –––
OK
––– input –––
for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 1306: synced
- Port 2306: synced
- Port 3306: synced
––– input –––
mysql -h0 -P1306 -e "show tables from system\\G" | grep -E 'items_s[0-9]' | wc -l
––– output –––
- 2
+ 0
test/clt-tests/sharding/rollback/node-killed-rf-maintained.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:data (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
mysql -h0 -P1306 -e "INSERT INTO data (id, value) VALUES (1, 'test1'), (2, 'test2')"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=2; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 2 killed"
––– output –––
OK
––– input –––
sleep 10; mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P1306 -e "INSERT INTO data (id, value) VALUES (3, 'test3')"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 20
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P2306 -e "SHOW STATUS LIKE 'cluster_c_status'\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM data"
––– output –––
- 3
+ +------+
+ |    3 |
+ +------+
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM data"
––– output –––
- 3
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'data' in search request
––– input –––
mysql -h0 -P1306 -e "DROP TABLE IF EXISTS data"; echo $?
––– output –––
OK
test/clt-tests/sharding/rollback/master-node-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE c:data (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Cluster 'c' does not exist
+ 1
––– input –––
sleep 5; mysql -h0 -P1306 -e "INSERT INTO data (id, value) VALUES (1, 'test_value')"; echo $?
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
for port in 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 2306: synced
- Port 3306: synced
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
sleep 15; mysql -h0 -P1306 -e "SHOW STATUS LIKE 'cluster_c_status'\\G"
––– output –––
- *************************** 1. row ***************************
- Counter: cluster_c_status
-   Value: primary
––– input –––
for port in 1306 2306 3306; do timeout 30 mysql -h0 -P$port -e "SHOW STATUS LIKE 'cluster_c_status'\\G" > /tmp/status_$port.log && grep -q "Value: primary" /tmp/status_$port.log && echo "Port $port: synced"; done
––– output –––
- Port 1306: synced
- Port 2306: synced
- Port 3306: synced
test/clt-tests/sharding/rollback/rebalance-master-killed-mid-operation.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:${TABLE_NAME} (id bigint, value string) shards='3' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO ${TABLE_NAME} (id, value) VALUES (1, 'one'), (2, 'two'), (3, 'three')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:1312 127.0.0.1:2312
- system.t_s1: 127.0.0.1:2312 127.0.0.1:3312
- system.t_s2: 127.0.0.1:3312 127.0.0.1:4312
––– input –––
export INSTANCE=4; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 4 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 20 grep -qm1 'Rebalancing due to inactive nodes' <(tail -n 100 -f /var/log/manticore-1/searchd.log); echo $?
––– output –––
OK
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Master killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 30 grep -qm1 'becoming master' <(tail -n 100 -f /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
OK
––– input –––
sleep 5
––– output –––
OK
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
OK
––– input –––
truncate -s 0 /var/log/manticore-{2,3}/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=4
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 90 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-{2,3}/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3 4; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "$TABLE_NAME"
––– output –––
- system.t_s0: 127.0.0.1:3312 127.0.0.1:2312
- system.t_s1: 127.0.0.1:3312 127.0.0.1:2312
- system.t_s2: 127.0.0.1:3312 127.0.0.1:2312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM ${TABLE_NAME}"
––– output –––
+------+
- |    3 |
+ | 3    |
+------+
test/clt-tests/sharding/rollback/mixed-rf-tables-node-failure.rec
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=2
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export INSTANCE=3
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
export CLUSTER_NAME=c TABLE_NAME=t
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "create cluster ${CLUSTER_NAME}"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
for n in `seq 2 $INSTANCE`; do mysql -h0 -P${n}306 -e "join cluster ${CLUSTER_NAME} at '127.0.0.1:1312'"; done;
––– output –––
OK
––– input –––
mysql -h0 -P${INSTANCE}306 -e "show status like 'cluster_${CLUSTER_NAME}_status'\G"
––– output –––
OK
––– input –––
show_shards() {
	shards=$(mysql -h0 -P$1 -e "show create table $2 option force=1\G" | grep "Create Table" | cut -d: -f2-)

	(
		# Handle local shards
		echo $shards | grep -oP "local='[^']*'" | sed "s/local='//g; s/'//g" | tr ',' '\n' | while read -r tbl; do
			[ -n "$tbl" ] && echo "$tbl: local"
		done

		# Handle agent shards
		echo $shards | grep -oP "agent='[^']*'" | sed "s/agent='//g; s/'//g" | tr '|' '\n' | awk -F: '{agents[$3] = agents[$3] ? agents[$3] " " $1 ":" $2 : $1 ":" $2} END {for (t in agents) print t ": " agents[t]}'
	) | sort
}
––– output –––
OK
––– input –––
check_cluster_status() {
	mysql -h0 -P$1 -e "SHOW STATUS LIKE 'cluster_${2}_status'\\G" | grep -q "Value: primary" && echo "OK" || echo "FAIL"
}
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:norep (id bigint, value string) shards='2' rf='1'"; echo $?
––– output –––
- 0
+ ERROR 1064 (42000) at line 1: Waiting timeout exceeded.
+ 1
––– input –––
mysql -h0 -P1306 -e "CREATE TABLE ${CLUSTER_NAME}:rep (id bigint, value string) shards='2' rf='2'"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO norep (id, value) VALUES (1, 'a'), (2, 'b')"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P1306 -e "INSERT INTO rep (id, value) VALUES (1, 'x'), (2, 'y')"; echo $?
––– output –––
OK
––– input –––
show_shards 1306 "norep"
––– output –––
- system.norep_s0: 127.0.0.1:1312
- system.norep_s1: 127.0.0.1:2312
––– input –––
show_shards 1306 "rep"
––– output –––
- system.rep_s0: 127.0.0.1:1312 127.0.0.1:2312
- system.rep_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
export INSTANCE=1; stdbuf -oL searchd --stopwait -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null; echo "Node 1 killed"
––– output –––
OK
––– input –––
timeout 30 bash -c 'while lsof -i :${INSTANCE}306 &>/dev/null; do sleep 1; done'
––– output –––
OK
––– input –––
timeout 60 grep -qm1 'Skipping rebalance for table norep' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
timeout 60 grep -qm1 'Rebalancing completed' <(tail -n 100 -f /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 2306 "norep"
––– output –––
- system.norep_s0: 127.0.0.1:1312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.norep_s1: 127.0.0.1:2312
––– input –––
show_shards 2306 "rep"
––– output –––
- system.rep_s0: 127.0.0.1:2312 127.0.0.1:3312
- system.rep_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
mysql -h0 -P2306 -sN -e "SELECT COUNT(*) FROM rep"
––– output –––
OK
––– input –––
truncate -s 0 /var/log/manticore-2/searchd.log
––– output –––
OK
––– input –––
export INSTANCE=1
––– output –––
OK
––– input –––
mkdir -p /var/{run,lib,log}/manticore-${INSTANCE}
––– output –––
OK
––– input –––
stdbuf -oL searchd -c test/clt-tests/base/searchd-with-flexible-ports.conf > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore-${INSTANCE}/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore-${INSTANCE}/searchd.log; fi
––– output –––
OK
––– input –––
timeout 90 grep -qm1 'Rebalancing completed' <(tail -n 100 -F /var/log/manticore-2/searchd.log); echo $?
––– output –––
- 0
+ 124
––– input –––
for i in 1 2 3; do check_cluster_status ${i}306 "$CLUSTER_NAME"; done | uniq
––– output –––
OK
––– input –––
show_shards 1306 "norep"
––– output –––
- system.norep_s0: 127.0.0.1:1312
- system.norep_s1: 127.0.0.1:2312
––– input –––
show_shards 1306 "rep"
––– output –––
- system.rep_s0: 127.0.0.1:1312 127.0.0.1:2312
+ ERROR 1064 (42000) at line 1: You have an error in your query. Please, double-check it.
- system.rep_s1: 127.0.0.1:2312 127.0.0.1:3312
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM norep"
––– output –––
OK
––– input –––
mysql -h0 -P1306 -sN -e "SELECT COUNT(*) FROM rep"
––– output –––
- +------+
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'rep' in search request
- |    2 |
- +------+

@sanikolaev sanikolaev force-pushed the feat/create-table-profile-relevance branch from 49c8b95 to 5ef110e Compare June 4, 2026 08:34
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.

1 participant