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


Überwachungssoftware: Ein warmes Mittagessen für den Staatstrojaner
Überwachungssoftware
Ein warmes Mittagessen für den Staatstrojaner
  1. Ex-CIA-Deutschlandchef Wir konnten Schröder leider nicht abhören
  2. Überwachung NSA-Ausschuss erwägt Einsatz mechanischer Schreibmaschinen
  3. Kontrollausschuss Die Angst der Abgeordneten, abgehört zu werden

Smartphone-Hersteller Xiaomi: Wie Apple, nur anders
Smartphone-Hersteller Xiaomi
Wie Apple, nur anders
  1. Flir One Wärmebildkamera fürs iPhone lieferbar
  2. Per Smartphone Paypal ermöglicht Bezahlen in Restaurants landesweit
  3. Datenübertragung Smartphone-Kompass spielt Musik durch Magnetkraft

Nvidia Shield Tablet ausprobiert: Schnelles Spiele-Tablet für Android mit WLAN-Controller
Nvidia Shield Tablet ausprobiert
Schnelles Spiele-Tablet für Android mit WLAN-Controller
  1. Tegra K1 Start von Nvidias Shield Tablet zeichnet sich ab
  2. GM200 und GM204 Nvidias große Maxwell-GPUs zeigen sich beim Zoll
  3. Dual-GPU-Grafikkarte EVGA macht Titan-Z schmaler und leiser als Nvidia

  1. iFixit: Amazon Fire Phone ist nur schlecht zu reparieren
    iFixit
    Amazon Fire Phone ist nur schlecht zu reparieren

    Die Profibastler von iFixit haben sich Amazons Fire Phone vorgenommen und das mit vier Infrarot-Sensoren und sechs Kameras bestückte Smartphone auseinandergenommen. Leicht zu reparieren ist es nicht, obwohl auf Standardschrauben gesetzt wurde.

  2. Entwicklerstudio: Crytek räumt finanzielle Probleme ein
    Entwicklerstudio
    Crytek räumt finanzielle Probleme ein

    Seit Wochen gibt es Gerüchte über nicht ausbezahlte Löhne, Massenkündigungen und Arbeitsniederlegungen. Jetzt äußert sich Crytek erstmals ausführlich und räumt gewisse Probleme ein - die jetzt aber behoben seien.

  3. M-net: Über 390 Kilometer Glasfaserkabel verlegt
    M-net
    Über 390 Kilometer Glasfaserkabel verlegt

    Ein Großprojekt zum Glasfaserausbau im hessischen Main-Kinzig-Kreis ist zur Hälfte abgeschlossen. Einige Unternehmen wurden von M-net auch mit FTTH-Anschlüssen ausgestattet, die bis zu 1 GBit/s und mehr ermöglichen.


  1. 19:06

  2. 18:54

  3. 18:05

  4. 16:19

  5. 16:08

  6. 16:04

  7. 15:48

  8. 15:21