Skip to content

feat(maitake-sync): mutex-traits integration #1384

feat(maitake-sync): mutex-traits integration

feat(maitake-sync): mutex-traits integration #1384

Triggered via pull request August 10, 2024 17:03
@hawkwhawkw
synchronize #482
eliza/lock-api
Status Failure
Total duration 4m 49s
Artifacts

ci.yml

on: pull_request
changed_paths
11s
changed_paths
cargo check (host)
1m 55s
cargo check (host)
rustfmt
15s
rustfmt
clippy
2m 4s
clippy
cargo test (host)
3m 48s
cargo test (host)
build boot image (x86_64)
1m 27s
build boot image (x86_64)
cargo test (cross x64)
1m 41s
cargo test (cross x64)
docs
2m 13s
docs
Loom tests (cordyceps)
1m 32s
Loom tests (cordyceps)
Miri tests (cordyceps)
2m 9s
Miri tests (cordyceps)
Tests (maitake, no-default-features)
1m 39s
Tests (maitake, no-default-features)
Loom tests (maitake)
4m 23s
Loom tests (maitake)
Miri tests (maitake)
1m 4s
Miri tests (maitake)
Loom tests (mycelium-util)
1m 0s
Loom tests (mycelium-util)
all_systems_go
0s
all_systems_go
Fit to window
Zoom out
Zoom in

Annotations

