eclipse-platform / eclipse-platform/eclipse.platform
Few WorkManager fields are not MT safe
- 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
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