Import CS git
This commit is contained in:
parent
920ecff2d4
commit
b4fc291a94
@ -1,3 +1,3 @@
|
||||
bd9aab32d9cbf9231058d585479813f3420dc872 SOURCES/389-ds-base-1.4.3.39.tar.bz2
|
||||
1c8f2d0dfbf39fa8cd86363bf3314351ab21f8d4 SOURCES/jemalloc-5.3.0.tar.bz2
|
||||
be91d7a64f7abbba6d6e40d8b23d1e3f95ea3949 SOURCES/vendor-1.4.3.39-2.tar.gz
|
||||
8d3275209f2f8e1a69053340930ad1fb037d61fb SOURCES/vendor-1.4.3.39-3.tar.gz
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
||||
SOURCES/389-ds-base-1.4.3.39.tar.bz2
|
||||
SOURCES/jemalloc-5.3.0.tar.bz2
|
||||
SOURCES/vendor-1.4.3.39-2.tar.gz
|
||||
SOURCES/vendor-1.4.3.39-3.tar.gz
|
||||
|
||||
@ -1,894 +0,0 @@
|
||||
From c243d7aa593046a7037188f0bf060caa1865a1f8 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Pichugin <spichugi@redhat.com>
|
||||
Date: Wed, 19 Feb 2025 18:56:34 -0800
|
||||
Subject: [PATCH] Issue 6553 - Update concread to 0.5.4 and refactor statistics
|
||||
tracking (#6607)
|
||||
|
||||
Description: Implement new cache statistics tracking with atomic counters
|
||||
and dedicated stats structs.
|
||||
Update concread dependency to 0.5.4 for improved cache performance.
|
||||
Add tests for cache statistics functionality.
|
||||
|
||||
Fixes: https://github.com/389ds/389-ds-base/issues/6553
|
||||
|
||||
Reviewed by: @firstyear
|
||||
---
|
||||
ldap/servers/slapd/dn.c | 4 +-
|
||||
src/Cargo.lock | 272 +++++++++++++-----------------
|
||||
src/librslapd/Cargo.toml | 5 +-
|
||||
src/librslapd/src/cache.rs | 331 +++++++++++++++++++++++++++++++++----
|
||||
4 files changed, 418 insertions(+), 194 deletions(-)
|
||||
|
||||
diff --git a/ldap/servers/slapd/dn.c b/ldap/servers/slapd/dn.c
|
||||
index 518e091d5..469ba6a71 100644
|
||||
--- a/ldap/servers/slapd/dn.c
|
||||
+++ b/ldap/servers/slapd/dn.c
|
||||
@@ -101,7 +101,7 @@ struct ndn_cache {
|
||||
|
||||
/*
|
||||
* This means we need 1 MB minimum per thread
|
||||
- *
|
||||
+ *
|
||||
*/
|
||||
#define NDN_CACHE_MINIMUM_CAPACITY 1048576
|
||||
/*
|
||||
@@ -3404,7 +3404,7 @@ ndn_cache_get_stats(uint64_t *hits, uint64_t *tries, uint64_t *size, uint64_t *m
|
||||
uint64_t freq_evicts;
|
||||
uint64_t recent_evicts;
|
||||
uint64_t p_weight;
|
||||
- cache_char_stats(cache,
|
||||
+ cache_char_stats(cache,
|
||||
&reader_hits,
|
||||
&reader_includes,
|
||||
&write_hits,
|
||||
diff --git a/src/Cargo.lock b/src/Cargo.lock
|
||||
index 4667a17f1..908b5f639 100644
|
||||
--- a/src/Cargo.lock
|
||||
+++ b/src/Cargo.lock
|
||||
@@ -19,23 +19,28 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
|
||||
|
||||
[[package]]
|
||||
name = "ahash"
|
||||
-version = "0.7.7"
|
||||
+version = "0.8.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
|
||||
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
||||
dependencies = [
|
||||
- "getrandom",
|
||||
+ "cfg-if",
|
||||
+ "getrandom 0.2.15",
|
||||
"once_cell",
|
||||
"version_check",
|
||||
+ "zerocopy",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
-name = "ansi_term"
|
||||
-version = "0.12.1"
|
||||
+name = "allocator-api2"
|
||||
+version = "0.2.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
|
||||
-dependencies = [
|
||||
- "winapi",
|
||||
-]
|
||||
+checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "arc-swap"
|
||||
+version = "1.7.1"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
|
||||
|
||||
[[package]]
|
||||
name = "atty"
|
||||
@@ -143,51 +148,20 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "concread"
|
||||
-version = "0.2.21"
|
||||
+version = "0.5.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "dcc9816f5ac93ebd51c37f7f9a6bf2b40dfcd42978ad2aea5d542016e9244cf6"
|
||||
+checksum = "0a06c26e76cd1d7a88a44324d0cf18b11589be552e97af09bee345f7e7334c6d"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
- "crossbeam",
|
||||
+ "arc-swap",
|
||||
"crossbeam-epoch",
|
||||
+ "crossbeam-queue",
|
||||
"crossbeam-utils",
|
||||
"lru",
|
||||
- "parking_lot",
|
||||
- "rand",
|
||||
"smallvec",
|
||||
+ "sptr",
|
||||
"tokio",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "crossbeam"
|
||||
-version = "0.8.4"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
|
||||
-dependencies = [
|
||||
- "crossbeam-channel",
|
||||
- "crossbeam-deque",
|
||||
- "crossbeam-epoch",
|
||||
- "crossbeam-queue",
|
||||
- "crossbeam-utils",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "crossbeam-channel"
|
||||
-version = "0.5.11"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
|
||||
-dependencies = [
|
||||
- "crossbeam-utils",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "crossbeam-deque"
|
||||
-version = "0.8.5"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
|
||||
-dependencies = [
|
||||
- "crossbeam-epoch",
|
||||
- "crossbeam-utils",
|
||||
+ "tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -236,6 +210,12 @@ dependencies = [
|
||||
"uuid",
|
||||
]
|
||||
|
||||
+[[package]]
|
||||
+name = "equivalent"
|
||||
+version = "1.0.2"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
||||
+
|
||||
[[package]]
|
||||
name = "errno"
|
||||
version = "0.3.8"
|
||||
@@ -265,6 +245,12 @@ dependencies = [
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
+[[package]]
|
||||
+name = "foldhash"
|
||||
+version = "0.1.4"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f"
|
||||
+
|
||||
[[package]]
|
||||
name = "foreign-types"
|
||||
version = "0.3.2"
|
||||
@@ -302,8 +288,16 @@ name = "hashbrown"
|
||||
version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "hashbrown"
|
||||
+version = "0.15.2"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
|
||||
dependencies = [
|
||||
- "ahash",
|
||||
+ "allocator-api2",
|
||||
+ "equivalent",
|
||||
+ "foldhash",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -316,12 +310,13 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
-name = "instant"
|
||||
-version = "0.1.12"
|
||||
+name = "indexmap"
|
||||
+version = "1.9.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
|
||||
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
|
||||
dependencies = [
|
||||
- "cfg-if",
|
||||
+ "autocfg",
|
||||
+ "hashbrown 0.12.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -370,16 +365,6 @@ version = "0.4.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
|
||||
|
||||
-[[package]]
|
||||
-name = "lock_api"
|
||||
-version = "0.4.11"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
|
||||
-dependencies = [
|
||||
- "autocfg",
|
||||
- "scopeguard",
|
||||
-]
|
||||
-
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.20"
|
||||
@@ -388,11 +373,11 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
|
||||
|
||||
[[package]]
|
||||
name = "lru"
|
||||
-version = "0.7.8"
|
||||
+version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a"
|
||||
+checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465"
|
||||
dependencies = [
|
||||
- "hashbrown",
|
||||
+ "hashbrown 0.15.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -464,29 +449,10 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
-name = "parking_lot"
|
||||
-version = "0.11.2"
|
||||
+name = "os_str_bytes"
|
||||
+version = "6.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
|
||||
-dependencies = [
|
||||
- "instant",
|
||||
- "lock_api",
|
||||
- "parking_lot_core",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "parking_lot_core"
|
||||
-version = "0.8.6"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
|
||||
-dependencies = [
|
||||
- "cfg-if",
|
||||
- "instant",
|
||||
- "libc",
|
||||
- "redox_syscall 0.2.16",
|
||||
- "smallvec",
|
||||
- "winapi",
|
||||
-]
|
||||
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
|
||||
|
||||
[[package]]
|
||||
name = "paste"
|
||||
@@ -519,12 +485,6 @@ version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
|
||||
|
||||
-[[package]]
|
||||
-name = "ppv-lite86"
|
||||
-version = "0.2.17"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
||||
-
|
||||
[[package]]
|
||||
name = "proc-macro-hack"
|
||||
version = "0.5.20+deprecated"
|
||||
@@ -562,54 +522,6 @@ dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
|
||||
-[[package]]
|
||||
-name = "rand"
|
||||
-version = "0.8.5"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
||||
-dependencies = [
|
||||
- "libc",
|
||||
- "rand_chacha",
|
||||
- "rand_core",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "rand_chacha"
|
||||
-version = "0.3.1"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
||||
-dependencies = [
|
||||
- "ppv-lite86",
|
||||
- "rand_core",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "rand_core"
|
||||
-version = "0.6.4"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
-dependencies = [
|
||||
- "getrandom",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "redox_syscall"
|
||||
-version = "0.2.16"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
|
||||
-dependencies = [
|
||||
- "bitflags 1.3.2",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "redox_syscall"
|
||||
-version = "0.4.1"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
|
||||
-dependencies = [
|
||||
- "bitflags 1.3.2",
|
||||
-]
|
||||
-
|
||||
[[package]]
|
||||
name = "rsds"
|
||||
version = "0.1.0"
|
||||
@@ -639,12 +551,6 @@ version = "1.0.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
|
||||
|
||||
-[[package]]
|
||||
-name = "scopeguard"
|
||||
-version = "1.2.0"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
||||
-
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.195"
|
||||
@@ -698,6 +604,12 @@ version = "1.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e"
|
||||
|
||||
+[[package]]
|
||||
+name = "sptr"
|
||||
+version = "0.3.2"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
|
||||
+
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
version = "0.8.0"
|
||||
@@ -756,27 +668,46 @@ checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
|
||||
dependencies = [
|
||||
"backtrace",
|
||||
"pin-project-lite",
|
||||
- "tokio-macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
-name = "tokio-macros"
|
||||
-version = "2.2.0"
|
||||
+name = "toml"
|
||||
+version = "0.5.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
|
||||
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
|
||||
+dependencies = [
|
||||
+ "serde",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "tracing"
|
||||
+version = "0.1.41"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
|
||||
+dependencies = [
|
||||
+ "pin-project-lite",
|
||||
+ "tracing-attributes",
|
||||
+ "tracing-core",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "tracing-attributes"
|
||||
+version = "0.1.28"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
- "syn 2.0.48",
|
||||
+ "syn 2.0.98",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
-name = "toml"
|
||||
-version = "0.5.11"
|
||||
+name = "tracing-core"
|
||||
+version = "0.1.33"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
|
||||
+checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
|
||||
dependencies = [
|
||||
- "serde",
|
||||
+ "once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -910,7 +841,36 @@ checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
|
||||
name = "windows_x86_64_msvc"
|
||||
version = "0.52.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
|
||||
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "wit-bindgen-rt"
|
||||
+version = "0.33.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"
|
||||
+dependencies = [
|
||||
+ "bitflags 2.8.0",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "zerocopy"
|
||||
+version = "0.7.35"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
|
||||
+dependencies = [
|
||||
+ "zerocopy-derive",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "zerocopy-derive"
|
||||
+version = "0.7.35"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
||||
+dependencies = [
|
||||
+ "proc-macro2",
|
||||
+ "quote",
|
||||
+ "syn 2.0.98",
|
||||
+]
|
||||
|
||||
[[package]]
|
||||
name = "zeroize"
|
||||
diff --git a/src/librslapd/Cargo.toml b/src/librslapd/Cargo.toml
|
||||
index fb445c251..6d9b621fc 100644
|
||||
--- a/src/librslapd/Cargo.toml
|
||||
+++ b/src/librslapd/Cargo.toml
|
||||
@@ -16,8 +16,7 @@ crate-type = ["staticlib", "lib"]
|
||||
[dependencies]
|
||||
slapd = { path = "../slapd" }
|
||||
libc = "0.2"
|
||||
-concread = "^0.2.20"
|
||||
+concread = "0.5.4"
|
||||
|
||||
[build-dependencies]
|
||||
-cbindgen = "0.9"
|
||||
-
|
||||
+cbindgen = "0.26"
|
||||
diff --git a/src/librslapd/src/cache.rs b/src/librslapd/src/cache.rs
|
||||
index b025c830a..e3c692865 100644
|
||||
--- a/src/librslapd/src/cache.rs
|
||||
+++ b/src/librslapd/src/cache.rs
|
||||
@@ -1,38 +1,171 @@
|
||||
// This exposes C-FFI capable bindings for the concread concurrently readable cache.
|
||||
+use concread::arcache::stats::{ARCacheWriteStat, ReadCountStat};
|
||||
use concread::arcache::{ARCache, ARCacheBuilder, ARCacheReadTxn, ARCacheWriteTxn};
|
||||
-use std::convert::TryInto;
|
||||
+use concread::cowcell::CowCell;
|
||||
use std::ffi::{CStr, CString};
|
||||
use std::os::raw::c_char;
|
||||
|
||||
+#[derive(Clone, Debug, Default)]
|
||||
+struct CacheStats {
|
||||
+ reader_hits: u64, // Hits from read transactions (main + local)
|
||||
+ reader_includes: u64, // Number of includes from read transactions
|
||||
+ write_hits: u64, // Hits from write transactions
|
||||
+ write_inc_or_mod: u64, // Number of includes/modifications from write transactions
|
||||
+ freq_evicts: u64, // Number of evictions from frequent set
|
||||
+ recent_evicts: u64, // Number of evictions from recent set
|
||||
+ p_weight: u64, // Current cache weight between recent and frequent.
|
||||
+ shared_max: u64, // Maximum number of items in the shared cache.
|
||||
+ freq: u64, // Number of items in the frequent set at this point in time.
|
||||
+ recent: u64, // Number of items in the recent set at this point in time.
|
||||
+ all_seen_keys: u64, // Number of total keys seen through the cache's lifetime.
|
||||
+}
|
||||
+
|
||||
+impl CacheStats {
|
||||
+ fn new() -> Self {
|
||||
+ CacheStats::default()
|
||||
+ }
|
||||
+
|
||||
+ fn update_from_read_stat(&mut self, stat: ReadCountStat) {
|
||||
+ self.reader_hits += stat.main_hit + stat.local_hit;
|
||||
+ self.reader_includes += stat.include + stat.local_include;
|
||||
+ }
|
||||
+
|
||||
+ fn update_from_write_stat(&mut self, stat: &FFIWriteStat) {
|
||||
+ self.write_hits += stat.read_hits;
|
||||
+ self.write_inc_or_mod += stat.includes + stat.modifications;
|
||||
+ self.freq_evicts += stat.freq_evictions;
|
||||
+ self.recent_evicts += stat.recent_evictions;
|
||||
+ self.p_weight = stat.p_weight;
|
||||
+ self.shared_max = stat.shared_max;
|
||||
+ self.freq = stat.freq;
|
||||
+ self.recent = stat.recent;
|
||||
+ self.all_seen_keys = stat.all_seen_keys;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+#[derive(Debug, Default)]
|
||||
+pub struct FFIWriteStat {
|
||||
+ pub read_ops: u64,
|
||||
+ pub read_hits: u64,
|
||||
+ pub p_weight: u64,
|
||||
+ pub shared_max: u64,
|
||||
+ pub freq: u64,
|
||||
+ pub recent: u64,
|
||||
+ pub all_seen_keys: u64,
|
||||
+ pub includes: u64,
|
||||
+ pub modifications: u64,
|
||||
+ pub freq_evictions: u64,
|
||||
+ pub recent_evictions: u64,
|
||||
+ pub ghost_freq_revives: u64,
|
||||
+ pub ghost_rec_revives: u64,
|
||||
+ pub haunted_includes: u64,
|
||||
+}
|
||||
+
|
||||
+impl<K> ARCacheWriteStat<K> for FFIWriteStat {
|
||||
+ fn cache_clear(&mut self) {
|
||||
+ self.read_ops = 0;
|
||||
+ self.read_hits = 0;
|
||||
+ }
|
||||
+
|
||||
+ fn cache_read(&mut self) {
|
||||
+ self.read_ops += 1;
|
||||
+ }
|
||||
+
|
||||
+ fn cache_hit(&mut self) {
|
||||
+ self.read_hits += 1;
|
||||
+ }
|
||||
+
|
||||
+ fn p_weight(&mut self, p: u64) {
|
||||
+ self.p_weight = p;
|
||||
+ }
|
||||
+
|
||||
+ fn shared_max(&mut self, i: u64) {
|
||||
+ self.shared_max = i;
|
||||
+ }
|
||||
+
|
||||
+ fn freq(&mut self, i: u64) {
|
||||
+ self.freq = i;
|
||||
+ }
|
||||
+
|
||||
+ fn recent(&mut self, i: u64) {
|
||||
+ self.recent = i;
|
||||
+ }
|
||||
+
|
||||
+ fn all_seen_keys(&mut self, i: u64) {
|
||||
+ self.all_seen_keys = i;
|
||||
+ }
|
||||
+
|
||||
+ fn include(&mut self, _k: &K) {
|
||||
+ self.includes += 1;
|
||||
+ }
|
||||
+
|
||||
+ fn include_haunted(&mut self, _k: &K) {
|
||||
+ self.haunted_includes += 1;
|
||||
+ }
|
||||
+
|
||||
+ fn modify(&mut self, _k: &K) {
|
||||
+ self.modifications += 1;
|
||||
+ }
|
||||
+
|
||||
+ fn ghost_frequent_revive(&mut self, _k: &K) {
|
||||
+ self.ghost_freq_revives += 1;
|
||||
+ }
|
||||
+
|
||||
+ fn ghost_recent_revive(&mut self, _k: &K) {
|
||||
+ self.ghost_rec_revives += 1;
|
||||
+ }
|
||||
+
|
||||
+ fn evict_from_recent(&mut self, _k: &K) {
|
||||
+ self.recent_evictions += 1;
|
||||
+ }
|
||||
+
|
||||
+ fn evict_from_frequent(&mut self, _k: &K) {
|
||||
+ self.freq_evictions += 1;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
pub struct ARCacheChar {
|
||||
inner: ARCache<CString, CString>,
|
||||
+ stats: CowCell<CacheStats>,
|
||||
}
|
||||
|
||||
pub struct ARCacheCharRead<'a> {
|
||||
- inner: ARCacheReadTxn<'a, CString, CString>,
|
||||
+ inner: ARCacheReadTxn<'a, CString, CString, ReadCountStat>,
|
||||
+ cache: &'a ARCacheChar,
|
||||
}
|
||||
|
||||
pub struct ARCacheCharWrite<'a> {
|
||||
- inner: ARCacheWriteTxn<'a, CString, CString>,
|
||||
+ inner: ARCacheWriteTxn<'a, CString, CString, FFIWriteStat>,
|
||||
+ cache: &'a ARCacheChar,
|
||||
+}
|
||||
+
|
||||
+impl ARCacheChar {
|
||||
+ fn new(max: usize, read_max: usize) -> Option<Self> {
|
||||
+ ARCacheBuilder::new()
|
||||
+ .set_size(max, read_max)
|
||||
+ .set_reader_quiesce(false)
|
||||
+ .build()
|
||||
+ .map(|inner| Self {
|
||||
+ inner,
|
||||
+ stats: CowCell::new(CacheStats::new()),
|
||||
+ })
|
||||
+ }
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn cache_char_create(max: usize, read_max: usize) -> *mut ARCacheChar {
|
||||
- let inner = if let Some(cache) = ARCacheBuilder::new().set_size(max, read_max).build() {
|
||||
- cache
|
||||
+ if let Some(cache) = ARCacheChar::new(max, read_max) {
|
||||
+ Box::into_raw(Box::new(cache))
|
||||
} else {
|
||||
- return std::ptr::null_mut();
|
||||
- };
|
||||
- let cache: Box<ARCacheChar> = Box::new(ARCacheChar { inner });
|
||||
- Box::into_raw(cache)
|
||||
+ std::ptr::null_mut()
|
||||
+ }
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn cache_char_free(cache: *mut ARCacheChar) {
|
||||
- // Should we be responsible to drain and free everything?
|
||||
debug_assert!(!cache.is_null());
|
||||
unsafe {
|
||||
- let _drop = Box::from_raw(cache);
|
||||
+ drop(Box::from_raw(cache));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,22 +186,22 @@ pub extern "C" fn cache_char_stats(
|
||||
) {
|
||||
let cache_ref = unsafe {
|
||||
debug_assert!(!cache.is_null());
|
||||
- &(*cache) as &ARCacheChar
|
||||
+ &(*cache)
|
||||
};
|
||||
- let stats = cache_ref.inner.view_stats();
|
||||
- *reader_hits = stats.reader_hits.try_into().unwrap();
|
||||
- *reader_includes = stats.reader_includes.try_into().unwrap();
|
||||
- *write_hits = stats.write_hits.try_into().unwrap();
|
||||
- *write_inc_or_mod = (stats.write_includes + stats.write_modifies)
|
||||
- .try_into()
|
||||
- .unwrap();
|
||||
- *shared_max = stats.shared_max.try_into().unwrap();
|
||||
- *freq = stats.freq.try_into().unwrap();
|
||||
- *recent = stats.recent.try_into().unwrap();
|
||||
- *freq_evicts = stats.freq_evicts.try_into().unwrap();
|
||||
- *recent_evicts = stats.recent_evicts.try_into().unwrap();
|
||||
- *p_weight = stats.p_weight.try_into().unwrap();
|
||||
- *all_seen_keys = stats.all_seen_keys.try_into().unwrap();
|
||||
+
|
||||
+ // Get stats snapshot
|
||||
+ let stats_read = cache_ref.stats.read();
|
||||
+ *reader_hits = stats_read.reader_hits;
|
||||
+ *reader_includes = stats_read.reader_includes;
|
||||
+ *write_hits = stats_read.write_hits;
|
||||
+ *write_inc_or_mod = stats_read.write_inc_or_mod;
|
||||
+ *freq_evicts = stats_read.freq_evicts;
|
||||
+ *recent_evicts = stats_read.recent_evicts;
|
||||
+ *p_weight = stats_read.p_weight;
|
||||
+ *shared_max = stats_read.shared_max;
|
||||
+ *freq = stats_read.freq;
|
||||
+ *recent = stats_read.recent;
|
||||
+ *all_seen_keys = stats_read.all_seen_keys;
|
||||
}
|
||||
|
||||
// start read
|
||||
@@ -79,7 +212,8 @@ pub extern "C" fn cache_char_read_begin(cache: *mut ARCacheChar) -> *mut ARCache
|
||||
&(*cache) as &ARCacheChar
|
||||
};
|
||||
let read_txn = Box::new(ARCacheCharRead {
|
||||
- inner: cache_ref.inner.read(),
|
||||
+ inner: cache_ref.inner.read_stats(ReadCountStat::default()),
|
||||
+ cache: cache_ref,
|
||||
});
|
||||
Box::into_raw(read_txn)
|
||||
}
|
||||
@@ -87,8 +221,20 @@ pub extern "C" fn cache_char_read_begin(cache: *mut ARCacheChar) -> *mut ARCache
|
||||
#[no_mangle]
|
||||
pub extern "C" fn cache_char_read_complete(read_txn: *mut ARCacheCharRead) {
|
||||
debug_assert!(!read_txn.is_null());
|
||||
+
|
||||
unsafe {
|
||||
- let _drop = Box::from_raw(read_txn);
|
||||
+ let read_txn_box = Box::from_raw(read_txn);
|
||||
+ let read_stats = read_txn_box.inner.finish();
|
||||
+ let write_stats = read_txn_box
|
||||
+ .cache
|
||||
+ .inner
|
||||
+ .try_quiesce_stats(FFIWriteStat::default());
|
||||
+
|
||||
+ // Update stats
|
||||
+ let mut stats_write = read_txn_box.cache.stats.write();
|
||||
+ stats_write.update_from_read_stat(read_stats);
|
||||
+ stats_write.update_from_write_stat(&write_stats);
|
||||
+ stats_write.commit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,7 +287,8 @@ pub extern "C" fn cache_char_write_begin(
|
||||
&(*cache) as &ARCacheChar
|
||||
};
|
||||
let write_txn = Box::new(ARCacheCharWrite {
|
||||
- inner: cache_ref.inner.write(),
|
||||
+ inner: cache_ref.inner.write_stats(FFIWriteStat::default()),
|
||||
+ cache: cache_ref,
|
||||
});
|
||||
Box::into_raw(write_txn)
|
||||
}
|
||||
@@ -149,15 +296,21 @@ pub extern "C" fn cache_char_write_begin(
|
||||
#[no_mangle]
|
||||
pub extern "C" fn cache_char_write_commit(write_txn: *mut ARCacheCharWrite) {
|
||||
debug_assert!(!write_txn.is_null());
|
||||
- let wr = unsafe { Box::from_raw(write_txn) };
|
||||
- (*wr).inner.commit();
|
||||
+ unsafe {
|
||||
+ let write_txn_box = Box::from_raw(write_txn);
|
||||
+ let current_stats = write_txn_box.inner.commit();
|
||||
+
|
||||
+ let mut stats_write = write_txn_box.cache.stats.write();
|
||||
+ stats_write.update_from_write_stat(¤t_stats);
|
||||
+ stats_write.commit();
|
||||
+ }
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn cache_char_write_rollback(write_txn: *mut ARCacheCharWrite) {
|
||||
debug_assert!(!write_txn.is_null());
|
||||
unsafe {
|
||||
- let _drop = Box::from_raw(write_txn);
|
||||
+ drop(Box::from_raw(write_txn));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,7 +335,7 @@ pub extern "C" fn cache_char_write_include(
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
- use crate::cache::*;
|
||||
+ use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_cache_basic() {
|
||||
@@ -199,4 +352,116 @@ mod tests {
|
||||
cache_char_read_complete(read_txn);
|
||||
cache_char_free(cache_ptr);
|
||||
}
|
||||
+
|
||||
+ #[test]
|
||||
+ fn test_cache_stats() {
|
||||
+ let cache = cache_char_create(100, 8);
|
||||
+
|
||||
+ // Variables to store stats
|
||||
+ let mut reader_hits = 0;
|
||||
+ let mut reader_includes = 0;
|
||||
+ let mut write_hits = 0;
|
||||
+ let mut write_inc_or_mod = 0;
|
||||
+ let mut shared_max = 0;
|
||||
+ let mut freq = 0;
|
||||
+ let mut recent = 0;
|
||||
+ let mut freq_evicts = 0;
|
||||
+ let mut recent_evicts = 0;
|
||||
+ let mut p_weight = 0;
|
||||
+ let mut all_seen_keys = 0;
|
||||
+
|
||||
+ // Do some operations
|
||||
+ let key = CString::new("stats_test").unwrap();
|
||||
+ let value = CString::new("value").unwrap();
|
||||
+
|
||||
+ let write_txn = cache_char_write_begin(cache);
|
||||
+ cache_char_write_include(write_txn, key.as_ptr(), value.as_ptr());
|
||||
+ cache_char_write_commit(write_txn);
|
||||
+
|
||||
+ let read_txn = cache_char_read_begin(cache);
|
||||
+ let _ = cache_char_read_get(read_txn, key.as_ptr());
|
||||
+ cache_char_read_complete(read_txn);
|
||||
+
|
||||
+ // Get stats
|
||||
+ cache_char_stats(
|
||||
+ cache,
|
||||
+ &mut reader_hits,
|
||||
+ &mut reader_includes,
|
||||
+ &mut write_hits,
|
||||
+ &mut write_inc_or_mod,
|
||||
+ &mut shared_max,
|
||||
+ &mut freq,
|
||||
+ &mut recent,
|
||||
+ &mut freq_evicts,
|
||||
+ &mut recent_evicts,
|
||||
+ &mut p_weight,
|
||||
+ &mut all_seen_keys,
|
||||
+ );
|
||||
+
|
||||
+ // Verify that stats were updated
|
||||
+ assert!(write_inc_or_mod > 0);
|
||||
+ assert!(all_seen_keys > 0);
|
||||
+
|
||||
+ cache_char_free(cache);
|
||||
+ }
|
||||
+
|
||||
+ #[test]
|
||||
+ fn test_cache_read_write_operations() {
|
||||
+ let cache = cache_char_create(100, 8);
|
||||
+
|
||||
+ // Create test data
|
||||
+ let key = CString::new("test_key").unwrap();
|
||||
+ let value = CString::new("test_value").unwrap();
|
||||
+
|
||||
+ // Test write operation
|
||||
+ let write_txn = cache_char_write_begin(cache);
|
||||
+ cache_char_write_include(write_txn, key.as_ptr(), value.as_ptr());
|
||||
+ cache_char_write_commit(write_txn);
|
||||
+
|
||||
+ // Test read operation
|
||||
+ let read_txn = cache_char_read_begin(cache);
|
||||
+ let result = cache_char_read_get(read_txn, key.as_ptr());
|
||||
+ assert!(!result.is_null());
|
||||
+
|
||||
+ // Verify the value
|
||||
+ let retrieved_value = unsafe { CStr::from_ptr(result) };
|
||||
+ assert_eq!(retrieved_value.to_bytes(), value.as_bytes());
|
||||
+
|
||||
+ cache_char_read_complete(read_txn);
|
||||
+ cache_char_free(cache);
|
||||
+ }
|
||||
+
|
||||
+ #[test]
|
||||
+ fn test_cache_miss() {
|
||||
+ let cache = cache_char_create(100, 8);
|
||||
+ let read_txn = cache_char_read_begin(cache);
|
||||
+
|
||||
+ let missing_key = CString::new("nonexistent").unwrap();
|
||||
+ let result = cache_char_read_get(read_txn, missing_key.as_ptr());
|
||||
+ assert!(result.is_null());
|
||||
+
|
||||
+ cache_char_read_complete(read_txn);
|
||||
+ cache_char_free(cache);
|
||||
+ }
|
||||
+
|
||||
+ #[test]
|
||||
+ fn test_write_rollback() {
|
||||
+ let cache = cache_char_create(100, 8);
|
||||
+
|
||||
+ let key = CString::new("rollback_test").unwrap();
|
||||
+ let value = CString::new("value").unwrap();
|
||||
+
|
||||
+ // Start write transaction and rollback
|
||||
+ let write_txn = cache_char_write_begin(cache);
|
||||
+ cache_char_write_include(write_txn, key.as_ptr(), value.as_ptr());
|
||||
+ cache_char_write_rollback(write_txn);
|
||||
+
|
||||
+ // Verify key doesn't exist
|
||||
+ let read_txn = cache_char_read_begin(cache);
|
||||
+ let result = cache_char_read_get(read_txn, key.as_ptr());
|
||||
+ assert!(result.is_null());
|
||||
+
|
||||
+ cache_char_read_complete(read_txn);
|
||||
+ cache_char_free(cache);
|
||||
+ }
|
||||
}
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@ -19,23 +19,15 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
|
||||
|
||||
[[package]]
|
||||
name = "ahash"
|
||||
version = "0.8.11"
|
||||
version = "0.7.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
||||
checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"getrandom 0.2.15",
|
||||
"getrandom 0.2.16",
|
||||
"once_cell",
|
||||
"version_check",
|
||||
"zerocopy",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "allocator-api2"
|
||||
version = "0.2.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
|
||||
|
||||
[[package]]
|
||||
name = "ansi_term"
|
||||
version = "0.12.1"
|
||||
@ -45,12 +37,6 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "arc-swap"
|
||||
version = "1.7.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
|
||||
|
||||
[[package]]
|
||||
name = "atty"
|
||||
version = "0.2.14"
|
||||
@ -70,9 +56,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
|
||||
|
||||
[[package]]
|
||||
name = "backtrace"
|
||||
version = "0.3.74"
|
||||
version = "0.3.75"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
|
||||
checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002"
|
||||
dependencies = [
|
||||
"addr2line",
|
||||
"cfg-if",
|
||||
@ -97,9 +83,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "2.9.0"
|
||||
version = "2.9.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
|
||||
checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
|
||||
|
||||
[[package]]
|
||||
name = "byteorder"
|
||||
@ -113,26 +99,7 @@ version = "0.9.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9daec6140ab4dcd38c3dd57e580b59a621172a526ac79f1527af760a55afeafd"
|
||||
dependencies = [
|
||||
"clap 2.34.0",
|
||||
"log",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"syn 1.0.109",
|
||||
"tempfile",
|
||||
"toml",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cbindgen"
|
||||
version = "0.26.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49"
|
||||
dependencies = [
|
||||
"clap 3.2.25",
|
||||
"heck",
|
||||
"indexmap",
|
||||
"clap",
|
||||
"log",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -145,9 +112,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.2.17"
|
||||
version = "1.2.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a"
|
||||
checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951"
|
||||
dependencies = [
|
||||
"jobserver",
|
||||
"libc",
|
||||
@ -169,51 +136,59 @@ dependencies = [
|
||||
"ansi_term",
|
||||
"atty",
|
||||
"bitflags 1.3.2",
|
||||
"strsim 0.8.0",
|
||||
"textwrap 0.11.0",
|
||||
"strsim",
|
||||
"textwrap",
|
||||
"unicode-width",
|
||||
"vec_map",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "3.2.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"bitflags 1.3.2",
|
||||
"clap_lex",
|
||||
"indexmap",
|
||||
"strsim 0.10.0",
|
||||
"termcolor",
|
||||
"textwrap 0.16.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_lex"
|
||||
version = "0.2.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
|
||||
dependencies = [
|
||||
"os_str_bytes",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "concread"
|
||||
version = "0.5.5"
|
||||
source = "git+https://github.com/389ds/concread?branch=unstable_name_collisions#caae357e1b24dc65fac7320760d4833debf9bc33"
|
||||
version = "0.2.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dcc9816f5ac93ebd51c37f7f9a6bf2b40dfcd42978ad2aea5d542016e9244cf6"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"arc-swap",
|
||||
"crossbeam",
|
||||
"crossbeam-epoch",
|
||||
"crossbeam-utils",
|
||||
"lru",
|
||||
"parking_lot",
|
||||
"rand",
|
||||
"smallvec",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam"
|
||||
version = "0.8.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
|
||||
dependencies = [
|
||||
"crossbeam-channel",
|
||||
"crossbeam-deque",
|
||||
"crossbeam-epoch",
|
||||
"crossbeam-queue",
|
||||
"crossbeam-utils",
|
||||
"lru",
|
||||
"smallvec",
|
||||
"sptr",
|
||||
"tokio",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-channel"
|
||||
version = "0.5.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
|
||||
dependencies = [
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-deque"
|
||||
version = "0.8.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
|
||||
dependencies = [
|
||||
"crossbeam-epoch",
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -262,17 +237,11 @@ dependencies = [
|
||||
"uuid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "equivalent"
|
||||
version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
||||
|
||||
[[package]]
|
||||
name = "errno"
|
||||
version = "0.3.10"
|
||||
version = "0.3.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d"
|
||||
checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"windows-sys",
|
||||
@ -292,17 +261,11 @@ checksum = "93804560e638370a8be6d59ce71ed803e55e230abdbf42598e666b41adda9b1f"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"byteorder",
|
||||
"getrandom 0.2.15",
|
||||
"getrandom 0.2.16",
|
||||
"openssl",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "foldhash"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
||||
|
||||
[[package]]
|
||||
name = "foreign-types"
|
||||
version = "0.3.2"
|
||||
@ -320,9 +283,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.2.15"
|
||||
version = "0.2.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
|
||||
checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
@ -331,9 +294,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0"
|
||||
checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
@ -352,24 +315,10 @@ name = "hashbrown"
|
||||
version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.15.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
|
||||
dependencies = [
|
||||
"allocator-api2",
|
||||
"equivalent",
|
||||
"foldhash",
|
||||
"ahash",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "heck"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
||||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.1.19"
|
||||
@ -380,13 +329,12 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "1.9.3"
|
||||
name = "instant"
|
||||
version = "0.1.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
|
||||
checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"hashbrown 0.12.3",
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -401,21 +349,21 @@ version = "0.1.33"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
|
||||
dependencies = [
|
||||
"getrandom 0.3.2",
|
||||
"getrandom 0.3.3",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.171"
|
||||
version = "0.2.172"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6"
|
||||
checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
|
||||
|
||||
[[package]]
|
||||
name = "librnsslapd"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"cbindgen 0.9.1",
|
||||
"cbindgen",
|
||||
"libc",
|
||||
"slapd",
|
||||
]
|
||||
@ -424,7 +372,7 @@ dependencies = [
|
||||
name = "librslapd"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"cbindgen 0.26.0",
|
||||
"cbindgen",
|
||||
"concread",
|
||||
"libc",
|
||||
"slapd",
|
||||
@ -432,9 +380,19 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "linux-raw-sys"
|
||||
version = "0.9.3"
|
||||
version = "0.9.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413"
|
||||
checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
|
||||
|
||||
[[package]]
|
||||
name = "lock_api"
|
||||
version = "0.4.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"scopeguard",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
@ -444,11 +402,11 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
|
||||
|
||||
[[package]]
|
||||
name = "lru"
|
||||
version = "0.13.0"
|
||||
version = "0.7.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465"
|
||||
checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a"
|
||||
dependencies = [
|
||||
"hashbrown 0.15.2",
|
||||
"hashbrown",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -459,9 +417,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
|
||||
|
||||
[[package]]
|
||||
name = "miniz_oxide"
|
||||
version = "0.8.5"
|
||||
version = "0.8.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5"
|
||||
checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
|
||||
dependencies = [
|
||||
"adler2",
|
||||
]
|
||||
@ -483,11 +441,11 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
|
||||
|
||||
[[package]]
|
||||
name = "openssl"
|
||||
version = "0.10.71"
|
||||
version = "0.10.73"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd"
|
||||
checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"cfg-if",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
@ -504,14 +462,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.100",
|
||||
"syn 2.0.101",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "openssl-sys"
|
||||
version = "0.9.106"
|
||||
version = "0.9.109"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd"
|
||||
checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
@ -520,10 +478,29 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "os_str_bytes"
|
||||
version = "6.6.1"
|
||||
name = "parking_lot"
|
||||
version = "0.11.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
|
||||
checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
|
||||
dependencies = [
|
||||
"instant",
|
||||
"lock_api",
|
||||
"parking_lot_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "parking_lot_core"
|
||||
version = "0.8.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"instant",
|
||||
"libc",
|
||||
"redox_syscall",
|
||||
"smallvec",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "paste"
|
||||
@ -556,6 +533,15 @@ version = "0.3.32"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
|
||||
dependencies = [
|
||||
"zerocopy",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-hack"
|
||||
version = "0.5.20+deprecated"
|
||||
@ -564,9 +550,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.94"
|
||||
version = "1.0.95"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84"
|
||||
checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
@ -599,6 +585,45 @@ version = "5.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.8.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"rand_chacha",
|
||||
"rand_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_chacha"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
||||
dependencies = [
|
||||
"ppv-lite86",
|
||||
"rand_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
dependencies = [
|
||||
"getrandom 0.2.16",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "redox_syscall"
|
||||
version = "0.2.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rsds"
|
||||
version = "0.1.0"
|
||||
@ -611,11 +636,11 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
|
||||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "1.0.5"
|
||||
version = "1.0.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf"
|
||||
checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"errno",
|
||||
"libc",
|
||||
"linux-raw-sys",
|
||||
@ -628,6 +653,12 @@ version = "1.0.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
|
||||
|
||||
[[package]]
|
||||
name = "scopeguard"
|
||||
version = "1.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.219"
|
||||
@ -645,7 +676,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.100",
|
||||
"syn 2.0.101",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -684,15 +715,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "smallvec"
|
||||
version = "1.14.0"
|
||||
version = "1.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd"
|
||||
|
||||
[[package]]
|
||||
name = "sptr"
|
||||
version = "0.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
|
||||
checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9"
|
||||
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
@ -700,12 +725,6 @@ version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
|
||||
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.109"
|
||||
@ -719,9 +738,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.100"
|
||||
version = "2.0.101"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
|
||||
checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -730,26 +749,17 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "3.19.1"
|
||||
version = "3.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf"
|
||||
checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
|
||||
dependencies = [
|
||||
"fastrand",
|
||||
"getrandom 0.3.2",
|
||||
"getrandom 0.3.3",
|
||||
"once_cell",
|
||||
"rustix",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "termcolor"
|
||||
version = "1.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
|
||||
dependencies = [
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "textwrap"
|
||||
version = "0.11.0"
|
||||
@ -759,20 +769,26 @@ dependencies = [
|
||||
"unicode-width",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "textwrap"
|
||||
version = "0.16.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
|
||||
|
||||
[[package]]
|
||||
name = "tokio"
|
||||
version = "1.44.1"
|
||||
version = "1.45.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a"
|
||||
checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779"
|
||||
dependencies = [
|
||||
"backtrace",
|
||||
"pin-project-lite",
|
||||
"tokio-macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tokio-macros"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.101",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -784,37 +800,6 @@ dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing"
|
||||
version = "0.1.41"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
|
||||
dependencies = [
|
||||
"pin-project-lite",
|
||||
"tracing-attributes",
|
||||
"tracing-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-attributes"
|
||||
version = "0.1.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.100",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-core"
|
||||
version = "0.1.33"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.18"
|
||||
@ -833,7 +818,7 @@ version = "0.8.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
|
||||
dependencies = [
|
||||
"getrandom 0.2.15",
|
||||
"getrandom 0.2.16",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -885,15 +870,6 @@ version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-util"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
||||
dependencies = [
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-x86_64-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
@ -979,27 +955,27 @@ version = "0.39.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy"
|
||||
version = "0.7.35"
|
||||
version = "0.8.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
|
||||
checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb"
|
||||
dependencies = [
|
||||
"zerocopy-derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy-derive"
|
||||
version = "0.7.35"
|
||||
version = "0.8.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
||||
checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.100",
|
||||
"syn 2.0.101",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -1019,5 +995,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.100",
|
||||
"syn 2.0.101",
|
||||
]
|
||||
@ -1,27 +0,0 @@
|
||||
diff --git a/.cargo/config.in b/.cargo/config.in
|
||||
index d7d8ff4d4..d61993c54 100644
|
||||
--- a/.cargo/config.in
|
||||
+++ b/.cargo/config.in
|
||||
@@ -2,5 +2,10 @@
|
||||
registry = "https://github.com/rust-lang/crates.io-index"
|
||||
@rust_vendor_sources@
|
||||
|
||||
+[source."git+https://github.com/389ds/concread?branch=unstable_name_collisions"]
|
||||
+git = "https://github.com/389ds/concread"
|
||||
+branch = "unstable_name_collisions"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
[source.vendored-sources]
|
||||
directory = "./vendor"
|
||||
diff --git a/src/Cargo.toml b/src/Cargo.toml
|
||||
index 95c1ae3f5..4daf9cf7b 100644
|
||||
--- a/src/Cargo.toml
|
||||
+++ b/src/Cargo.toml
|
||||
@@ -15,4 +15,6 @@ members = [
|
||||
panic = "abort"
|
||||
lto = true
|
||||
|
||||
+[patch.crates-io]
|
||||
+concread = { git = "https://github.com/389ds/concread", branch = "unstable_name_collisions" }
|
||||
|
||||
|
||||
@ -52,8 +52,8 @@ ExcludeArch: i686
|
||||
Summary: 389 Directory Server (base)
|
||||
Name: 389-ds-base
|
||||
Version: 1.4.3.39
|
||||
Release: %{?relprefix}13%{?prerel}%{?dist}
|
||||
License: GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (0BSD OR Apache-2.0 OR MIT) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSD-2-Clause OR MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND Apache-2.0 AND MIT AND MPL-2.0 AND Zlib
|
||||
Release: %{?relprefix}14%{?prerel}%{?dist}
|
||||
License: GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (0BSD OR Apache-2.0 OR MIT) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSD-2-Clause OR MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND Apache-2.0 AND BSD-3-Clause AND MIT AND MPL-2.0
|
||||
URL: https://www.port389.org
|
||||
Group: System Environment/Daemons
|
||||
Conflicts: selinux-policy-base < 3.9.8
|
||||
@ -64,80 +64,81 @@ Provides: ldif2ldbm >= 0
|
||||
##### Bundled cargo crates list - START #####
|
||||
Provides: bundled(crate(addr2line)) = 0.24.2
|
||||
Provides: bundled(crate(adler2)) = 2.0.0
|
||||
Provides: bundled(crate(ahash)) = 0.8.11
|
||||
Provides: bundled(crate(allocator-api2)) = 0.2.21
|
||||
Provides: bundled(crate(ahash)) = 0.7.8
|
||||
Provides: bundled(crate(ansi_term)) = 0.12.1
|
||||
Provides: bundled(crate(arc-swap)) = 1.7.1
|
||||
Provides: bundled(crate(atty)) = 0.2.14
|
||||
Provides: bundled(crate(autocfg)) = 1.4.0
|
||||
Provides: bundled(crate(backtrace)) = 0.3.74
|
||||
Provides: bundled(crate(backtrace)) = 0.3.75
|
||||
Provides: bundled(crate(base64)) = 0.13.1
|
||||
Provides: bundled(crate(bitflags)) = 2.9.0
|
||||
Provides: bundled(crate(bitflags)) = 2.9.1
|
||||
Provides: bundled(crate(byteorder)) = 1.5.0
|
||||
Provides: bundled(crate(cbindgen)) = 0.26.0
|
||||
Provides: bundled(crate(cc)) = 1.2.17
|
||||
Provides: bundled(crate(cbindgen)) = 0.9.1
|
||||
Provides: bundled(crate(cc)) = 1.2.25
|
||||
Provides: bundled(crate(cfg-if)) = 1.0.0
|
||||
Provides: bundled(crate(clap)) = 3.2.25
|
||||
Provides: bundled(crate(clap_lex)) = 0.2.4
|
||||
Provides: bundled(crate(concread)) = 0.5.5
|
||||
Provides: bundled(crate(clap)) = 2.34.0
|
||||
Provides: bundled(crate(concread)) = 0.2.21
|
||||
Provides: bundled(crate(crossbeam)) = 0.8.4
|
||||
Provides: bundled(crate(crossbeam-channel)) = 0.5.15
|
||||
Provides: bundled(crate(crossbeam-deque)) = 0.8.6
|
||||
Provides: bundled(crate(crossbeam-epoch)) = 0.9.18
|
||||
Provides: bundled(crate(crossbeam-queue)) = 0.3.12
|
||||
Provides: bundled(crate(crossbeam-utils)) = 0.8.21
|
||||
Provides: bundled(crate(equivalent)) = 1.0.2
|
||||
Provides: bundled(crate(errno)) = 0.3.10
|
||||
Provides: bundled(crate(errno)) = 0.3.12
|
||||
Provides: bundled(crate(fastrand)) = 2.3.0
|
||||
Provides: bundled(crate(fernet)) = 0.1.4
|
||||
Provides: bundled(crate(foldhash)) = 0.1.5
|
||||
Provides: bundled(crate(foreign-types)) = 0.3.2
|
||||
Provides: bundled(crate(foreign-types-shared)) = 0.1.1
|
||||
Provides: bundled(crate(getrandom)) = 0.3.2
|
||||
Provides: bundled(crate(getrandom)) = 0.3.3
|
||||
Provides: bundled(crate(gimli)) = 0.31.1
|
||||
Provides: bundled(crate(hashbrown)) = 0.15.2
|
||||
Provides: bundled(crate(heck)) = 0.4.1
|
||||
Provides: bundled(crate(hashbrown)) = 0.12.3
|
||||
Provides: bundled(crate(hermit-abi)) = 0.1.19
|
||||
Provides: bundled(crate(indexmap)) = 1.9.3
|
||||
Provides: bundled(crate(instant)) = 0.1.13
|
||||
Provides: bundled(crate(itoa)) = 1.0.15
|
||||
Provides: bundled(crate(jobserver)) = 0.1.33
|
||||
Provides: bundled(crate(libc)) = 0.2.171
|
||||
Provides: bundled(crate(linux-raw-sys)) = 0.9.3
|
||||
Provides: bundled(crate(libc)) = 0.2.172
|
||||
Provides: bundled(crate(linux-raw-sys)) = 0.9.4
|
||||
Provides: bundled(crate(lock_api)) = 0.4.13
|
||||
Provides: bundled(crate(log)) = 0.4.27
|
||||
Provides: bundled(crate(lru)) = 0.13.0
|
||||
Provides: bundled(crate(lru)) = 0.7.8
|
||||
Provides: bundled(crate(memchr)) = 2.7.4
|
||||
Provides: bundled(crate(miniz_oxide)) = 0.8.5
|
||||
Provides: bundled(crate(miniz_oxide)) = 0.8.8
|
||||
Provides: bundled(crate(object)) = 0.36.7
|
||||
Provides: bundled(crate(once_cell)) = 1.21.3
|
||||
Provides: bundled(crate(openssl)) = 0.10.71
|
||||
Provides: bundled(crate(openssl)) = 0.10.73
|
||||
Provides: bundled(crate(openssl-macros)) = 0.1.1
|
||||
Provides: bundled(crate(openssl-sys)) = 0.9.106
|
||||
Provides: bundled(crate(os_str_bytes)) = 6.6.1
|
||||
Provides: bundled(crate(openssl-sys)) = 0.9.109
|
||||
Provides: bundled(crate(parking_lot)) = 0.11.2
|
||||
Provides: bundled(crate(parking_lot_core)) = 0.8.6
|
||||
Provides: bundled(crate(paste)) = 0.1.18
|
||||
Provides: bundled(crate(paste-impl)) = 0.1.18
|
||||
Provides: bundled(crate(pin-project-lite)) = 0.2.16
|
||||
Provides: bundled(crate(pkg-config)) = 0.3.32
|
||||
Provides: bundled(crate(ppv-lite86)) = 0.2.21
|
||||
Provides: bundled(crate(proc-macro-hack)) = 0.5.20+deprecated
|
||||
Provides: bundled(crate(proc-macro2)) = 1.0.94
|
||||
Provides: bundled(crate(proc-macro2)) = 1.0.95
|
||||
Provides: bundled(crate(quote)) = 1.0.40
|
||||
Provides: bundled(crate(r-efi)) = 5.2.0
|
||||
Provides: bundled(crate(rand)) = 0.8.5
|
||||
Provides: bundled(crate(rand_chacha)) = 0.3.1
|
||||
Provides: bundled(crate(rand_core)) = 0.6.4
|
||||
Provides: bundled(crate(redox_syscall)) = 0.2.16
|
||||
Provides: bundled(crate(rsds)) = 0.1.0
|
||||
Provides: bundled(crate(rustc-demangle)) = 0.1.24
|
||||
Provides: bundled(crate(rustix)) = 1.0.5
|
||||
Provides: bundled(crate(rustix)) = 1.0.7
|
||||
Provides: bundled(crate(ryu)) = 1.0.20
|
||||
Provides: bundled(crate(scopeguard)) = 1.2.0
|
||||
Provides: bundled(crate(serde)) = 1.0.219
|
||||
Provides: bundled(crate(serde_derive)) = 1.0.219
|
||||
Provides: bundled(crate(serde_json)) = 1.0.140
|
||||
Provides: bundled(crate(shlex)) = 1.3.0
|
||||
Provides: bundled(crate(smallvec)) = 1.14.0
|
||||
Provides: bundled(crate(sptr)) = 0.3.2
|
||||
Provides: bundled(crate(strsim)) = 0.10.0
|
||||
Provides: bundled(crate(syn)) = 2.0.100
|
||||
Provides: bundled(crate(tempfile)) = 3.19.1
|
||||
Provides: bundled(crate(termcolor)) = 1.4.1
|
||||
Provides: bundled(crate(textwrap)) = 0.16.2
|
||||
Provides: bundled(crate(tokio)) = 1.44.1
|
||||
Provides: bundled(crate(smallvec)) = 1.15.0
|
||||
Provides: bundled(crate(strsim)) = 0.8.0
|
||||
Provides: bundled(crate(syn)) = 2.0.101
|
||||
Provides: bundled(crate(tempfile)) = 3.20.0
|
||||
Provides: bundled(crate(textwrap)) = 0.11.0
|
||||
Provides: bundled(crate(tokio)) = 1.45.1
|
||||
Provides: bundled(crate(tokio-macros)) = 2.5.0
|
||||
Provides: bundled(crate(toml)) = 0.5.11
|
||||
Provides: bundled(crate(tracing)) = 0.1.41
|
||||
Provides: bundled(crate(tracing-attributes)) = 0.1.28
|
||||
Provides: bundled(crate(tracing-core)) = 0.1.33
|
||||
Provides: bundled(crate(unicode-ident)) = 1.0.18
|
||||
Provides: bundled(crate(unicode-width)) = 0.1.14
|
||||
Provides: bundled(crate(uuid)) = 0.8.2
|
||||
@ -147,7 +148,6 @@ Provides: bundled(crate(version_check)) = 0.9.5
|
||||
Provides: bundled(crate(wasi)) = 0.14.2+wasi_0.2.4
|
||||
Provides: bundled(crate(winapi)) = 0.3.9
|
||||
Provides: bundled(crate(winapi-i686-pc-windows-gnu)) = 0.4.0
|
||||
Provides: bundled(crate(winapi-util)) = 0.1.9
|
||||
Provides: bundled(crate(winapi-x86_64-pc-windows-gnu)) = 0.4.0
|
||||
Provides: bundled(crate(windows-sys)) = 0.59.0
|
||||
Provides: bundled(crate(windows-targets)) = 0.52.6
|
||||
@ -160,13 +160,14 @@ Provides: bundled(crate(windows_x86_64_gnu)) = 0.52.6
|
||||
Provides: bundled(crate(windows_x86_64_gnullvm)) = 0.52.6
|
||||
Provides: bundled(crate(windows_x86_64_msvc)) = 0.52.6
|
||||
Provides: bundled(crate(wit-bindgen-rt)) = 0.39.0
|
||||
Provides: bundled(crate(zerocopy)) = 0.7.35
|
||||
Provides: bundled(crate(zerocopy-derive)) = 0.7.35
|
||||
Provides: bundled(crate(zerocopy)) = 0.8.25
|
||||
Provides: bundled(crate(zerocopy-derive)) = 0.8.25
|
||||
Provides: bundled(crate(zeroize)) = 1.8.1
|
||||
Provides: bundled(crate(zeroize_derive)) = 1.4.2
|
||||
##### Bundled cargo crates list - END #####
|
||||
|
||||
|
||||
|
||||
BuildRequires: nspr-devel
|
||||
BuildRequires: nss-devel
|
||||
BuildRequires: perl-generators
|
||||
@ -293,8 +294,8 @@ Source2: %{name}-devel.README
|
||||
Source3: https://github.com/jemalloc/%{jemalloc_name}/releases/download/%{jemalloc_ver}/%{jemalloc_name}-%{jemalloc_ver}.tar.bz2
|
||||
%endif
|
||||
%if %{use_rust}
|
||||
Source4: vendor-%{version}-2.tar.gz
|
||||
Source5: Cargo-%{version}-2.lock
|
||||
Source4: vendor-%{version}-3.tar.gz
|
||||
Source5: Cargo-%{version}-3.lock
|
||||
%endif
|
||||
|
||||
Patch01: 0001-issue-5647-covscan-memory-leak-in-audit-log-when-add.patch
|
||||
@ -325,7 +326,7 @@ Patch25: 0025-Issue-6494-Various-errors-when-using-extended-matchi.patc
|
||||
Patch26: 0026-Issue-6004-idletimeout-may-be-ignored-6005.patch
|
||||
Patch27: 0027-Issue-6004-2nd-idletimeout-may-be-ignored-6569.patch
|
||||
Patch28: 0028-Issue-6485-Fix-double-free-in-USN-cleanup-task.patch
|
||||
Patch29: 0029-Issue-6553-Update-concread-to-0.5.4-and-refactor-sta.patch
|
||||
#Patch29: 0029-Issue-6553-Update-concread-to-0.5.4-and-refactor-sta.patch
|
||||
Patch30: 0030-Issue-5841-dsconf-incorrectly-setting-up-Pass-Throug.patch
|
||||
Patch31: 0031-Issue-6067-Add-hidden-v-and-j-options-to-each-CLI-su.patch
|
||||
Patch32: 0032-Issue-6067-Improve-dsidm-CLI-No-Such-Entry-handling-.patch
|
||||
@ -346,7 +347,7 @@ Patch46: 0046-Issue-6686-CLI-Re-enabling-user-accounts-that-reache.patc
|
||||
Patch47: 0047-Issue-6302-Allow-to-run-replication-status-without-a.patch
|
||||
|
||||
|
||||
Patch100: cargo.patch
|
||||
#Patch100: cargo.patch
|
||||
|
||||
%description
|
||||
389 Directory Server is an LDAPv3 compliant server. The base package includes
|
||||
@ -969,6 +970,10 @@ exit 0
|
||||
%doc README.md
|
||||
|
||||
%changelog
|
||||
* Thu Jun 5 2025 Viktor Ashirov <vashirov@redhat.com> - 1.4.3.39-14
|
||||
- Reverts: RHEL-80704 - Increased memory consumption caused by NDN cache [rhel-8.10.z]
|
||||
- Resolves: RHEL-95442 - ns-slapd[xxxx]: segfault at 10d7d0d0 ip 00007ff734050cdb sp 00007ff6de9f1430 error 6 in libslapd.so.0.1.0[7ff733ec0000+1b3000] [rhel-8.10.z]
|
||||
|
||||
* Thu May 15 2025 Viktor Ashirov <vashirov@redhat.com> - 1.4.3.39-13
|
||||
- Resolves: RHEL-89749 - Nested group does not receive memberOf attribute [rhel-8.10.z]
|
||||
- Resolves: RHEL-89758 - dsidm Error: float() argument must be a string or a number, not 'NoneType' [rhel-8.10.z]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user