Programmieren - alles kontrollieren 4.922 Themen, 20.550 Beiträge

News: Schlamperei bei Qualitätssicherung

Zune durch unendliche Schleife erwürgt

Redaktion / 14 Antworten / Baumansicht Nickles

Pünktlich zum Jahreswechsel machte Microsofts mobiler Multimedia-Player "Zune" die Grätsche. Betroffen war die 30 GByte Variante des Players. Die fror beim Starten ein und nichts ging mehr.

Die Ursache wurde recht schnell bekannt: die Player-Software verschluckte sich an der Tatsache, dass 2008 ein Schaltjahr war. Die Problemlösung war immerhin simpel: einfach abwarten, bis der Player das Jahr 2009 erkannt hat - dann funktionierte er automatisch wieder. Nach dem Zune-Ausfall wurde viel spekuliert, wie das passieren konnte.

Zunächst wurde ermittelt, dass nicht Microsoft selbst Schuld am Ausfall der Player trägt, sondern ein Treiber beziehungsweise Programmcode eines Drittherstellers verantwortlich ist. Konkret ging es um einen Baustein im Player, die eine Echtzeituhr beinhaltet, die falsch ausgewertet wurde. Der PC-Experte Bryant Zadegan hat das Problem jetzt gründlich analysiert und hat in seinem Blog erklärt, wie es exakt zustande kam.

Bryant hat dazu den Programmcode des "Treibers" studiert (siehe hier). Erschreckendes Ergebnis der Analyse: schuld ist ein primitiver Programmierfehler, eine sogenannte "unendliche Schleife". An der Stelle im Code, wo das Datum berechnet wird, kann die Situation auftreten (eben bei Schaltjahren), dass eine Routine endlos abläuft, weil keine Abbruch-Bedingung zustande kommt.

Aus Sicht von Bryant Zadegan ist so eine "endlose Schleife" eine Schlamperei bei der Qualitätssicherung, die nicht passieren darf. Im Fall einer Schleife muss ein Entwickler stets peinlichst genau alle Abbruch-Bedingungen überprüfen, sicherstellen, dass kein Fall auftritt, bei dem die Schleife niemals beendet wird.

Der verbockte Teil des Programmcodes ist recht simpel, auch Programmier-Einsteiger können den Fehler leicht verstehen. Im Blog von Zadegan werden der Code und die simple Lösung des Problems detailliert beschrieben: A lesson on infinite loops.

bei Antwort benachrichtigen
Conqueror Redaktion

„Zune durch unendliche Schleife erwürgt“

Optionen

Sorry aber es gibt KEINE 100 % überprüfte oder fehlerfreie Software, sonst wäre diese nicht bezahlbar, oder käme dann auf den Markt, wenn die Konkurrenten schon das Upgrade auf die nächste Version verkaufen.
Also den Ball flach halten, oder hat Nickles.de noch keine Softwarebugs.

bei Antwort benachrichtigen
Kamusi Conqueror

„Sorry aber es gibt KEINE 100 überprüfte oder fehlerfreie Software, sonst wäre...“

Optionen

Hi,
sorry aber 2009 ist kein Schaltjahr.

Gruß Kamusi

Genieße die Stille
bei Antwort benachrichtigen
Scotty7 Kamusi

„Hi, sorry aber 2009 ist kein Schaltjahr. Gruß Kamusi“

Optionen

Vielleicht die wenig beredete Schaltesekunde.

gens inculta nimis vehitur crepitante colossa.
bei Antwort benachrichtigen
xafford Kamusi

„Hi, sorry aber 2009 ist kein Schaltjahr. Gruß Kamusi“

Optionen
sorry aber 2009 ist kein Schaltjahr.

Hat ja hier auch niemand behauptet, oder? Jedoch war 2008 ein Schaltjahr und der Bug trat am 31. Dezember 2008 auf, und das war exakt Tag 366 und da der Code auf isLeapYear und day > 366 prüft versagt er leider bei Schaltjahren und day = 366.
Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Kamusi xafford

„ Hat ja hier auch niemand behauptet, oder? Jedoch war 2008 ein Schaltjahr und...“

Optionen

