Abo
  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: Anonymer Nutzer 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 :)

  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?

  3. Re: Wie funktioniert das?

    Autor: Anonymer Nutzer 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

  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

  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?

  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. ;)

  7. Re: Wie funktioniert das?

    Autor: Anonymer Nutzer 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.

  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.

  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.

  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.

  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.

  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...

  13. Re: Wie funktioniert das?

    Autor: Anonymer Nutzer 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. ;)

  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.

  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.

  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.

  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. "

  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?

  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.

  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

  1. 1
  2. 2

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Anzeige
Stellenmarkt
  1. Warner Music Group Germany Holding GmbH, Hamburg
  2. HDPnet GmbH, Heidelberg
  3. ROHDE & SCHWARZ SIT GmbH, Stuttgart
  4. Sagemcom Fröschl GmbH, Walderbach (zwischen Cham und Regensburg)

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. (u. a. DXRacer OH/RE9/NW für 199,90€ statt 226€ im Preisvergleich)
  2. 444,00€ + 4,99€ Versand


Haben wir etwas übersehen?

E-Mail an news@golem.de


The Surge im Test: Frust und Feiern in der Zukunft
The Surge im Test
Frust und Feiern in der Zukunft
  1. Computerspiele und Psyche Wie Computerspieler zu Süchtigen erklärt werden sollen
  2. Wirtschaftssimulation Pizza Connection 3 wird gebacken
  3. Mobile-Games-Auslese Untote Rundfahrt und mobiles Seemannsgarn

Redmond Campus Building 87: Microsofts Area 51 für Hardware
Redmond Campus Building 87
Microsofts Area 51 für Hardware
  1. Windows on ARM Microsoft erklärt den kommenden x86-Emulator im Detail
  2. Azure Microsoft betreut MySQL und PostgreSQL in der Cloud
  3. Microsoft Azure bekommt eine beeindruckend beängstigende Video-API

3D-Druck bei der Bahn: Mal eben einen Kleiderhaken für 80 Euro drucken
3D-Druck bei der Bahn
Mal eben einen Kleiderhaken für 80 Euro drucken
  1. Bahnchef Richard Lutz Künftig "kein Ticket mehr für die Bahn" notwendig
  2. Flatrate Öffentliches Fahrradleihen kostet 50 Euro im Jahr
  3. Nextbike Berlins neues Fahrradverleihsystem startet

  1. VLC, Kodi, Popcorn Time: Mediaplayer können über Untertitel gehackt werden
    VLC, Kodi, Popcorn Time
    Mediaplayer können über Untertitel gehackt werden

    Untertitel sind praktisch, um Filme in einer fremden Sprache zu sehen oder eine andere Sprache zu lernen. Doch die Art und Weise, wie Mediaplayer damit umgehen, ist offenbar alles andere als sicher - bis jetzt.

  2. Engine: Unity bekommt 400 Millionen US-Dollar Investorengeld
    Engine
    Unity bekommt 400 Millionen US-Dollar Investorengeld

    Der Engine-Hersteller Unity kann weiter wachsen: Der US-Investor Silver Lake Partners steckt rund 400 Millionen US-Dollar in die Firma. Ein großer Teil des Geldes fließt allerdings nicht in neue Technologien - sondern in Autos für die Angestellten.

  3. Neuauflage: Neues Nokia 3310 soll bei Defekt komplett ersetzt werden
    Neuauflage
    Neues Nokia 3310 soll bei Defekt komplett ersetzt werden

    Eine Reparatur scheint bei einem Verkaufspreis von 60 Euro nicht zu lohnen: Wie aus der Bedienungsanleitung des neuen Nokia 3310 hervorgeht, wird das Featurephone im Falle eines Defektes nicht repariert, sondern gleich ersetzt. Umweltfreundlich ist das nicht.


  1. 18:58

  2. 18:20

  3. 17:59

  4. 17:44

  5. 17:20

  6. 16:59

  7. 16:30

  8. 15:40