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

Wie funktioniert das?

  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

Stellenmarkt
  1. MediaNet GmbH Netzwerk- und Applikations-Service, Freiburg
  2. Robert Bosch GmbH, Abstatt
  3. Robert Bosch GmbH, Waiblingen
  4. DATEV eG, Nürnberg

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. mit Gutschein: ASUSZONE (u. a. VivoBook 15.6" FHD mit i3-5005U/8 GB/128 GB für 270,74€ statt...
  2. (u. a. Canon EOS 200D mit Objektiv 18-55 mm für 477€)
  3. 12,49€
  4. 219€ + Versand (Vergleichspreis 251€)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Automatisiertes Fahren: Der schwierige Weg in den selbstfahrenden Stau
Automatisiertes Fahren
Der schwierige Weg in den selbstfahrenden Stau

Der Staupilot im neuen Audi A8 soll der erste Schritt auf dem Weg zum hochautomatisierten Fahren sein. Doch die Verhandlungen darüber, was solche Autos können müssen, sind sehr kompliziert. Und die Tests stellen Audi vor große Herausforderungen.
Ein Bericht von Friedhelm Greis

  1. Nach tödlichem Unfall Uber entlässt 100 Testfahrer für autonome Autos
  2. Autonomes Fahren Daimler und Bosch testen fahrerlose Flotte im Silicon Valley
  3. Kooperationen vereinbart Deutschland setzt beim Auto der Zukunft auf China

KI in der Medizin: Keine Angst vor Dr. Future
KI in der Medizin
Keine Angst vor Dr. Future

Mit Hilfe künstlicher Intelligenz können schwer erkennbare Krankheiten früher diagnostiziert und behandelt werden, doch bei Patienten löst die Technik oft Unbehagen aus. Und das ist nicht das einzige Problem.
Ein Bericht von Tim Kröplin

  1. Künstliche Intelligenz Vages wagen
  2. KI Mit Machine Learning neue chemische Reaktionen herausfinden
  3. Elon Musk und Deepmind-Gründer Keine Maschine soll über menschliches Leben entscheiden

Smartphone von Gigaset: Made in Bocholt
Smartphone von Gigaset
Made in Bocholt

Gigaset baut sein Smartphone GS185 in Bocholt - und verpasst dem Gerät trotz kompletter Anlieferung von Teilen aus China das Label "Made in Germany". Der Fokus auf die Region ist aber vorhanden, eine erweiterte Fertigung durchaus eine Option. Wir haben uns das Werk angeschaut.
Ein Bericht von Tobias Költzsch

  1. Bocholt Gigaset baut Smartphone in Deutschland

  1. Star Trek Discovery 2: Erster Trailer zeigt Raumschiff in Schwierigkeiten
    Star Trek Discovery 2
    Erster Trailer zeigt Raumschiff in Schwierigkeiten

    Oje, das schöne Schiff: Der erste Trailer der zweiten Staffel von Star Trek Discovery setzt auf Action und neue Bedrohungen. Auch das Raumschiff selbst kommt wohl nicht ganz unbeschadet aus dem neuen galaktischen Konflikt.

  2. Handelskrieg: Apple Watch und anderen Gadgets drohen Strafzölle
    Handelskrieg
    Apple Watch und anderen Gadgets drohen Strafzölle

    Die USA wollen offenbar beliebte Gadgets mit Strafzöllen belegen: Apple Watch und Lautsprecher von Sonos könnten in Nordamerika um 10 Prozent teurer werden. Dem iPhone drohen wegen eines Versprechens von US-Präsident Donald Trump gegenüber Tim Cook aber wohl keine Preisaufschläge.

  3. Spielebranche: Ex-Angestellter rechnet mit Valve ab
    Spielebranche
    Ex-Angestellter rechnet mit Valve ab

    In der Öffentlichkeit gilt Valve (Half-Life, Steam) als vorbildhafte Firma, die Wirklichkeit scheint nicht ganz so toll zu sein: Der ehemalige Angestellte Rich Geldreich schreibt seit einigen Tagen auf Twitter, wie es hinter den Kulissen aussehen soll.


  1. 13:24

  2. 12:44

  3. 11:42

  4. 09:48

  5. 18:05

  6. 17:46

  7. 17:31

  8. 17:15