probe attach doesn't compile in `async` contexts
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Inizia da verifier/src/hiffy.rs:108 e ispeziona HubrisArchive in humility-core/src/hubris.rs:1133, dove il compilatore segnala il problema Send/Sync di OnceCell. Riproduci il fallimento della compilazione async e traccia i tipi addr2line e gimli coinvolti. Il lavoro è completato quando probe attach compila nei contesti async senza questo errore.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
While working on using humility as a library I ran into this:
error[E0277]: `OnceCell<Result<Option<Box<DwoUnit<EndianReader<LittleEndian, Arc<[u8]>>>>>, Error>>` cannot be shared between threads safely
--> verifier/src/hiffy.rs:108:5
|
108 | async fn get_measurement_log(&self) -> Result<Log, AttestError> {
| ^^^^^ `OnceCell<Result<Option<Box<DwoUnit<EndianReader<LittleEndian, Arc<[u8]>>>>>, Error>>` cannot be shared between threads safely
|
= help: within `[addr2line::unit::ResUnit<gimli::read::endian_reader::EndianReader<gimli::endianity::LittleEndian, Arc<[u8]>>>]`, the trait `Sync` is not implemented for `OnceCell<Result<Option<Box<DwoUnit<EndianReader<LittleEndian, Arc<[u8]>>>>>, Error>>`
= note: if you want to do aliasing and mutation between multiple threads, use `std::sync::OnceLock` instead
...
note: required because it appears within the type `HubrisArchive`
--> /home/labbott/.cargo/git/checkouts/humility-a1f94f6d75a1535e/80dae8d/humility-core/src/hubris.rs:1133:12
|
1133 | pub struct HubrisArchive {
| ^^^^^^^^^^^^^
note: required because it appears within the type `AttestHiffy`
--> verifier/src/hiffy.rs:66:12
|
66 | pub struct AttestHiffy {
| ^^^^^^^^^^^
= note: required for `&AttestHiffy` to implement `Send`
note: required because it's used within this `async` block
--> verifier/src/hiffy.rs:108:5
|
108 | async fn get_measurement_log(&self) -> Result<Log, AttestError> {
| ^^^^^
= note: required for the cast from `Pin<Box<{async block@verifier/src/hiffy.rs:108:5: 108:10}>>` to `Pin<Box<dyn Future<Output = Result<MeasurementLog<16>, AttestError>> + Send>>`
= note: the full name for the type has been written to '/home/labbott/dice-util/target/debug/deps/dice_verifier-b365f235203b0dbe.long-type-6895664460909633821.txt'
= note: consider using `--verbose` to print the full type name to the console
$ cat /home/labbott/dice-util/target/debug/deps/dice_verifier-b365f235203b0dbe.long-type-3655248516427123308.txt
std::ptr::Unique<[addr2line::unit::ResUnit<gimli::read::endian_reader::EndianReader<gimli::endianity::LittleEndian, Arc<[u8]>>>]>
hashbrown::raw::RawTable<(HubrisTask, addr2line::Context<gimli::read::endian_reader::EndianReader<gimli::endianity::LittleEndian, Arc<[u8]>>>)>
hashbrown::map::HashMap<HubrisTask, addr2line::Context<gimli::read::endian_reader::EndianReader<gimli::endianity::LittleEndian, Arc<[u8]>>>, RandomState>
HashMap<HubrisTask, addr2line::Context<gimli::read::endian_reader::EndianReader<gimli::endianity::LittleEndian, Arc<[u8]>>>>
This looks like the addr2line and gimli crates don't play nice with async at the moment and humility needs a little bit of refactoring.
- Lingua principale
- Rust
- Stelle
- 587
- Fork
- 64
- Merge medio
- 2g 1h
- PR unite (30g)
- 7
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di oxidecomputer/humility
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
oxidecomputer/humility#737 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
oxidecomputer/humility#730 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
oxidecomputer/humility#705 · 12 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
oxidecomputer/humility#678 · 1 commento ·
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 48/100
oxidecomputer/humility#623 ·
Tutte le issue di oxidecomputer/humility
Issue simili
-
[1.x Bug] run-operation --sql reports success but rolls back writes on transaction-capable adaptersApertatriage
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
dbt-labs/dbt#16784 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:cli bug good first issue priority:medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
rtk-ai/rtk#4615 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bnv-manager-v2: accept_invite creates the Mailcow domain admin before the commitForse già presa @myOmikron l’ha presa oggi. Apertabug ready-for-agent
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Windows: mio 1.2.3 named-pipe use-after-free panics the native IPC broker and hangs every toolApertaplatform:windows tool triaged wontfix
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
resources: add a regression test confirming admin mint still works after the #16 SAC handoffForse già presa @Daniexie l’ha presa oggi. Apertacontracts good first issue Stellar Wave
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OlaGreat/starbound-realms#137 · 1 commento ·