Abo Login
  1. Foren
  2. Kommentare
  3. Applikationen
  4. Alle Kommentare zum Artikel
  5. › Mountain Lion: Absturz in vielen…

Wie funktioniert das?

Anzeige
  1. Thema
  1. 1
  2. 2

Neues Thema Ansicht wechseln


  1. Wie funktioniert das?

    Autor: BlackPhantom 03.02.13 - 15:31

    Hallo,

    ist ja interessant. Aber ich kann mir jetzt immer noch nicht vorstellen, WARUM die Anwendungen denn abstürzen? Nur weil man die bestimmte Zeichenfolge eingibt? Aber was passiert hinter den Kulissen im System das diesen Absturz verursacht?

    MFG :)

    Benutzer wird von Ihnen ignoriert. Anzeigen

  2. Re: Wie funktioniert das?

    Autor: non_sense 03.02.13 - 15:34

    http://news.ycombinator.com/item?id=5155611

    Dort wird es erklärt. Die Rechtschreibprüfung erkennt die Zeichenfolge als URI und wird zu einem URI-Interpreter geschickt. Der Interpreter schmeißt aber eine Exception, die von den oberen Schichten nicht abgefangen wird. Die Folge ist, dass die Anwendung abstürzt.

    Für mich ist es fraglich, warum der Fehler erst jetzt auftaucht?

    Benutzer wird von Ihnen ignoriert. Anzeigen

  3. Re: Wie funktioniert das?

    Autor: BlackPhantom 03.02.13 - 15:42

    non_sense schrieb:
    --------------------------------------------------------------------------------
    > news.ycombinator.com
    >
    > Dort wird es erklärt. Die Rechtschreibprüfung erkennt die Zeichenfolge als
    > URI und wird zu einem URI-Interpreter geschickt. Der Interpreter schmeißt
    > aber eine Exception, die von den oberen Schichten nicht abgefangen wird.
    > Die Folge ist, dass die Anwendung abstürzt.

    Ah, dankeschön. Jetzt kann ich mir mehr darunter vorstellen.

    > Für mich ist es fraglich, warum der Fehler erst jetzt auftaucht?

    Das habe ich mich auch eben gefragt. Aber wahrscheinlich wussten die Nutzer nicht, dass ihre Anwendung gerade durch die Eingabe von diesem String abgestürzt ist.

    MFG

    Benutzer wird von Ihnen ignoriert. Anzeigen

  4. Re: Wie funktioniert das?

    Autor: developer 03.02.13 - 15:49

    non_sense schrieb:
    --------------------------------------------------------------------------------
    > news.ycombinator.com
    >
    > Dort wird es erklärt. Die Rechtschreibprüfung erkennt die Zeichenfolge als
    > URI und wird zu einem URI-Interpreter geschickt. Der Interpreter schmeißt
    > aber eine Exception, die von den oberen Schichten nicht abgefangen wird.
    > Die Folge ist, dass die Anwendung abstürzt.
    >
    > Für mich ist es fraglich, warum der Fehler erst jetzt auftaucht?

    Vermutlich weil der Fehler nur bei großem aber nicht bei kleinem "F" auftritt, die meisten Profis das ding weils ein stream / protokollname ist immer klein schreiben, der rest schreibt es vermutlich gar nicht und wenn doch dann konnten die bei denen das passiert ist es einfach nicht nachvollziehen.

    Da muss man aber auch erst mal drauf kommen.

    Whatever you do, do it with: 5 + (sqrt(1-x^2(y-abs(x))^2))cos(30((1-x^2-(y-abs(x))^2))), x is from -1 to 1, y is from -1 to 1.5, z is from -100 to 4.5

    Benutzer wird von Ihnen ignoriert. Anzeigen

  5. Re: Wie funktioniert das?

    Autor: non_sense 03.02.13 - 15:49

    BlackPhantom schrieb:
    --------------------------------------------------------------------------------
    > Das habe ich mich auch eben gefragt. Aber wahrscheinlich wussten die Nutzer
    > nicht, dass ihre Anwendung gerade durch die Eingabe von diesem String
    > abgestürzt ist.

    Naja, es kann auch noch weitere Konstellationen geben, die einen Absturz verursachen. Es muss nur halt diese Exception geworfen werden. Ich frage mich, ob diese Exception wirklich so ein Exot ist, so dass sie kaum vorkommt? Oder ist sie vielleicht durch ein Update hinzugekommen, und es wurde vergessen, die oberen Schichten zu aktualisieren?

    Benutzer wird von Ihnen ignoriert. Anzeigen

  6. Re: Wie funktioniert das?

    Autor: Stereo 03.02.13 - 15:50

    BlackPhantom schrieb:
    --------------------------------------------------------------------------------
    > non_sense schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > news.ycombinator.com
    > >
    > > Dort wird es erklärt. Die Rechtschreibprüfung erkennt die Zeichenfolge
    > als
    > > URI und wird zu einem URI-Interpreter geschickt. Der Interpreter
    > schmeißt
    > > aber eine Exception, die von den oberen Schichten nicht abgefangen wird.
    > > Die Folge ist, dass die Anwendung abstürzt.
    >
    > Ah, dankeschön. Jetzt kann ich mir mehr darunter vorstellen.
    >
    > > Für mich ist es fraglich, warum der Fehler erst jetzt auftaucht?
    >
    > Das habe ich mich auch eben gefragt. Aber wahrscheinlich wussten die Nutzer
    > nicht, dass ihre Anwendung gerade durch die Eingabe von diesem String
    > abgestürzt ist.
    >
    > MFG

    Liegt wohl eher daran, dass keiner bisher diesen String eintippen musste. ;)

    Benutzer wird von Ihnen ignoriert. Anzeigen

  7. Re: Wie funktioniert das?

    Autor: BlackPhantom 03.02.13 - 16:12

    developer schrieb:
    --------------------------------------------------------------------------------
    > non_sense schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > news.ycombinator.com
    > >
    > > Dort wird es erklärt. Die Rechtschreibprüfung erkennt die Zeichenfolge
    > als
    > > URI und wird zu einem URI-Interpreter geschickt. Der Interpreter
    > schmeißt
    > > aber eine Exception, die von den oberen Schichten nicht abgefangen wird.
    > > Die Folge ist, dass die Anwendung abstürzt.
    > >
    > > Für mich ist es fraglich, warum der Fehler erst jetzt auftaucht?
    >
    > Vermutlich weil der Fehler nur bei großem aber nicht bei kleinem "F"
    > auftritt, die meisten Profis das ding weils ein stream / protokollname ist
    > immer klein schreiben, der rest schreibt es vermutlich gar nicht und wenn
    > doch dann konnten die bei denen das passiert ist es einfach nicht
    > nachvollziehen.
    >
    > Da muss man aber auch erst mal drauf kommen.

    Das wäre eine plausible Möglichkeit.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  8. Re: Wie funktioniert das?

    Autor: non_sense 03.02.13 - 16:30

    Stereo schrieb:
    --------------------------------------------------------------------------------
    > Liegt wohl eher daran, dass keiner bisher diesen String eintippen musste.
    > ;)

    Für so was hat man aber in der Software-Entwicklung Unittests, die eigentlich auf so was testen sollten.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  9. Re: Wie funktioniert das?

    Autor: theonlyone 03.02.13 - 16:34

    Kommt mir generell extrem bescheuert vor der Fehler.

    Exceptions unbehandelt zu lassen ist ja wohl etwas das jede Test-Suit irgendwie abdecken sollte, den wenn etwas irgendwo eine Exception wirft die "nicht" abgearbeitet wird deckt man diese Fälle schlicht und einfach nicht ab, ergo die Tests sind einfach unvollständig.


    Fehler kann ja durchaus geworfen werden, aber das darf auf keinen Fall zum absturz führen, vor allem nicht von Programmen die eine Rechtschreibkontrolle nur "nutzen" , dann kackt eben dieses Modul ab, aber doch nicht gleich der ganze Browser.


    Da muss man sich schon extrem schämen solche Sachen im Release zu haben.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  10. Re: Wie funktioniert das?

    Autor: 476f6c656d 03.02.13 - 16:44

    Du kannst aber wiederum nicht auf jeden möglichen String testen. f ile:/// funktioniert ohne das etwas abstürzt.
    Es stürzt erst ab, wenn du das f groß schreibst.



    1 mal bearbeitet, zuletzt am 03.02.13 16:45 durch 476f6c656d.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  11. Re: Wie funktioniert das?

    Autor: non_sense 03.02.13 - 16:49

    476f6c656d schrieb:
    --------------------------------------------------------------------------------
    > Du kannst aber wiederum nicht auf jeden möglichen String testen. f ile:///
    > funktioniert ohne das etwas abstürzt.
    > Es stürzt erst ab, wenn du das f groß schreibst.

    Sicherlich, aber Groß- und Kleinschreibung gehören eigentlich zum kleinen 1x1 des Testen eines Parsers, und da hier eine spezielle Exception geworfen wird, sollte der Test schon die Exception testen.



    1 mal bearbeitet, zuletzt am 03.02.13 16:51 durch non_sense.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  12. Re: Wie funktioniert das?

    Autor: cry88 03.02.13 - 17:23

    developer schrieb:
    --------------------------------------------------------------------------------
    > Vermutlich weil der Fehler nur bei großem aber nicht bei kleinem "F"
    > auftritt, die meisten Profis das ding weils ein stream / protokollname ist
    > immer klein schreiben, der rest schreibt es vermutlich gar nicht und wenn
    > doch dann konnten die bei denen das passiert ist es einfach nicht
    > nachvollziehen.
    >
    > Da muss man aber auch erst mal drauf kommen.

    mich wundert es aber doch. ich mein wer einmal diesen fehlerbehafteten string eingibt wird ihn doch nach dem absturz wieder genauso eingeben und spätestens nach dem 2ten absturz wird jeder misstrauisch.

    dann gibt man vielleicht nur diesen string ein und wieder schmiert das programm ab, zumindestens ich würd dann anfangen zu googlen, aber genau dann würd ja auch safari abschmieren. schon würd ich das auch bei anderen programmen ausprobieren...

    Benutzer wird von Ihnen ignoriert. Anzeigen

  13. Re: Wie funktioniert das?

    Autor: BlackPhantom 03.02.13 - 17:27

    cry88 schrieb:
    --------------------------------------------------------------------------------
    > developer schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Vermutlich weil der Fehler nur bei großem aber nicht bei kleinem "F"
    > > auftritt, die meisten Profis das ding weils ein stream / protokollname
    > ist
    > > immer klein schreiben, der rest schreibt es vermutlich gar nicht und
    > wenn
    > > doch dann konnten die bei denen das passiert ist es einfach nicht
    > > nachvollziehen.
    > >
    > > Da muss man aber auch erst mal drauf kommen.
    >
    > mich wundert es aber doch. ich mein wer einmal diesen fehlerbehafteten
    > string eingibt wird ihn doch nach dem absturz wieder genauso eingeben und
    > spätestens nach dem 2ten absturz wird jeder misstrauisch.
    >
    > dann gibt man vielleicht nur diesen string ein und wieder schmiert das
    > programm ab, zumindestens ich würd dann anfangen zu googlen, aber genau
    > dann würd ja auch safari abschmieren. schon würd ich das auch bei anderen
    > programmen ausprobieren...

    Naja, vielleicht ist es auch einfach nur leicht gesagt. Jetzt im Nachhinein weiß man es ja. Aber wenn man es nicht weiß dann würde man wahrscheinlich erst einmal gar nichts peilen bzw. darauf kommen, dass das diese Zeichenkette ist. Von so was geht man doch auch nicht aus. ;)

    Benutzer wird von Ihnen ignoriert. Anzeigen

  14. Re: Wie funktioniert das?

    Autor: weezor 03.02.13 - 17:32

    Immerhin ist es ja schonmal eine Exception, das allein ist ja auch eine Form der Kontrolle und Fehler Erkennung. Natürlich hätte der richtige UnitTest das ganze früher entdeckt. Szenerien auf die getestet werden müssen allerdings auch erst gefunden werden. Bei ausreichender Komplexität und begrenzter Lebenszeit wirst du nie alle abdecken können. Das Apple daraus lernt und ihre Tests anpasst ist ja durchaus möglich. Xcode und UnitTests funktionieren jedenfalls bestens zusammen.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  15. Re: Wie funktioniert das?

    Autor: theonlyone 03.02.13 - 17:59

    weezor schrieb:
    --------------------------------------------------------------------------------
    > Immerhin ist es ja schonmal eine Exception, das allein ist ja auch eine
    > Form der Kontrolle und Fehler Erkennung. Natürlich hätte der richtige
    > UnitTest das ganze früher entdeckt. Szenerien auf die getestet werden
    > müssen allerdings auch erst gefunden werden. Bei ausreichender Komplexität
    > und begrenzter Lebenszeit wirst du nie alle abdecken können. Das Apple
    > daraus lernt und ihre Tests anpasst ist ja durchaus möglich. Xcode und
    > UnitTests funktionieren jedenfalls bestens zusammen.

    Na klar, du hast in deinen Tests "alle" Exceptions abzudecken.

    Das ist hier nicht der fall und deshalb ist es echt peinlich.


    Wenn du irgendwelche Exceptions einfach ignorierst mit dem Gedanken "ach kommt schon nicht vor" dann schreit das ja nur danach das es kracht.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  16. Re: Wie funktioniert das?

    Autor: Nephtys 03.02.13 - 19:41

    theonlyone schrieb:
    --------------------------------------------------------------------------------
    > Kommt mir generell extrem bescheuert vor der Fehler.
    >
    > Exceptions unbehandelt zu lassen ist ja wohl etwas das jede Test-Suit
    > irgendwie abdecken sollte, den wenn etwas irgendwo eine Exception wirft die
    > "nicht" abgearbeitet wird deckt man diese Fälle schlicht und einfach nicht
    > ab, ergo die Tests sind einfach unvollständig.

    Wir sprechen hier aber von einem Betriebssystem.

    Unsauber getestet ist es. Aber so etwas kann man nicht durch automatische Tests finden.

    Windows wird oft als offener Betatest kritisiert... aber dort werden gefundene Bugs sehr schnell behoben.
    Ist halt immer die Frage, was man haben will.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  17. Re: Wie funktioniert das?

    Autor: deutscher_michel 03.02.13 - 21:17

    Ich zitiere mal Heise:
    "Dabei spielt die Schreibweise nur eine geringe Rolle: Auch f*lE:/// und F*Le:/// lösen den Crash aus" ... "Der Fehler ist nicht an die Zeichenkette F*le:/// gebunden. Er lässt sich ebenfalls durch F*le://a/ und F*le://abc auslösen. "

    Benutzer wird von Ihnen ignoriert. Anzeigen

  18. Re: Wie funktioniert das?

    Autor: SaSi 03.02.13 - 22:29

    ? und wieso haben die in england oder usa keine probleme wenn die etwas mit "datei" schreiben???

    oder gibt es generell probleme wenn man "doppelpunktslashslaschslasch" eingibt evtl. noch was davor?

    Benutzer wird von Ihnen ignoriert. Anzeigen

  19. Re: Wie funktioniert das?

    Autor: theonlyone 03.02.13 - 22:35

    Nephtys schrieb:
    --------------------------------------------------------------------------------
    > theonlyone schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Kommt mir generell extrem bescheuert vor der Fehler.
    > >
    > > Exceptions unbehandelt zu lassen ist ja wohl etwas das jede Test-Suit
    > > irgendwie abdecken sollte, den wenn etwas irgendwo eine Exception wirft
    > die
    > > "nicht" abgearbeitet wird deckt man diese Fälle schlicht und einfach
    > nicht
    > > ab, ergo die Tests sind einfach unvollständig.
    >
    > Wir sprechen hier aber von einem Betriebssystem.
    >
    > Unsauber getestet ist es. Aber so etwas kann man nicht durch automatische
    > Tests finden.
    >
    > Windows wird oft als offener Betatest kritisiert... aber dort werden
    > gefundene Bugs sehr schnell behoben.
    > Ist halt immer die Frage, was man haben will.

    Mit automatischen Tests findest du in jedem fall heraus ob "alle" deine Exceptions abgedeckt sind durch tests.

    Das reicht auch, den wenn etwas passiert das durch keine Exception abgedeckt ist, dann hast du sowieso garkeine saubere Möglichkeit damit umzugehen.


    Genauso kannst du auch Test-Driven entwickeln, sprich Tests schreiben zu aller erst und zu diesen Tests deinen Code. Ist hervorragend um eine richtig gute Test-Abdeckung zu garantieren, da ist dann jede Exception auch abgedeckt, den hast du zu denen keinen Test, darfst du sie nicht implementieren.


    Was hier zum Problem geführt hat ist irgendwo das gleiche wie mit Legacy Code.

    Es ist Code der lief lange problemlos, aber auch nur weil die Fehler "per zufall" nicht aufgetreten sind.

    Die Test-abdeckung des Codes ist lückenhaft, aber nahezu jedes Programm nutzt diesen Code (Rechtschreibprüfung) und vertraut darauf, ohne jede Sicherheit.


    Geht man test-driven an die Sache ran, muss man alles was man weiterleitet in die Black-Box nach außen schlichtweg testen, wird der Code überarbeitet muss man dafür Tests schreiben und erhöht die Abdeckung.


    Klar ist, es ist irgendwo das Paradebeispiel für eine unzureichende Test-Abdeckung, den solche Fehler sind schlichtweg ausgeschloßen wenn du Test-Driven an die Sache rangehst und am Ende sagen kannst das du jede Funktion mit einem Test abdeckst.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  20. Re: Wie funktioniert das?

    Autor: developer 03.02.13 - 23:36

    non_sense schrieb:
    --------------------------------------------------------------------------------
    > Stereo schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Liegt wohl eher daran, dass keiner bisher diesen String eintippen
    > musste.
    > > ;)
    >
    > Für so was hat man aber in der Software-Entwicklung Unittests, die
    > eigentlich auf so was testen sollten.

    Um den Fehler zu provozieren hätte man ihn kennen müssen.
    Unittests hätte da genau gar nichts geholfen solange niemand auf die Idee kommt zu schaun ob genau dieser String Probleme macht.

    Es ist ja schön, dass du deinen Code anscheinend testest aber vielleicht solltest du dich nochmal damit Auseinandersetzen was Unittests NICHT können.

    Whatever you do, do it with: 5 + (sqrt(1-x^2(y-abs(x))^2))cos(30((1-x^2-(y-abs(x))^2))), x is from -1 to 1, y is from -1 to 1.5, z is from -100 to 4.5

    Benutzer wird von Ihnen ignoriert. Anzeigen

  1. 1
  2. 2