13 errors and 8 warnings
Miri tests (maitake)
Process completed with exit code 104.
build boot image (x86_64)
Process completed with exit code 101.
cargo test (cross x64)
Process completed with exit code 101.
cargo check (host): src/drivers/ps2_keyboard.rs#L20
error[E0277]: `std::cell::UnsafeCell<wait_queue::Node>` cannot be shared between threads safely --> src/drivers/ps2_keyboard.rs:20:22 | 20 | static PS2_KEYBOARD: Ps2Keyboard = Ps2Keyboard { | ^^^^^^^^^^^ `std::cell::UnsafeCell<wait_queue::Node>` cannot be shared between threads safely | = help: within `wait_queue::Waiter`, the trait `Sync` is not implemented for `std::cell::UnsafeCell<wait_queue::Node>` note: required because it appears within the type `maitake_sync::loom::inner::cell::UnsafeCell<wait_queue::Node>` --> /home/runner/work/mycelium/mycelium/maitake-sync/src/loom.rs:311:27 | 311 | pub(crate) struct UnsafeCell<T: ?Sized>(core::cell::UnsafeCell<T>); | ^^^^^^^^^^ note: required because it appears within the type `wait_queue::Waiter` --> /home/runner/work/mycelium/mycelium/maitake-sync/src/wait_queue.rs:243:8 | 243 | struct Waiter { | ^^^^^^ = note: required for `List<wait_queue::Waiter>` to implement `Sync` = note: 1 redundant requirement hidden = note: required for `mycelium_util::sync::blocking::Mutex<List<wait_queue::Waiter>>` to implement `Sync` note: required because it appears within the type `WaitQueue` --> /home/runner/work/mycelium/mycelium/maitake-sync/src/wait_queue.rs:186:12 | 186 | pub struct WaitQueue<Lock: ScopedRawMutex = DefaultMutex> { | ^^^^^^^^^ note: required because it appears within the type `Ps2Keyboard` --> src/drivers/ps2_keyboard.rs:6:12 | 6 | pub struct Ps2Keyboard { | ^^^^^^^^^^^ = note: shared static variables must have a type that implements `Sync`
cargo check (host): src/rt.rs#L56
error[E0277]: `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` cannot be shared between threads safely --> src/rt.rs:56:15 | 56 | static TIMER: spin::InitOnce<time::Timer> = spin::InitOnce::uninitialized(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` cannot be shared between threads safely | = help: within `maitake::time::timer::sleep::Entry`, the trait `Sync` is not implemented for `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` note: required because it appears within the type `maitake::loom::inner::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` --> /home/runner/work/mycelium/mycelium/maitake/src/loom.rs:204:27 | 204 | pub(crate) struct UnsafeCell<T: ?Sized>(core::cell::UnsafeCell<T>); | ^^^^^^^^^^ note: required because it appears within the type `maitake::time::timer::sleep::Entry` --> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/sleep.rs:39:19 | 39 | pub(super) struct Entry { | ^^^^^ = note: required for `List<maitake::time::timer::sleep::Entry>` to implement `Sync` = note: required because it appears within the type `[List<maitake::time::timer::sleep::Entry>; 64]` note: required because it appears within the type `maitake::time::timer::wheel::Wheel` --> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/wheel.rs:20:8 | 20 | struct Wheel { | ^^^^^ = note: required because it appears within the type `[maitake::time::timer::wheel::Wheel; 6]` note: required because it appears within the type `maitake::time::timer::wheel::Core` --> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/wheel.rs:11:28 | 11 | pub(in crate::time) struct Core { | ^^^^ = note: required for `mycelium_util::sync::blocking::Mutex<maitake::time::timer::wheel::Core>` to implement `Sync` note: required because it appears within the type `Timer` --> /home/runner/work/mycelium/mycelium/maitake/src/time/timer.rs:161:12 | 161 | pub struct Timer { | ^^^^^ = note: required for `InitOnce<Timer>` to implement `Sync` = note: shared static variables must have a type that implements `Sync`
cargo check (host)
Process completed with exit code 1.
clippy: src/drivers/ps2_keyboard.rs#L20
error[E0277]: `std::cell::UnsafeCell<maitake::sync::wait_queue::Node>` cannot be shared between threads safely --> src/drivers/ps2_keyboard.rs:20:22 | 20 | static PS2_KEYBOARD: Ps2Keyboard = Ps2Keyboard { | ^^^^^^^^^^^ `std::cell::UnsafeCell<maitake::sync::wait_queue::Node>` cannot be shared between threads safely | = help: within `maitake::sync::wait_queue::Waiter`, the trait `std::marker::Sync` is not implemented for `std::cell::UnsafeCell<maitake::sync::wait_queue::Node>` note: required because it appears within the type `maitake_sync::loom::inner::cell::UnsafeCell<maitake::sync::wait_queue::Node>` --> /home/runner/work/mycelium/mycelium/maitake-sync/src/loom.rs:311:27 | 311 | pub(crate) struct UnsafeCell<T: ?Sized>(core::cell::UnsafeCell<T>); | ^^^^^^^^^^ note: required because it appears within the type `maitake::sync::wait_queue::Waiter` --> /home/runner/work/mycelium/mycelium/maitake-sync/src/wait_queue.rs:243:8 | 243 | struct Waiter { | ^^^^^^ = note: required for `mycelium_util::cordyceps::List<maitake::sync::wait_queue::Waiter>` to implement `std::marker::Sync` = note: 1 redundant requirement hidden = note: required for `mycelium_util::sync::blocking::Mutex<mycelium_util::cordyceps::List<maitake::sync::wait_queue::Waiter>>` to implement `std::marker::Sync` note: required because it appears within the type `maitake::sync::WaitQueue` --> /home/runner/work/mycelium/mycelium/maitake-sync/src/wait_queue.rs:186:12 | 186 | pub struct WaitQueue<Lock: ScopedRawMutex = DefaultMutex> { | ^^^^^^^^^ note: required because it appears within the type `drivers::ps2_keyboard::Ps2Keyboard` --> src/drivers/ps2_keyboard.rs:6:12 | 6 | pub struct Ps2Keyboard { | ^^^^^^^^^^^ = note: shared static variables must have a type that implements `Sync`
clippy: src/rt.rs#L56
error[E0277]: `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` cannot be shared between threads safely --> src/rt.rs:56:15 | 56 | static TIMER: spin::InitOnce<time::Timer> = spin::InitOnce::uninitialized(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` cannot be shared between threads safely | = help: within `maitake::time::timer::sleep::Entry`, the trait `std::marker::Sync` is not implemented for `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` note: required because it appears within the type `maitake::loom::inner::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` --> /home/runner/work/mycelium/mycelium/maitake/src/loom.rs:204:27 | 204 | pub(crate) struct UnsafeCell<T: ?Sized>(core::cell::UnsafeCell<T>); | ^^^^^^^^^^ note: required because it appears within the type `maitake::time::timer::sleep::Entry` --> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/sleep.rs:39:19 | 39 | pub(super) struct Entry { | ^^^^^ = note: required for `mycelium_util::cordyceps::List<maitake::time::timer::sleep::Entry>` to implement `std::marker::Sync` = note: required because it appears within the type `[mycelium_util::cordyceps::List<maitake::time::timer::sleep::Entry>; 64]` note: required because it appears within the type `maitake::time::timer::wheel::Wheel` --> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/wheel.rs:20:8 | 20 | struct Wheel { | ^^^^^ = note: required because it appears within the type `[maitake::time::timer::wheel::Wheel; 6]` note: required because it appears within the type `maitake::time::timer::wheel::Core` --> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/wheel.rs:11:28 | 11 | pub(in crate::time) struct Core { | ^^^^ = note: required for `mycelium_util::sync::blocking::Mutex<maitake::time::timer::wheel::Core>` to implement `std::marker::Sync` note: required because it appears within the type `maitake::time::Timer` --> /home/runner/work/mycelium/mycelium/maitake/src/time/timer.rs:161:12 | 161 | pub struct Timer { | ^^^^^ = note: required for `mycelium_util::sync::InitOnce<maitake::time::Timer>` to implement `std::marker::Sync` = note: shared static variables must have a type that implements `Sync`
clippy
Process completed with exit code 1.
docs: trace/src/writer.rs#L207
error: unresolved link to `maitake_sync::blocking:::MutexGuard` --> trace/src/writer.rs:207:21 | 207 | /// [`MutexGuard`]: maitake_sync::blocking:::MutexGuard | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `maitake_sync` in scope | = note: `-D rustdoc::broken-intra-doc-links` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(rustdoc::broken_intra_doc_links)]`
docs: trace/src/writer.rs#L208
error: unresolved link to `mycelium_util::blocking::Mutex` --> trace/src/writer.rs:208:16 | 208 | /// [`Mutex`]: mycelium_util::blocking::Mutex | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `blocking` in module `mycelium_util`
docs
Process completed with exit code 1.
cargo test (host)
Process completed with exit code 101.
Loom tests (mycelium-util)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Miri tests (maitake)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Loom tests (cordyceps)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
clippy
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Miri tests (cordyceps)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
docs
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
cargo test (host)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Loom tests (maitake)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/