eclipse-platform / eclipse-platform/eclipse.platform

Few WorkManager fields are not MT safe

Offen
#2,148 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Java
Sterne
165
Forks
174
Ø Merge
2 T. 8 Std.
Gemergte PRs (30 T.)
22

Beschreibung

While debugging https://github.com/eclipse-jdt/eclipse.jdt.core/issues/4370 I've noticed that in the `org.eclipse.core.internal.resources.WorkManager` few fields are not volatile/atomic but could be accessed from different threads, so even if the modification happens while holding workspace locks, other threads might see stale values.

Fields in question are
- `WorkManager.operationCanceled`
- `WorkManager.nestedOperations`
- `WorkManager.preparedOperations`

I don't have reproducer, but I think making the fields either volatile or atomic shouldn't harm.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, org.eclipse.core.internal.resources.WorkManager zu lokalisieren und gleichzeitige Zugriffe auf operationCanceled, nestedOperations und preparedOperations nachzuverfolgen. Ermittle, ob die bestehende Verwendung der Workspace-Sperre weiterhin veraltete Lesevorgänge zulässt; abgeschlossen ist die Aufgabe, wenn die Felder eine sichere Sichtbarkeit zwischen Threads aufweisen, ohne das Verhalten von WorkManager zu ändern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.