Neues Thema Ansicht wechseln


Entschuldigung, nur registrierte Benutzer dürfen in diesem Forum schreiben. Klicken Sie hier um sich einzuloggen


Anzeige
  1. Software Ingenieure (m/w)
    seneos GmbH, Stuttgart
  2. .Net-Softwareentwickler/in
    ID-ware Deutschland GmbH, Rüsselsheim
  3. Business Analyst (m/w) für Prozesse und Systeme im Maklervertrieb
    Allianz Deutschland AG, Unterföhring
  4. Informatikerin / Informatiker / Bauinformatikerin / Bauinformatiker für zentrales Daten- und Prozessmanagement
    Ed. Züblin AG, Stuttgart

 

Detailsuche



Top-Angebote
  1. NEU: Der Hobbit: Eine unerwartete Reise - Extended Edition (Steelbook) - (Blu-ray)
    9,99€ inkl. Versand
  2. JETZT VERFÜGBAR: Windows 10 Home (64 Bit)
    99,90€
  3. TIPP: The Elder Scrolls Online: Tamriel Unlimited - PlayStation 4
    39,00€

 

Weitere Angebote



Haben wir etwas übersehen?

E-Mail an news@golem.de


SIOD: Wenn die Anzeige auch in der Zeitung blinkt
SIOD
Wenn die Anzeige auch in der Zeitung blinkt
  1. Electric Skin Nanoforscher entwickeln hautähnliches Farbdisplay
  2. Panasonic FZ300 Superzoom-Kamera arbeitet mit f/2,8-Objektiv und 4K-Auflösung
  3. Panasonic Lumix GX8 Systemkamera ermöglicht Scharfstellung nach der Aufnahme

