Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

`Destructor` can unwrap a failed channel send

Aperta Adatta ai principianti
#11,397 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
backend

Direzione di ricerca

Inizia con illumos-utils/src/destructor.rs intorno alle righe 144-150 e leggi il worker Destructor e il percorso di invio del channel. Verifica in che modo l’arresto del runtime Tokio possa chiudere il channel, quindi esegui i test esistenti pertinenti o il comando di test per illumos-utils. Il lavoro è completato quando un send fallito non esegue più unwrap né provoca un panic, mentre l’oggetto viene gestito come descritto nell’issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I'm working on #11395, which is intended to resolve #7726 by continually attempting to delete OPTE ports. That uses the the Destructor type which sends an object to a spawned worker task on a channel, where the actual deletions occur. There's a safety note here:

https://github.com/oxidecomputer/omicron/blob/d71011cec505fc2a6e6d5a1699c04ac989be506e/illumos-utils/src/destructor.rs#L144-L150

I don't think that's quite right. The other thing that can shut down the worker is the Tokio runtime itself shutting down, which has no guaranteed order in which it stops its tasks. That means we could be attempting to send on a closed channel here, which would then unwrap and panic. We should handle this possibility, though there's not much we can do except maybe log an error and return the object.

Lingua principale
Rust
Stelle
610
Fork
104
Merge medio
2g 15h
PR unite (30g)
113

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di oxidecomputer/omicron

Tutte le issue di oxidecomputer/omicron

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.