87 Commits

Author SHA1 Message Date
zhuwenxing
e3a85be435
test: replace parquet with jsonl for EventRecords and RequestRecords in checker (#46671)
/kind improvement

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
- Core invariant: tests' persistence of EventRecords and RequestRecords
must be append-safe under concurrent writers; this PR replaces Parquet
with JSONL and uses per-file locks and explicit buffer flushes to
guarantee atomic, append-safe writes (EventRecords uses event_lock +
append per line; RequestRecords buffers under request_lock and flushes
to file when threshold or on sink()).

- Logic removed/simplified and rationale: DataFrame-based parquet
append/read logic (pyarrow/fastparquet) and implicit parquet buffering
were removed in favor of simple line-oriented JSON writes and explicit
buffer management. The complex Parquet append/merge paths were redundant
because parquet append under concurrent test-writer patterns caused
corruption; JSONL removes the append-mode complexity and the
parquet-specific buffering/serialization code.

- Why no data loss or behavior regression (concrete code paths):
EventRecords.insert writes a complete JSON object per event under
event_lock to /tmp/ci_logs/event_records_*.jsonl and get_records_df
reads every JSON line under the same lock (or returns an empty DataFrame
with the same schema on FileNotFound/Error), preserving all fields
event_name/event_status/event_ts. RequestRecords.insert appends to an
in-memory buffer under request_lock and triggers _flush_buffer() when
len(buffer) >= 100; _flush_buffer() writes each buffered JSON line to
/tmp/ci_logs/request_records_*.jsonl and clears the buffer; sink() calls
_flush_buffer() under request_lock before get_records_df() reads the
file — ensuring all buffered records are persisted before reads. Both
read paths handle FileNotFoundError and exceptions by returning empty
DataFrames with identical column schemas, so external callers see the
same API and no silent record loss.

- Enhancement summary (concrete): Replaces flaky Parquet append/read
with JSONL + explicit locking and deterministic flush semantics,
removing the root cause of parquet append corruption in tests while
keeping the original DataFrame-based analysis consumers unchanged
(get_records_df returns equivalent schemas).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-12-30 14:13:21 +08:00
zhuwenxing
f4f5e0f4dc
test: add highlighter in checker (#46289)
/kind improvement

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
  * Updated test suite dependencies to pymilvus 2.7.0rc91.
  * Enhanced text highlighting validation in test checkers.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-12-30 14:11:26 +08:00
zhuwenxing
3aa0b769e5
test: add unique error message collection in chaos checker (#46262)
/kind improvement

- Add normalize_error_message function to extract and normalize error
text
- Collect unique error messages during chaos test execution
- Display error details in assertion messages for better debugging

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-12-11 13:49:12 +08:00
zhuwenxing
f68bd44f35
test: unify schema retrieval to use get_schema() method in chaos checker (#45985)
/kind improvement


Replace direct self.schema access and describe_collection() calls with
get_schema() method to ensure consistent schema handling with complete
struct_fields information. Also fix FlushChecker error handling and
change schema log level from info to debug.

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-12-02 09:43:10 +08:00
zhuwenxing
2d7574b5a3
test: refactor connection method to prioritize uri/token and add query limit (#45901)
- Refactor connection logic to prioritize uri and token parameters over
host/port/user/password for a more modern connection approach
- Add explicit limit parameter (limit=5) to search and query operations
in chaos checkers to avoid returning unlimited results
- Migrate test_all_collections_after_chaos.py from Collection wrapper to
MilvusClient API style
- Update pytest fixtures in chaos test files to support uri/token params

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-11-27 19:25:07 +08:00
zhuwenxing
464a805c63
test: add dynamicfield.enabled property alter in chaos checker (#45625)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-11-27 14:53:08 +08:00
zhuwenxing
e0df44481d
test: refactor checker to using milvus client (#45524)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-11-20 11:59:08 +08:00
Feilong Hou
db42b2df75
test: fix partial update chaos checker (#45492)
Issue: #45489 
<fix>: <fix partial update chaos checker>

 On branch feature/partial-update
 Changes to be committed:
	modified:   chaos/checker.py

---------

Signed-off-by: Eric Hou <eric.hou@zilliz.com>
Co-authored-by: Eric Hou <eric.hou@zilliz.com>
2025-11-13 17:29:37 +08:00
zhuwenxing
1e130683be
test: add geometry datatype in checker (#44794)
/kind improvement

---------

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-10-24 11:28:04 +08:00
Feilong Hou
f9afde23d1
test: Add New Test Cases for Partial Update (#44483)
Issue: #43872 
<fix>: <fix after accidental force pull>

 Changes to be committed:
	modified:   chaos/checker.py
	modified:   chaos/testcases/test_single_request_operation.py
	modified:   common/common_func.py
	modified:   common/common_type.py
	modified:   milvus_client/test_milvus_client_insert.py

This includes e2e cases and chaos checker.
All the cases are currently skipped due to partial update feature not
ready.

1. test_milvus_client_partial_update_insert_delete_upsert_with_flush():
insert -> delete -> flush -> query -> upsert -> flush -> query
2.
test_milvus_client_partial_update_insert_upsert_delete_upsert_flush():
insert -> upsert -> delete -> upsert -> flush -> query
3.
test_milvus_client_partial_update_insert_upsert_flush_delete_upsert_flush():
insert -> upsert -> flush -> delete -> upsert -> flush -> query Also
update requirements.txt to use latest pymilvus version

---------

Signed-off-by: Eric Hou <eric.hou@zilliz.com>
Co-authored-by: Eric Hou <eric.hou@zilliz.com>
2025-09-23 09:06:12 +08:00
zhuwenxing
b619684ca2
test: add collection rename checker in chaos test (#43412)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-07-21 11:34:53 +08:00
zhuwenxing
b043ff14c2
test: add add_collection_field feature in checker for chaos test (#42085)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-06-20 15:24:39 +08:00
Emmanuel Ferdman
c5adc09127
test: fix: resolve Python Logger warnings (#41827)
# PR Summary
This PR resolves the deprecation warnings of the `logger` library:
```python
DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
```

Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-06-03 14:47:51 +08:00
zhuwenxing
bfa948c2d4
test: Add int8 vector field support in search checker (#42047)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-05-26 16:18:49 +08:00
zhuwenxing
6a12304d1e
test: add alter collection checker (#41281)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-04-15 11:02:34 +08:00
zhuwenxing
8b9bb5dd68
test: add JsonQueryChecker in test (#41096)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-04-10 10:28:29 +08:00
yihao.dai
b2a8694686
enhance: Merge IndexNode and DataNode (#40272)
Merge DataNode and IndexNode into DataNode.

issue: https://github.com/milvus-io/milvus/issues/39115

---------

Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
2025-03-13 14:26:11 +08:00
zhuwenxing
828ecacadc
test: fix checker function name, release mistake and add nullable (#40135)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-02-26 10:27:56 +08:00
zhuwenxing
31fe8cc1c3
test: add phrase match in chaos test (#39765)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2025-02-11 13:56:45 +08:00
zhuwenxing
0fc6c634b0
test: fix tokenizer and monkey patch faker function (#37119)
/kind improvement

---------

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
Signed-off-by: zhuwenxing <wxzhuyeah@gmail.com>
2024-11-05 08:42:23 +08:00
cai.zhang
50de122dc7
enhance: Rename textmatch to text_match (#37290)
issue: #36672

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2024-11-03 18:40:27 +08:00
zhuwenxing
6e37372619
test: update checker (#37275)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-10-31 09:50:20 +08:00
zhuwenxing
ac2858d418
test: add full text search checker in test (#37122)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-10-25 14:09:29 +08:00
zhuwenxing
80d48f1e53
test: add text match checker in test (#37052)
/kind improvement

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-10-23 09:49:27 +08:00
zhuwenxing
3336b91ce6
test: add channel exclusive balance test and resource group test (#33093)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-05-31 13:55:52 +08:00
binbin
be87ae6424
test: update pymilvus version (#33079)
issue: #17614

Signed-off-by: binbin lv <binbin.lv@zilliz.com>
2024-05-16 14:53:34 +08:00
zhuwenxing
9a269f1489
test: add import checker to chaos test (#32908)
add import checker to chaos test

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-05-10 11:43:30 +08:00
zhuwenxing
8442098457
test: skip index if it already created (#32402)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-04-22 10:37:22 +08:00
zhuwenxing
109cd0402f
test: fix delete expr (#32377)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-04-18 17:25:20 +08:00
zhuwenxing
f0bff1e1a8
test: add hybrid search in checker for test (#30341)
add hybrid search in checker for test

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-02-23 10:46:52 +08:00
zhuwenxing
b02b525196
test: refine debug log and error handle (#30406)
refine debug log and error handle

---------

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-02-01 09:59:05 +08:00
zhuwenxing
aab7cc9ecd
test: add freshness checker (#30280)
add freshness checker

insert/upsert --> query:  Get the time when it can be queried

delete --> query: Get the time when it can not be queried

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-01-29 12:09:01 +08:00
zhuwenxing
72c81c8ae4
test: add multi-tenancy checker (#29635)
add multi-tenancy checker

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2024-01-03 15:20:49 +08:00
zhuwenxing
6efb7afd3f
test: add more request type checker for test (#29210)
add more request type checker for test
* partition 
* database
* upsert

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-12-14 19:38:45 +08:00
zhuwenxing
906b348e00
[skip e2e]Update chaos duration time (#27879)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-10-24 11:47:59 +08:00
zhuwenxing
5923f109a0
[test]Add concurrent test in ci (#27633)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-10-23 11:46:21 +08:00
zhuwenxing
38fc652fdd
[test]Reduce some op frequency (#27826)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-10-23 11:44:22 +08:00
zhuwenxing
1bad19a121
[test]Fix apply chaos condition (#27625)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-10-11 14:11:33 +08:00
zhuwenxing
01c4499a12
[skip e2e]Use default timeout for creating index in chaos test (#27434)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-09-28 15:57:27 +08:00
zhuwenxing
0f4475e5e3
[test]Refine health checker in test (#26920)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-09-08 10:09:16 +08:00
zhuwenxing
bd4b842153
[test]Update chaos apply and chaos scope (#26873)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-09-06 14:03:14 +08:00
zhuwenxing
68a2940b66
[test]Refine chaos apply (#26823)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-09-05 10:17:48 +08:00
zhuwenxing
b3de99e336
[test]Add method to analyze chaos test result (#26724)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-09-01 10:31:01 +08:00
zhuwenxing
64a9762cf3
[test]Add all succ check after rolling update (#26638)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-08-29 14:30:27 +08:00
zhuwenxing
d5398c8ce5
[skip e2e]Refine timeout for search and query (#26086)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-08-02 14:49:06 +08:00
zhuwenxing
037a58a60d
[test]Enable standby during rolling update and refine bulk insert (#26039)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-08-01 09:37:04 +08:00
zhuwenxing
ee5da73fae
[test]Add bulk insert for test and refactoring the checker function (#25997)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-07-31 12:45:03 +08:00
zhuwenxing
d92aac951a
[test]Update bulk insert test (#25838)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-07-24 09:09:05 +08:00
zhuwenxing
b70da0859a
[test]Add RPO and RTO metric for rolling update test (#25612)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-07-14 19:22:36 +08:00
zhuwenxing
691809065f
[test]Reduce batches to avoid exceeding request body size limit (#24737)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2023-06-08 14:10:35 +08:00