New Horizons: Pluto wird immer faszinierender
New Horizons
Pluto wird immer faszinierender
  1. Die Woche im Video Trauer, Tests und Windows 10
  2. New Horizons Gruß aus den Pluto-Bergen
  3. Raumfahrt New Horizons wirft einen kurzen Blick auf den Pluto

In eigener Sache: Preisvergleich bei Golem.de
In eigener Sache
Preisvergleich bei Golem.de
  1. In eigener Sache News von Golem.de bei Xing lesen
  2. In eigener Sache Golem.de erweitert sein Abo um eine Schnupper-Version

  1. Neuer Windows Store: Windows 10 erlaubt achtmal weniger Parallelinstallationen
    Neuer Windows Store
    Windows 10 erlaubt achtmal weniger Parallelinstallationen

    Von 81 runter auf 10: Mit der Einführung von Windows 10 erlaubt der Windows Store künftig die parallele Installation von einer App nur noch auf maximal zehn Geräten. Auch ein paar weitere Änderungen am Windows Store dürften nicht jedem gefallen.

  2. Schwache Mobilsparte: Samsung plant Preisreduzierung der Galaxy-S6-Modelle
    Schwache Mobilsparte
    Samsung plant Preisreduzierung der Galaxy-S6-Modelle

    Die jüngsten Quartalsergebnisse zeigen, dass Samsungs Einnahmen und Gewinne sinken - Grund ist unter anderem das schwache Abschneiden der Mobilsparte. Mit einem schlankeren Produktportfolio und neuen Preisen bei den Galaxy-S6-Geräten soll gegengearbeitet werden.

  3. Angry Birds 2: Vogelauswahl im Schweinekampf
    Angry Birds 2
    Vogelauswahl im Schweinekampf

    Angry Birds hatte zwar viele Fortsetzungen, aber keinen echten "Teil 2" mit Nummer im Titel. Der ist jetzt da und bietet unter anderem Neuerungen wie freie Vogelauswahl und Level mit mehreren Abschnitten.


  1. 13:07

  2. 12:48

  3. 12:11

  4. 12:05

  5. 11:57

  6. 11:02

  7. 10:43

  8. 10:12