Commit d892736
[FaultInjection] FaultInjection: Refactors code quality improvements (#5678)
## Summary
This PR implements code quality improvements for the FaultInjection
library.
### Changes
**1. Mark `enabled` fields as `volatile` (#5663)**
- Added `volatile` keyword to `enabled` fields in `FaultInjectionRule`,
`FaultInjectionServerErrorRule`, `FaultInjectionConnectionErrorRule`,
and `FaultInjectionCustomServerErrorRule`.
- These fields are read/written from multiple threads via
`Enable()`/`Disable()` methods. Without `volatile`, changes may not be
visible to other threads due to CPU cache coherence.
**2. Add null guards in `FaultInjectionEndpointBuilder` (#5666)**
- Added `ArgumentNullException` guards for `databaseName`,
`containerName`, and `feedRange` in the constructor.
- Previously, null values would result in deferred errors rather than
clear exceptions at construction time.
**3. Throw when `WithDelay()` called on non-delay error type (#5667)**
- Changed `WithDelay()` from silently ignoring the delay for
non-applicable error types to throwing `InvalidOperationException`.
- Only `SendDelay`, `ResponseDelay`, and `ConnectionDelay` support
delays. Calling `WithDelay()` on other types (e.g., `Gone`) now throws
to make misconfiguration explicit.
**4. Implement `CanLimitToPartition` for metadata operations (#5669)**
- Replaced the TODO stub with actual implementation.
- Returns `false` for metadata operation types (`MetadataContainer`,
`MetadataDatabaseAccount`, `MetadataPartitionKeyRange`,
`MetadataRefreshAddresses`, `MetadataQueryPlan`) since these are
account/collection-level operations that cannot be targeted to specific
partitions.
### Testing
- Build verified locally with `dotnet build`
Parent tracking issue: #5652
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Kiran Kumar Kolli <kirankk@microsoft.com>1 parent 7126846 commit d892736
9 files changed
Lines changed: 31 additions & 38 deletions
File tree
- Microsoft.Azure.Cosmos
- FaultInjection
- src
- implementation
- tests
- tests/Microsoft.Azure.Cosmos.EmulatorTests
Lines changed: 11 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
27 | 37 | | |
28 | 38 | | |
29 | | - | |
| 39 | + | |
30 | 40 | | |
31 | 41 | | |
32 | 42 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
Lines changed: 9 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
56 | | - | |
57 | | - | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
58 | 58 | | |
59 | | - | |
60 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
61 | 62 | | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
62 | 66 | | |
63 | 67 | | |
64 | 68 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
328 | 328 | | |
329 | 329 | | |
330 | 330 | | |
331 | | - | |
332 | | - | |
333 | 331 | | |
334 | 332 | | |
| 333 | + | |
335 | 334 | | |
336 | | - | |
| 335 | + | |
| 336 | + | |
337 | 337 | | |
338 | 338 | | |
339 | 339 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| |||
Lines changed: 0 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
812 | 812 | | |
813 | 813 | | |
814 | 814 | | |
815 | | - | |
816 | 815 | | |
817 | 816 | | |
818 | 817 | | |
| |||
842 | 841 | | |
843 | 842 | | |
844 | 843 | | |
845 | | - | |
846 | | - | |
847 | | - | |
848 | 844 | | |
849 | 845 | | |
850 | 846 | | |
| |||
859 | 855 | | |
860 | 856 | | |
861 | 857 | | |
862 | | - | |
863 | | - | |
864 | | - | |
865 | | - | |
866 | 858 | | |
867 | 859 | | |
868 | 860 | | |
| |||
Lines changed: 1 addition & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
498 | 498 | | |
499 | 499 | | |
500 | 500 | | |
501 | | - | |
502 | 501 | | |
503 | 502 | | |
504 | 503 | | |
| |||
627 | 626 | | |
628 | 627 | | |
629 | 628 | | |
630 | | - | |
631 | 629 | | |
632 | 630 | | |
633 | 631 | | |
| |||
750 | 748 | | |
751 | 749 | | |
752 | 750 | | |
753 | | - | |
754 | 751 | | |
755 | 752 | | |
756 | 753 | | |
| |||
764 | 761 | | |
765 | 762 | | |
766 | 763 | | |
767 | | - | |
768 | 764 | | |
769 | 765 | | |
770 | 766 | | |
| |||
914 | 910 | | |
915 | 911 | | |
916 | 912 | | |
917 | | - | |
918 | 913 | | |
919 | 914 | | |
920 | 915 | | |
| |||
1030 | 1025 | | |
1031 | 1026 | | |
1032 | 1027 | | |
1033 | | - | |
1034 | 1028 | | |
1035 | 1029 | | |
1036 | 1030 | | |
| |||
1122 | 1116 | | |
1123 | 1117 | | |
1124 | 1118 | | |
1125 | | - | |
1126 | 1119 | | |
1127 | 1120 | | |
1128 | 1121 | | |
| |||
1209 | 1202 | | |
1210 | 1203 | | |
1211 | 1204 | | |
1212 | | - | |
1213 | 1205 | | |
1214 | 1206 | | |
1215 | 1207 | | |
| |||
1333 | 1325 | | |
1334 | 1326 | | |
1335 | 1327 | | |
1336 | | - | |
1337 | 1328 | | |
1338 | 1329 | | |
1339 | 1330 | | |
| |||
1347 | 1338 | | |
1348 | 1339 | | |
1349 | 1340 | | |
1350 | | - | |
1351 | 1341 | | |
1352 | 1342 | | |
1353 | 1343 | | |
| |||
1596 | 1586 | | |
1597 | 1587 | | |
1598 | 1588 | | |
1599 | | - | |
1600 | 1589 | | |
1601 | 1590 | | |
1602 | 1591 | | |
| |||
1957 | 1946 | | |
1958 | 1947 | | |
1959 | 1948 | | |
1960 | | - | |
1961 | 1949 | | |
1962 | 1950 | | |
1963 | 1951 | | |
| |||
2085 | 2073 | | |
2086 | 2074 | | |
2087 | 2075 | | |
2088 | | - | |
2089 | 2076 | | |
2090 | 2077 | | |
2091 | 2078 | | |
| |||
0 commit comments