[VB] BSOD durch Ping

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von enIking1998.

    [VB] BSOD durch Ping

    Dieser Thread ist nen Splitoff von Windows Bluescreens mit verschiedenen Meldungen.

    zu dem Bug:
    connect.microsoft.com/VisualSt…for-pingreply-causes-bsod

    Also:
    Ich hab ne Realtek 8168 GBE mit Realtek Treiber von 25.10.2012. Win7 x64 Ultimate, Visual Studio 2010 und kann den Bug nicht reproduzieren.
    Wie sieht euer Setup dabei aus?

    EDIT: Antwort an Jopi:
    Ich hab gerade nochmal 3,5 und 4 getestet.
    Bei diesen Funktioniert lustigerweise zwar die Angabe der Pingtimes korrekt, einen Bluescreen kann ich aber beim besten Willen nicht auslösen.
    Ich hab auch gerade extra nochmal nen billigen WLAN Stick getestet, kann aber auch da keinen solchen Fehler hervorrufen-.
    Den "Bug" kenne ich auch. Er ist mir 2x auf der Arbeit untergekommen. Einfach das Debuggen im falschen Zeitpunkt beenden und es kracht.
    Das genaue Setup habe ich gerade nicht parat, aber:
    VS2012 mit Windows 7 Professional 64 Bit.

    HardwareId:
    PCI\VEN_10EC&DEV_8136&SUBSYS_2A8C103C&REV_02
    Es handelt sich auch um eine Realtek. Treiberdetails:
    Realtek
    Datum: 29.12.2010
    Version: 7.37.1229.2010
    Dateien: Rt64win7.sys, RtNixProp64.dll, RTNUninst64.dll

    Ich meine ich hatte den Bug unter .NET 4.0.

    Auf meinem Rechner zu Hause habe ich es nicht reproduzieren wollen.
    Von meinem iPhone gesendet

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nikeee13“ ()

    Ping auf nicht existente IP via System.Treading.Timer.

    C-Quellcode

    1. Timer timer = new Timer( new TimerCallback( ( obj ) => {
    2. Ping p = new Ping();
    3. PingReply reply = p.Send( "192.168.178.22", 3000 );
    4. Console.WriteLine( "Time: {0}", reply.RoundtripTime );
    5. } ), null, TimeSpan.Zero, TimeSpan.FromMilliseconds( 1 ) );
    6. Console.Read();


    WLAN: D-Link AirPlus G DWL-G510 (WLAN g)
    LAN habe ich nicht ausprobiert. Ist ebenfalls ein Realtek-Gerät.

    System: Windows 8 Pro x64 mit Media Center.
    Weder BSOD noch sonst was. Läuft problemlos durch (.NET 4.5).
    (.NET 4.5)...
    Lad FW 2.0 - 3.5 runter, debugg es erneut... und voila...


    EDIT:Wenn ich mich recht entsinne musste man das 2-3x hintereinander versuchen...

    Manawyrm, kann es sein das Du SP 2 installiert hast?

    Ich hab nähmlich SP 1 drauf und der Bluescreen tritt ein...


    Mfg.eniking1998

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „enIking1998“ ()

    Manawyrm schrieb:

    hat sau schnell hintereinander 120 IPs angepingt

    Genau sowas habe ich auch getan. Um genau zu sein ist das hier ziemlich genau der Code, den ich verwendet habe:
    WakeOnLAN Library 1.5 [14.05.2013] - Jetzt open source.
    (Nur mit einem größeren Netzwerk)
    Von meinem iPhone gesendet
    @enIking1998: nope. Hab mit .NET 2.0 kompiliert: nichts.
    Habe sogar 200 Ping-Versuche gestartet. Nix.

    C-Quellcode

    1. for ( int i = 0; i < 200; i++ ) {
    2. Thread thread = new Thread( new ParameterizedThreadStart( ( obj ) => {
    3. Ping p = new Ping();
    4. PingReply reply = p.Send( "192.168.178.22", 3000 );
    5. Console.WriteLine( "{0}, Time: {1}", obj, reply.RoundtripTime );
    6. } ) );
    7. thread.Start( i );
    8. }
    9. Console.Read();
    (ja, ist mit .NET 2.0 kompiliert worden)
    Kannst mir erzählen was du willst, ich habe das Problem anscheinend nicht.
    Dazu: ich nutze Visual Studio 2012.
    Lies mein EDIT...

    EDIT EDIT:

    Debugg das mal:

    VB.NET-Quellcode

    1. Imports System.Net.NetworkInformation
    2. Public Class Form1
    3. Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    4. Timer1.Intervall = 1
    5. Dim pingSender As Net.NetworkInformation.Ping = New Net.NetworkInformation.Ping()
    6. Dim reply As PingReply = pingSender.Send("www.vb-paradise.de", 3000)
    7. Label1.Text = "Ping: " & reply.RoundtripTime & "/ms"
    8. End Sub
    9. End Class


    Wird ohne neue Zuweisung zum Thread gestartet...


    Mfg.eniking1998

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „enIking1998“ ()

    Da kam gerade was unerwartet. Ich habe mir die Kommentare auf der "Connect Microsoft"-Seite angesehen und den Tipp ausprobiert, das ganze mit .NET 4.0 zu debuggen: Ihr glaubt garnicht, wie schnell Windows dann weg war.

    Also: der Fehler tritt nicht im .NET 2, 3, 3.5 noch in 3.5 auf. Er tritt nur in 4 auf.
    Der Code kann oben in Post #7 nachgelesen werden.

    @Solaris: Danke :c
    Ich versuch es mal nochmal mit dem VB-Code :wacko:
    Bis gleich...


    EDIT EDITTTTTT:
    SEHT ANHANG!!!

    Der Trick:Nimmt

    192.168.178.22
    Als IP...
    Wartet 10 Sekunden...
    Und bricht das Debugging ab...

    Voila!



    Mfg.eniking1998
    Bilder
    • lol.png

      21,32 kB, 480×173, 124 mal angesehen

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „enIking1998“ ()

    Hi,

    was für ein krasses Problem - der Bug ist reproduzierbar. Klappt beim ersten Versuch; Form + Button1, Code:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim p As New NetworkInformation.Ping
    3. Dim r As NetworkInformation.PingReply
    4. r = p.Send("192.168.2.27") 'non-responding IP
    5. MessageBox.Show(r.Status.ToString())
    6. End Sub

    1. Warten bis die MessageBox kommt ("Host Unreachable") --> OK
    2. Nicht warten, sondern Debugging abbrechen --> BSOD.

    Win7 x64, .NET 4, Realtek RTL8167, Treiber = Rt64Win7.sys, Version 7.46.610.2011

    Ich habe nen vollen Memory Dump erstellt und debugge mal hinterher. Mal sehen was da rauskommt.
    Edit: Das wird ne ganze Weile dauern.
    Gruß
    hal2000

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

    Hm...also klappt es nur mit Adressen, die nicht existieren...

    Das ist schon...Fail...

    Hat es schon wer ausprobiert, ob es auch mit FW 4.5 den BS resultiert...

    EDIT:
    Wenn jemand die DMP-Datei untersuchen will:msdn.microsoft.com/en-us/windows/hardware/gg463009
    Wie das nervt...
    Windows erstellt eine Datei, die er selbst nicht lesen kann... .-


    Mfg.eniking1998

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „enIking1998“ ()

    @hal2000: dasselbe, was auch in dem oben verlinkten Microsoft Connect-Thema besprochen wird: das .NET 4 versucht irgendeine Datei zu blockieren. Diese wird überschrieben und dadurch crasht Windows.
    Dies tritt allerdings ausschließlich im .NET 4.0 auf. Der Fehler ist im .NET 2, 3 und 3.5 sowie 4.5 nicht enthalten.
    (eben noch auf Win7 verifiziert: .NET 4.5 ist nicht betroffen)
    Der Sinn ist dabei, das existierende Server antworten...

    Doch Windows versucht auch bei NON-Ip's oder nicht existierenden Host's weiter zu versuchen...
    Und bricht man es ab verursacht es ein Systemweite-Exception => BlueScreen...

    Die interessante Frage ist nun, was der Anlass ist, das es soweit kommt...

    Naja wir können nur noch auf ein Fix warten...(FW 4.5)

    Mfg.eniking1998