mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b6c5991e1f | |||
| efd879fcd8 | |||
| 92a848f74d | |||
| 776b5865ba |
Generated
+411
-199
File diff suppressed because it is too large
Load Diff
+6
-6
@@ -68,7 +68,7 @@ default-features = false
|
|||||||
version = "0.1.3"
|
version = "0.1.3"
|
||||||
|
|
||||||
[workspace.dependencies.rand]
|
[workspace.dependencies.rand]
|
||||||
version = "0.8.5"
|
version = "0.10.0"
|
||||||
|
|
||||||
# Used for the http request / response body type for Ruma endpoints used with reqwest
|
# Used for the http request / response body type for Ruma endpoints used with reqwest
|
||||||
[workspace.dependencies.bytes]
|
[workspace.dependencies.bytes]
|
||||||
@@ -298,7 +298,7 @@ default-features = false
|
|||||||
features = ["env", "toml"]
|
features = ["env", "toml"]
|
||||||
|
|
||||||
[workspace.dependencies.hickory-resolver]
|
[workspace.dependencies.hickory-resolver]
|
||||||
version = "0.25.1"
|
version = "0.25.2"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = [
|
features = [
|
||||||
"serde",
|
"serde",
|
||||||
@@ -343,7 +343,7 @@ version = "0.1.2"
|
|||||||
[workspace.dependencies.ruma]
|
[workspace.dependencies.ruma]
|
||||||
git = "https://forgejo.ellis.link/continuwuation/ruwuma"
|
git = "https://forgejo.ellis.link/continuwuation/ruwuma"
|
||||||
#branch = "conduwuit-changes"
|
#branch = "conduwuit-changes"
|
||||||
rev = "3126cb5eea991ec40590e54d8c9d75637650641a"
|
rev = "e087ff15888156942ca2ffe6097d1b4c3fd27628"
|
||||||
features = [
|
features = [
|
||||||
"compat",
|
"compat",
|
||||||
"rand",
|
"rand",
|
||||||
@@ -425,7 +425,7 @@ features = ["http", "grpc-tonic", "trace", "logs", "metrics"]
|
|||||||
|
|
||||||
# optional sentry metrics for crash/panic reporting
|
# optional sentry metrics for crash/panic reporting
|
||||||
[workspace.dependencies.sentry]
|
[workspace.dependencies.sentry]
|
||||||
version = "0.45.0"
|
version = "0.46.0"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = [
|
features = [
|
||||||
"backtrace",
|
"backtrace",
|
||||||
@@ -441,9 +441,9 @@ features = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[workspace.dependencies.sentry-tracing]
|
[workspace.dependencies.sentry-tracing]
|
||||||
version = "0.45.0"
|
version = "0.46.0"
|
||||||
[workspace.dependencies.sentry-tower]
|
[workspace.dependencies.sentry-tower]
|
||||||
version = "0.45.0"
|
version = "0.46.0"
|
||||||
|
|
||||||
# jemalloc usage
|
# jemalloc usage
|
||||||
[workspace.dependencies.tikv-jemalloc-sys]
|
[workspace.dependencies.tikv-jemalloc-sys]
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
Fixed a startup crash in the sender service if we can't detect the number of CPU cores, even if the `sender_workers' config option is set correctly. Contributed by @katie.
|
||||||
@@ -244,7 +244,7 @@ fn build_report(report: Report) -> RoomMessageEventContent {
|
|||||||
/// random delay sending a response per spec suggestion regarding
|
/// random delay sending a response per spec suggestion regarding
|
||||||
/// enumerating for potential events existing in our server.
|
/// enumerating for potential events existing in our server.
|
||||||
async fn delay_response() {
|
async fn delay_response() {
|
||||||
let time_to_wait = rand::thread_rng().gen_range(2..5);
|
let time_to_wait = rand::random_range(2..5);
|
||||||
debug_info!(
|
debug_info!(
|
||||||
"Got successful /report request, waiting {time_to_wait} seconds before sending \
|
"Got successful /report request, waiting {time_to_wait} seconds before sending \
|
||||||
successful response."
|
successful response."
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ pub(crate) async fn get_room_information_route(
|
|||||||
servers.sort_unstable();
|
servers.sort_unstable();
|
||||||
servers.dedup();
|
servers.dedup();
|
||||||
|
|
||||||
servers.shuffle(&mut rand::thread_rng());
|
servers.shuffle(&mut rand::rng());
|
||||||
|
|
||||||
// insert our server as the very first choice if in list
|
// insert our server as the very first choice if in list
|
||||||
if let Some(server_index) = servers
|
if let Some(server_index) = servers
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ libloading.optional = true
|
|||||||
log.workspace = true
|
log.workspace = true
|
||||||
num-traits.workspace = true
|
num-traits.workspace = true
|
||||||
rand.workspace = true
|
rand.workspace = true
|
||||||
|
rand_core = { version = "0.6.4", features = ["getrandom"] }
|
||||||
regex.workspace = true
|
regex.workspace = true
|
||||||
reqwest.workspace = true
|
reqwest.workspace = true
|
||||||
ring.workspace = true
|
ring.workspace = true
|
||||||
|
|||||||
@@ -1046,7 +1046,7 @@ mod tests {
|
|||||||
// don't remove any events so we know it sorts them all correctly
|
// don't remove any events so we know it sorts them all correctly
|
||||||
let mut events_to_sort = events.keys().cloned().collect::<Vec<_>>();
|
let mut events_to_sort = events.keys().cloned().collect::<Vec<_>>();
|
||||||
|
|
||||||
events_to_sort.shuffle(&mut rand::thread_rng());
|
events_to_sort.shuffle(&mut rand::rng());
|
||||||
|
|
||||||
let power_level = resolved_power
|
let power_level = resolved_power
|
||||||
.get(&(StateEventType::RoomPowerLevels, "".into()))
|
.get(&(StateEventType::RoomPowerLevels, "".into()))
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ fn init_argon() -> Argon2<'static> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(super) fn password(password: &str) -> Result<String> {
|
pub(super) fn password(password: &str) -> Result<String> {
|
||||||
let salt = SaltString::generate(rand::thread_rng());
|
let salt = SaltString::generate(rand_core::OsRng);
|
||||||
ARGON
|
ARGON
|
||||||
.get_or_init(init_argon)
|
.get_or_init(init_argon)
|
||||||
.hash_password(password.as_bytes(), &salt)
|
.hash_password(password.as_bytes(), &salt)
|
||||||
|
|||||||
+7
-10
@@ -4,16 +4,16 @@ use std::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use arrayvec::ArrayString;
|
use arrayvec::ArrayString;
|
||||||
use rand::{Rng, seq::SliceRandom, thread_rng};
|
use rand::{Rng, RngExt, seq::SliceRandom};
|
||||||
|
|
||||||
pub fn shuffle<T>(vec: &mut [T]) {
|
pub fn shuffle<T>(vec: &mut [T]) {
|
||||||
let mut rng = thread_rng();
|
let mut rng = rand::rng();
|
||||||
vec.shuffle(&mut rng);
|
vec.shuffle(&mut rng);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn string(length: usize) -> String {
|
pub fn string(length: usize) -> String {
|
||||||
thread_rng()
|
rand::rng()
|
||||||
.sample_iter(&rand::distributions::Alphanumeric)
|
.sample_iter(&rand::distr::Alphanumeric)
|
||||||
.take(length)
|
.take(length)
|
||||||
.map(char::from)
|
.map(char::from)
|
||||||
.collect()
|
.collect()
|
||||||
@@ -22,8 +22,8 @@ pub fn string(length: usize) -> String {
|
|||||||
#[inline]
|
#[inline]
|
||||||
pub fn string_array<const LENGTH: usize>() -> ArrayString<LENGTH> {
|
pub fn string_array<const LENGTH: usize>() -> ArrayString<LENGTH> {
|
||||||
let mut ret = ArrayString::<LENGTH>::new();
|
let mut ret = ArrayString::<LENGTH>::new();
|
||||||
thread_rng()
|
rand::rng()
|
||||||
.sample_iter(&rand::distributions::Alphanumeric)
|
.sample_iter(&rand::distr::Alphanumeric)
|
||||||
.take(LENGTH)
|
.take(LENGTH)
|
||||||
.map(char::from)
|
.map(char::from)
|
||||||
.for_each(|c| ret.push(c));
|
.for_each(|c| ret.push(c));
|
||||||
@@ -40,7 +40,4 @@ pub fn time_from_now_secs(range: Range<u64>) -> SystemTime {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn secs(range: Range<u64>) -> Duration {
|
pub fn secs(range: Range<u64>) -> Duration { Duration::from_secs(rand::random_range(range)) }
|
||||||
let mut rng = thread_rng();
|
|
||||||
Duration::from_secs(rng.gen_range(range))
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -100,8 +100,7 @@ impl crate::Service for Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let first_check_jitter = {
|
let first_check_jitter = {
|
||||||
let mut rng = rand::thread_rng();
|
let jitter_percent = rand::random_range(-50.0..=10.0);
|
||||||
let jitter_percent = rng.gen_range(-50.0..=10.0);
|
|
||||||
self.interval.mul_f64(1.0 + jitter_percent / 100.0)
|
self.interval.mul_f64(1.0 + jitter_percent / 100.0)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -385,11 +385,13 @@ fn num_senders(args: &crate::Args<'_>) -> usize {
|
|||||||
const MIN_SENDERS: usize = 1;
|
const MIN_SENDERS: usize = 1;
|
||||||
// Limit the number of senders to the number of workers threads or number of
|
// Limit the number of senders to the number of workers threads or number of
|
||||||
// cores, conservatively.
|
// cores, conservatively.
|
||||||
let max_senders = args
|
let mut max_senders = args.server.metrics.num_workers();
|
||||||
.server
|
|
||||||
.metrics
|
// Work around some platforms not returning the number of cores.
|
||||||
.num_workers()
|
let num_cores = available_parallelism();
|
||||||
.min(available_parallelism());
|
if num_cores > 0 {
|
||||||
|
max_senders = max_senders.min(num_cores);
|
||||||
|
}
|
||||||
|
|
||||||
// If the user doesn't override the default 0, this is intended to then default
|
// If the user doesn't override the default 0, this is intended to then default
|
||||||
// to 1 for now as multiple senders is experimental.
|
// to 1 for now as multiple senders is experimental.
|
||||||
|
|||||||
Reference in New Issue
Block a user