Microsoft-Entwickler erklärt, wie es zum Windows 7-Wallpaper-Bug kam

Ein kurioses Problem sorgte einst bei Windows 7 für Verzögerungen beim Anmelden: Wer einen einfarbigen Desktop-Hintergrund wählte, musste 30 Sekunden länger warten. Raymond Chen ent­hüllte nun, dass ein kleiner Programmierfehler dafür verantwortlich war.
Windows 7, microsoft windows 7, Windows 7 Logo

Verborgener Fehler im Anmeldevorgang

Windows 7 hatte kurz nach seinem Release im Jahr 2009 mit einem seltsamen Problem zu kämpfen: Nutzer, die einen einfarbigen Hintergrund statt eines Wallpapers mit einem Bild verwendeten, mussten beim Anmelden deutlich länger warten. Der Anmeldebildschirm blieb für volle 30 Sekunden sichtbar, bevor der Desktop erschien. Microsoft bestätigte dieses Problem später in einem Support-Artikel für Windows 7 und Windows Server 2008 R2.

Der Fehler lag in der Art und Weise, wie Windows den Anmeldevorgang koordinierte. Nach der Authentifizierung lädt das System verschiedene Komponenten: die Taskleiste, Systemdienste, Desktop-Icons und natürlich den Hintergrund. Alle diese Elemente müssen dem System melden, wenn sie bereit sind. Erst wenn alle Komponenten ihre Bereitschaft signalisiert haben oder eine Zeitüberschreitung von 30 Sekunden eintritt, verschwindet der Anmeldebildschirm.

Raymond Chen, langjähriger Microsoft-Entwickler und Autor des Blogs "The Old New Thing", erklärt in einem Dev Blog-Beitrag den technischen Hintergrund des Problems. Das Wallpaper-Modul war so programmiert, dass der "Bereit"-Status nur gemeldet wurde, wenn tatsächlich ein Hintergrundbild geladen wurde: Code zu Windows 7-Bug

Der Programmcode hinter dem Problem

Der entscheidende Fehler: Die Bereitschaftsmeldung `Report(WallpaperReady)` befand sich innerhalb der Funktion `LoadWallpaperBitmap()`, die nur ausgeführt wurde, wenn ein Hintergrundbild definiert war. Bei einfarbigen Hintergründen wurde diese Funktion übersprungen und damit auch die Bereitschaftsmeldung. Das System wartete vergeblich auf ein Signal, das nie kam, und löste nach 30 Sekunden eine Zeitüberschreitung aus.

Diese Art von Programmierfehlern wird in der Softwareentwicklung als "Race Condition" bezeichnet - ein Zustand, bei dem das Verhalten eines Systems davon abhängt, welche Prozesse in welcher Reihenfolge ausgeführt werden. In diesem Fall wartete das System auf ein Ereignis, das unter bestimmten Bedingungen nie eintrat.

Ähnliches Problem bei Gruppenrichtlinien

Interessanterweise trat ein ähnliches Problem auf, wenn Nutzer die Gruppenrichtlinie "Desktop-Icons ausblenden" aktivierten. Chen erklärt im Dev Blog, dass solche nachträglich hinzugefügten Richtlinien oft anfällig für diese Art von Fehlern sind. Der ursprüngliche Code wurde häufig einfach mit einer Bedingung umschlossen: Code zu Windows 7-Bug Auch hier wurde die Bereitschaftsmeldung versehentlich in den Bedingungsblock eingeschlossen, sodass sie bei aktivierter Richtlinie nie ausgeführt wurde.

Schnelle Behebung nach Release

Microsoft behob das Problem bereits im November 2009, nur wenige Monate nach der Veröffentlichung von Windows 7 im Juli 2009. Die Lösung war denkbar einfach: Die Bereitschaftsmeldung musste außerhalb der Bedingung platziert werden, damit sie in jedem Fall ausgeführt wird - unabhängig davon, ob ein Hintergrundbild geladen wird oder nicht.

Chen selbst nutzt übrigens seit Windows 95 einen einfarbigen Hintergrund, wie er selbst verrät - ursprünglich aus Speicherplatzgründen, da Hintergrundbilder damals wertvolle Systemressourcen verbrauchten. In den frühen Windows-Versionen konnten Hintergrundbilder tatsächlich die Systemleistung spürbar beeinträchtigen, besonders auf Rechnern mit begrenztem Arbeitsspeicher.

Habt ihr ähnliche kuriose Windows-Fehler erlebt? Verwendet ihr selbst einfarbige Hintergründe oder setzt ihr auf Wallpaper? Teilt eure Erfahrungen in den Kommentaren!

Zusammenfassung
  • Windows 7 hatte Bug bei einfarbigem Desktop-Hintergrund
  • Anmeldevorgang dauerte 30 Sekunden länger als bei Hintergrundbildern
  • Ursache war ein Programmierfehler im Wallpaper-Modul
  • 'Bereit'-Status wurde nur bei geladenen Hintergrundbildern gemeldet
  • Ähnliches Problem trat bei ausgeblendeten Desktop-Icons auf
  • Microsoft behob den Fehler im November 2009 mit einfacher Codeänderung
  • Entwickler Chen nutzt seit Windows 95 einfarbigen Hintergrund

Siehe auch:
Jetzt einen Kommentar schreiben


Alle Kommentare zu dieser News anzeigen
Windows 7 im Preisvergleich
Tipp einsenden
❤ WinFuture unterstützen
Sie wollen online einkaufen? Dann nutzen Sie bitte einen der folgenden Links, um WinFuture zu unterstützen: Vielen Dank!