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 :)

    http://blackphantom.de/

    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

    http://blackphantom.de/

    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.

    http://blackphantom.de/

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

    http://blackphantom.de/

    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

Haben wir etwas übersehen?

E-Mail an news@golem.de


Breitbandausbau: Netzbetreiber und Regierung schachern um Netzneutralität
Breitbandausbau
Netzbetreiber und Regierung schachern um Netzneutralität
  1. Mobiles Internet Roaming-Gebühren benachteiligen Grenzregionen
  2. Digitale Agenda Bitkom fordert komplette Nutzung des 700-Megahertz-Bandes
  3. Digitale Agenda 38 Seiten Angst vor festen Zusagen

Spiele auf dem Oculus Rift DK2: Manchmal klappt es, manchmal nicht
Spiele auf dem Oculus Rift DK2
Manchmal klappt es, manchmal nicht
  1. Oculus Rift Geld für gefundene Sicherheitslücken
  2. Virtuelle Realität Hüft-OP mit Oculus Rift und zwei Gopro-Kameras
  3. Oculus Rift Valve aktualisiert SteamVR für das DK2

Sofia: Der fliegende Blick durch den Staub
Sofia
Der fliegende Blick durch den Staub
  1. Gehirnforschung Licht programmiert Gedächtnis um
  2. Audio aus Video Gefilmte Topfpflanze verrät Gespräche
  3. Nahrungsmittel Trinken statt Essen

  1. Deutsche Grammophon: Klassik streamen mit bis zu 320 Kbps
    Deutsche Grammophon
    Klassik streamen mit bis zu 320 Kbps

    Klassische Musik aus dem Katalog des traditionsreichen Schallplattenlabels Deutsche Grammphon im Stream: Das ermöglicht die App DG Discovery, die jetzt für iOS verfügbar ist.

  2. Alibaba: Milliardenschwerer Börsengang wohl Mitte September
    Alibaba
    Milliardenschwerer Börsengang wohl Mitte September

    Es könnte der größte Börsengang der US-Geschichte werden - und dabei handelt es sich bei Alibaba um ein chinesisches Unternehmen. Jetzt mehren sich die Hinweise, dass der IPO für Mitte September 2014 geplant ist.

  3. Test Infamous First Light: Neonbunter Actionspaß
    Test Infamous First Light
    Neonbunter Actionspaß

    Gleiche Stadt, andere Superkräfte: Die alleine lauffähige Erweiterung First Light für das letzte Infamous hat schick-bunte Grafik, eine schwungvolle Story - und endlich eine sympathische Hauptfigur.


  1. 13:09

  2. 12:21

  3. 12:20

  4. 11:52

  5. 11:31

  6. 19:04

  7. 18:14

  8. 18:00