[linux-l] Microsoft B.G. about bugs

Jan-Benedict Glaw jbglaw at lug-owl.de
Fr Feb 21 09:00:55 CET 2003


On Thu, 2003-02-20 21:50:45 +0100, Oliver Bandel <oliver at first.in-berlin.de>
wrote in message <20030220205045.GA1155 at first.in-berlin.de>:
> On Thu, Feb 20, 2003 at 09:09:21PM +0100, Carsten Posingies wrote:
> 1.: Vorher testen, und zwar so, wie die experimentierfreudigen User,
>     und nicht wie die selbstgefälligen Programmierer.

"Optimier'" mal eine Funktion, die an vielen Stellen benutzt wird. Wenn
Du es schaffst, einen Randbereich der Funktion zu optimieren, fällt's
u.U. nicht gleich auf, daß Du sie kaputtgemacht hast. Wenn dann passende
Daten ins System kommen, läuft gleich garnichts mehr...

(Da fällt mir als Beispiel aus dem Linux-Kernel copy_to_user ein, und
zwar die Implementierung für MIPS-Maschinen. Die ist durch Einsetzen
einiger Prefetch-Befehle auf zusätzliche Geschwindigkeit optimiert
worden. Prefetches auf MIPS machen (bei den 32bittern) immer volle 32
Bit, auch, wenn Du nur 'nen Byte haben wolltest). Das Problem kam dann
auf, wenn copy_to_user() Daten kopieren sollte, die gerade am Ende einer
page lagen, sodaß der Prefetch dann den Anfang der nächsten Seite
angeknappert hat, die nicht gemapt war. Oops...)

> 2.: Mal über's SW-Design nachdenken und sich mal Gedanken machen,
>     wie es kommen kann, daß kleine Neuerungen quer durch's System
>     greifen.

Wenn's Simpel-Funktionen sind (copy_to_user(), strlen(), ...) die sich
auf Mal komisch verhalten, dann kann sowas vorkommen.

Anderes Beispiel - bei einem Freund haben wir ein Shell-Script
geschrieben, daß einige Daten aus HTML-Seiten 'rausholt und über die
Nomen (besser: alle großgeschriebenen Wörter...) einen (sortierten)
Index aufbaut. Wörter wie "Ihrem", "Der", ... sollte weggelassen werden.

Irgendwann lief das Script nicht mehr, da ging so ziemlich *alles*
Schief. Woran lag's? Er hatte an irgendeiner der LOCALES-Variablen
gefummelt und grep, sed & Co. brachten aufmal quasi falsche Ergebnisse
an den Tag. Eine Variable umgesetzt - jede 10. Zeile kaputt...
(Ein "LANG=C" am Anfang des Scripts hat dann Besserung versprochen...)

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur
    fuer einen Freien Staat voll Freier Bürger" | im Internet!
   Shell Script APT-Proxy: http://lug-owl.de/~jbglaw/software/ap2/
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20030221/e74e7e8e/attachment.sig>


Mehr Informationen über die Mailingliste linux-l