"Die Ursache wurde recht schnell bekannt: die Player-Software verschluckte sich an der Tatsache, dass 2009 ein Schaltjahr ist. Die Problemlösung war immerhin simpel: einfach abwarten, bis der Player das Jahr 2009 erkannt hat - dann funktionierte er automatisch wieder. Nach dem Zune-Ausfall wurde viel spekuliert, wie das passieren konnte."


Genieße die Stille
bei Antwort benachrichtigen
xafford Kamusi

„ Die Ursache wurde recht schnell bekannt: die Player-Software verschluckte sich...“

Optionen

Ah... okay :o)

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Michael Nickles Kamusi

„ Die Ursache wurde recht schnell bekannt: die Player-Software verschluckte sich...“

Optionen

Sorry - da hab ich mich vertan. Ich ändere das mal auf Schaltjahr 2008.
Grüße,
Mike

bei Antwort benachrichtigen
ChrE Michael Nickles

„Sorry - da hab ich mich vertan. Ich ändere das mal auf Schaltjahr 2008....“

Optionen

Hallo!

Was, Du kannst Schaltjahre verändern?
Bist Du der Pabst (Gregor :-) )?
Oder Kosmologe?

Gruss

ChrE

bei Antwort benachrichtigen
PaoloP ChrE

„Hallo! Was, Du kannst Schaltjahre verändern? Bist Du der Pabst Gregor :- ? Oder...“

Optionen

Hab mal 29.02. Geburtstag :s da machste was mit sag ich dir..

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
chrissv2 Conqueror

„Sorry aber es gibt KEINE 100 überprüfte oder fehlerfreie Software, sonst wäre...“

Optionen

Natürlich gibt es hier Bugs aber die sind alle selber gemacht. M$ hat jedoch der Einfachheit halber den von Freescale zum Prozessor "mitgelieferten" Treiber verwendet. Deshalb kann man da auch kein Mitleid haben.

mfg
chris

bei Antwort benachrichtigen
xafford chrissv2

„Der gekillte iPodkiller *rofl*“

Optionen

Ähm... mal ne blöde Frage: Programmierst Du alle Bibliotheken und Treiber selbst? Es ist ein ganz normaler und sogar empfohlener Vorgang fertige Bibliotheken zu benutzen, unabhängig von der Programmiersprache. Zum einen ist es Blödsinn jedes Mal das Rad neu zu erfinden, es ist unwirtschaftlich und im Normalfall ist es sogar sicherer.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Hassashin xafford

„Ähm... mal ne blöde Frage: Programmierst Du alle Bibliotheken und Treiber...“

Optionen

> Es ist ein ganz normaler und sogar empfohlener Vorgang fertige
> Bibliotheken zu benutzen, unabhängig von der Programmiersprache.

Ebenfalls normal und empfohlen ist es, den Code vorher auf Verträglichkeit und Nebenwirkungen zu untersuchen. Nennt sich Qualitätskontrolle.

Gruss
Hassashin

--
Schäuble muss weg!
www.onlinetrojaner.de

Gruß Hassashin -- Farcebook ist die Pest des Internet und gehört ausgerottet.
bei Antwort benachrichtigen
Hassashin Redaktion

„Zune durch unendliche Schleife erwürgt“

Optionen

Da muss inzwischen nicht mal mehr der Lizenzierungsserver ausfallen oder abgeschaltet werden, jetzt reicht es schon, wenn die Uhr nicht mehr richtig tickt.

Danke MS und Toshiba, dass ihr das bei eurer Qualitätskonrolle verschlampt habt und den DRM-Gegnern ein weiteres stichhaltiges Argument in die Hand gebt.

Gruss
Hassashin

--
Schäuble muss weg!
www.onlinetrojaner.de

Gruß Hassashin -- Farcebook ist die Pest des Internet und gehört ausgerottet.
bei Antwort benachrichtigen
GarfTermy Redaktion

„Zune durch unendliche Schleife erwürgt“

Optionen

seit wann kann der zune atmen?

sorry @redaktion - aber eure überschriften unterbieten BILDniveau und das nervt langsam.

;-|

The two basic principles of Windows system administration: For minor problems, reboot For major problems, reinstall
bei Antwort benachrichtigen