Skip to content

Add concurrent verb execution load tests #326

Add concurrent verb execution load tests

Add concurrent verb execution load tests #326

Triggered via push December 7, 2024 00:30
Status Success
Total duration 5m 53s
Artifacts

format-check.yml

on: push
Fit to window
Zoom out
Zoom in

Annotations

28 warnings
casting to the same type is unnecessary (`i64` -> `i64`): crates/testing/load-tools/src/tx-list-append.rs#L590
warning: casting to the same type is unnecessary (`i64` -> `i64`) --> crates/testing/load-tools/src/tx-list-append.rs:590:76 | 590 | Value::Vector(values.iter().map(|v| Value::Integer(*v as i64)).collect()), | ^^^^^^^^^ help: try: `{ *v }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
casting to the same type is unnecessary (`i64` -> `i64`): crates/testing/load-tools/src/tx-list-append.rs#L563
warning: casting to the same type is unnecessary (`i64` -> `i64`) --> crates/testing/load-tools/src/tx-list-append.rs:563:44 | 563 | ... Value::Integer(*value as i64), | ^^^^^^^^^^^^^ help: try: `{ *value }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
casting to the same type is unnecessary (`i64` -> `i64`): crates/testing/load-tools/src/tx-list-append.rs#L535
warning: casting to the same type is unnecessary (`i64` -> `i64`) --> crates/testing/load-tools/src/tx-list-append.rs:535:76 | 535 | Value::Vector(values.iter().map(|v| Value::Integer(*v as i64)).collect()), | ^^^^^^^^^ help: try: `{ *v }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
casting to the same type is unnecessary (`i64` -> `i64`): crates/testing/load-tools/src/tx-list-append.rs#L504
warning: casting to the same type is unnecessary (`i64` -> `i64`) --> crates/testing/load-tools/src/tx-list-append.rs:504:44 | 504 | ... Value::Integer(*value as i64), | ^^^^^^^^^^^^^ help: try: `{ *value }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast = note: `#[warn(clippy::unnecessary_cast)]` on by default
using `clone` on type `Uuid` which implements the `Copy` trait: crates/testing/load-tools/src/tx-list-append.rs#L384
warning: using `clone` on type `Uuid` which implements the `Copy` trait --> crates/testing/load-tools/src/tx-list-append.rs:384:25 | 384 | let client_id = client_id.clone(); | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `client_id` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
this function has too many arguments (9/7): crates/testing/load-tools/src/tx-list-append.rs#L237
warning: this function has too many arguments (9/7) --> crates/testing/load-tools/src/tx-list-append.rs:237:1 | 237 | / async fn workload( 238 | | args: Args, 239 | | zmq_ctx: tmq::Context, 240 | | rpc_address: String, ... | 246 | | task_results: Arc<Mutex<HashMap<usize, Result<Var, eyre::Report>>>>, 247 | | ) -> Result<Vec<(Instant, WorkItem)>, eyre::Error> { | |__________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
using `clone` on type `Symbol` which implements the `Copy` trait: crates/testing/load-tools/src/setup.rs#L313
warning: using `clone` on type `Symbol` which implements the `Copy` trait --> crates/testing/load-tools/src/setup.rs:313:13 | 313 | verb_name.clone(), | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*verb_name` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy = note: `#[warn(clippy::clone_on_copy)]` on by default
function `json_as_var` is never used: crates/web-host/src/host/mod.rs#L102
warning: function `json_as_var` is never used --> crates/web-host/src/host/mod.rs:102:8 | 102 | pub fn json_as_var(j: &serde_json::Value) -> Result<Var, JsonParseError> { | ^^^^^^^^^^^
variants `UnknownType`, `UnknownError`, and `InvalidRepresentation` are never constructed: crates/web-host/src/host/mod.rs#L95
warning: variants `UnknownType`, `UnknownError`, and `InvalidRepresentation` are never constructed --> crates/web-host/src/host/mod.rs:95:5 | 93 | pub enum JsonParseError { | -------------- variants in this enum 94 | #[error("Unknown type")] 95 | UnknownType, | ^^^^^^^^^^^ 96 | #[error("Unknown error")] 97 | UnknownError, | ^^^^^^^^^^^^ 98 | #[error("Invalid representation")] 99 | InvalidRepresentation, | ^^^^^^^^^^^^^^^^^^^^^ | = note: `JsonParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis = note: `#[warn(dead_code)]` on by default
variable does not need to be mutable: crates/testing/load-tools/src/tx-list-append.rs#L371
warning: variable does not need to be mutable --> crates/testing/load-tools/src/tx-list-append.rs:371:9 | 371 | mut events_sub, | ----^^^^^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` on by default
unused import: `ClientEvent`: crates/testing/load-tools/src/tx-list-append.rs#L40
warning: unused import: `ClientEvent` --> crates/testing/load-tools/src/tx-list-append.rs:40:30 | 40 | load_keypair, AuthToken, ClientEvent, ClientToken, HostClientToDaemonMessage, HostType, | ^^^^^^^^^^^
unused import: `rpc_async_client::pubsub_client::events_recv`: crates/testing/load-tools/src/tx-list-append.rs#L34
warning: unused import: `rpc_async_client::pubsub_client::events_recv` --> crates/testing/load-tools/src/tx-list-append.rs:34:5 | 34 | use rpc_async_client::pubsub_client::events_recv; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
unused import: `eyre::anyhow`: crates/testing/load-tools/src/tx-list-append.rs#L29
warning: unused import: `eyre::anyhow` --> crates/testing/load-tools/src/tx-list-append.rs:29:5 | 29 | use eyre::anyhow; | ^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
using `clone` on type `Uuid` which implements the `Copy` trait: crates/testing/load-tools/src/verb-dispatch-load-test.rs#L201
warning: using `clone` on type `Uuid` which implements the `Copy` trait --> crates/testing/load-tools/src/verb-dispatch-load-test.rs:201:25 | 201 | let client_id = client_id.clone(); | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `client_id` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
this function has too many arguments (9/7): crates/testing/load-tools/src/verb-dispatch-load-test.rs#L108
warning: this function has too many arguments (9/7) --> crates/testing/load-tools/src/verb-dispatch-load-test.rs:108:1 | 108 | / async fn workload( 109 | | args: Args, 110 | | zmq_ctx: tmq::Context, 111 | | rpc_address: String, ... | 117 | | task_results: Arc<Mutex<HashMap<usize, Result<Var, eyre::Report>>>>, 118 | | ) -> Result<Duration, eyre::Error> { | |__________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
using `clone` on type `Symbol` which implements the `Copy` trait: crates/testing/load-tools/src/setup.rs#L313
warning: using `clone` on type `Symbol` which implements the `Copy` trait --> crates/testing/load-tools/src/setup.rs:313:13 | 313 | verb_name.clone(), | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*verb_name` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy = note: `#[warn(clippy::clone_on_copy)]` on by default
very complex type used. Consider factoring parts into `type` definitions: crates/daemon/src/rpc_hosts.rs#L24
warning: very complex type used. Consider factoring parts into `type` definitions --> crates/daemon/src/rpc_hosts.rs:24:18 | 24 | pub struct Hosts(HashMap<HostToken, (SystemTime, HostType, Vec<(Obj, SocketAddr)>)>); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity = note: `#[warn(clippy::type_complexity)]` on by default
called `unwrap` on `path` after checking its variant with `is_none`: crates/daemon/src/connections_fjall.rs#L69
warning: called `unwrap` on `path` after checking its variant with `is_none` --> crates/daemon/src/connections_fjall.rs:69:20 | 64 | let (tmpdir, path) = if path.is_none() { | ----------------- help: try: `if let Some(<item>) = path` ... 69 | (None, path.unwrap().to_path_buf()) | ^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap = note: `#[warn(clippy::unnecessary_unwrap)]` on by default
very complex type used. Consider factoring parts into `type` definitions: crates/kernel/src/tasks/task.rs#L584
warning: very complex type used. Consider factoring parts into `type` definitions --> crates/kernel/src/tasks/task.rs:584:6 | 584 | ) -> Result<Option<((Bytes, VerbDef), Obj)>, CommandError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity = note: `#[warn(clippy::type_complexity)]` on by default
empty line after doc comment: crates/kernel/src/tasks/sessions.rs#L35
warning: empty line after doc comment --> crates/kernel/src/tasks/sessions.rs:35:1 | 35 | / /// 36 | | // TODO: Fix up connected/reconnected/discconnected handling. 37 | | // Will probably deprecate MOO's concept of 'disconnected' and 'connected' players in the long 38 | | // run and emulate slack, discord, skype, etc which have a concept of 'presence' (online, offline, ... | 42 | | // which is different from MOO's "reconnected" handling, but probably preferable. 43 | | | |_ 44 | pub trait Session: Send + Sync { | ------------------------------ the comment documents this trait | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default = help: if the empty line is unintentional remove it help: if the doc comment should not document `Session` comment it out | 23 ~ // /// The interface for managing the user I/O connection side of state, exposed by the scheduler to 24 ~ // /// the VM during execution and by the host server to the scheduler. 25 ~ // /// 26 ~ // /// Because the execution path within the server is transactional, with the scheduler committing 27 ~ // /// and rolling back 'world state' on task commit/rollback, the general expectation is that this 28 ~ // /// entity should *also* perform transactionally, buffering output until the task commits, and 29 ~ // /// throwing it out on rollback. This may or may not be practical for large amounts of output. 30 ~ // /// 31 ~ // /// It is up to the implementation to decide how to buffer output. Options could include a 32 ~ // /// memory mapped file, a full database, or a simple in-memory buffer. 33 ~ // /// 34 ~ // /// Implementations would live in the 'server' host (e.g. websocket connections or repl loop) 35 ~ // /// |
variant name ends with the enum's name: crates/db/src/tx/mod.rs#L52
warning: variant name ends with the enum's name --> crates/db/src/tx/mod.rs:52:5 | 52 | EncodingError, | ^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names
variant name ends with the enum's name: crates/db/src/tx/mod.rs#L50
warning: variant name ends with the enum's name --> crates/db/src/tx/mod.rs:50:5 | 50 | StoreError, | ^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names
variant name ends with the enum's name: crates/db/src/tx/mod.rs#L48
warning: variant name ends with the enum's name --> crates/db/src/tx/mod.rs:48:5 | 48 | RetrieveError, | ^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names = note: `#[warn(clippy::enum_variant_names)]` on by default
non-canonical implementation of `partial_cmp` on an `Ord` type: crates/db/src/tx/mod.rs#L24
warning: non-canonical implementation of `partial_cmp` on an `Ord` type --> crates/db/src/tx/mod.rs:24:1 | 24 | / impl PartialOrd for Timestamp { 25 | | fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> { | | _______________________________________________________________________- 26 | || self.0.partial_cmp(&other.0) 27 | || } | ||_____- help: change this to: `{ Some(self.cmp(other)) }` 28 | | } | |__^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default
empty line after doc comment: crates/db/src/worldstate_transaction.rs#L74
warning: empty line after doc comment --> crates/db/src/worldstate_transaction.rs:74:5 | 74 | / /// Get the parent of the given object. 75 | | | |_ 76 | fn get_object_parent(&self, obj: &Obj) -> Result<Obj, WorldStateError>; | ----------------------------------------------------------------------- the comment documents this method | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments = help: if the empty line is unintentional remove it
empty line after doc comment: crates/db/src/loader.rs#L31
warning: empty line after doc comment --> crates/db/src/loader.rs:31:1 | 31 | / /// WorldState could provide, but potentially different constraints/semantics (e.g. no perms checks) 32 | | | |_ 33 | pub trait LoaderInterface: Send { | ------------------------------- the comment documents this trait | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default = help: if the empty line is unintentional remove it
style
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
style
Unexpected input(s) 'dprint-version', valid inputs are ['entryPoint', 'args']