Andrew's profileSticky NotesPhotosBlogLists Tools Help

Blog


    September 08

    XP SP3 'Delayed Write Failed' keeps me up at night (4226, 26 and 50 / c000020c in Event Viewer) with NVIDIA network adapter

     
    (UPDATE: please see update at the end of this post.)
     
    Yawn. It's late and I shouldn't be doing this. But I've just spent several late nights trying to track down this file copying error on Windows XP SP3. So I am recording it here for others.
     
    It's taken me 3 days to figure this out, on and off.
     
    Recently a Windows XP SP3 machine started to report "Delayed Write Failed" messages when writing files to a Windows 2008 Server. I was copying photos from the desktop to a UNC path like this \\server\share\path\path\... When the error happens, the network connection becomes unresponsive - I can't see the server nor the internet. I have to disable and re-enable the network connection to restore connectivity.
     
    In the event log (eventvwr) I saw these messages among others. The 4226 wasn't that frequent but the 50 & 26 occur whenever the error happened.

    ID 50: MRXSMB
    {Delayed Write Failed} Windows was unable to save all the data for the file \Device\LanmanRedirector. The data has been lost. This error may be caused by a failure of your computer hardware or network connection. Please try to save this file elsewhere.
     
    ID 26: Application Popup
    Application popup: Windows - Delayed Write Failed : Windows was unable to save all the data for the file ...
     
    ID 4226: TCPIP
    TCP/IP has reached the security limit imposed on the number of concurrent TCP connect attempts.

    I followed various avenues to try and understand and resolve this. Thankfully it was a reproduceable error:
     
    • I tried changing network adapter settings (switching off Auto Negotiation) but this simply made the connection extremely slow between XP and the server.
    • I read various things about unreliable network switches, so I began to suspect my Linksys and tried using an old box, unsuccessfully.
    • I looked for new NVIDIA Ethernet drivers but this didn't help. I tried rolling-back the previous network card driver in Windows, but no change to the situation.
    • There are a few KB / hotfix articles on the Microsoft support site, but they aren't a direct match. One of them suggests this problem can be avoided if you always use a drive letter mapped to the server, rather than a \\UNC\path. Not very convenient. Another has the same event IDs (50 and 26, but not 4226) but the binary word data in the event doesn't match the MS description (I found c000020c, they had c000022c).
     
    Then I found this blog post by grinthock about the changes in XP SP2 to deliberately limit the concurrent TCPIP connections to 10, as a security measure. Given that file copying as well as web browsing and also Live Mesh are using TCPIP connections, this might be the cause in my case.
     
    Unfortunately this is not a configurable parameter - not in the registry, nor in a config or INI file. To increase the number of allowed TCPIP connections, you have to modify the TCPIP.SYS binary directly. Yeuch.
     
    First I made a copy of TCPIP.SYS as TCPIP.SYS.ORIGINAL (in c:\windows\system32\drivers).
     
    Then I used this tool to change the connections allowed, and I set my TCPIP connections to 256 (it was 10; I also tried 50 without success):
     
     
    (I have no idea if this tool contains spyware etc - I just took the chance. Hmmm.)
     
    There is an alternative tool for the same task - I didn't use this:
     
     
    After a reboot, my machine now appears to copy the files reliably to the server, using the same test as previously. I will monitor the situation.
     
    I also note that the TCPIP.SYS file can be updated by Windows Update, so this 'connections limit' might return to the default. So the problem may come back!
     
    Important - I also changed the settings on my NVIDIA nForce 10/100/1000 network adapter, this might also be part of the solution. In Device Manager (Start -> Run DEVMGMT.MSC) I changed the following settings (Properties -> Advanced tab):
     
    Low Power State Link Speed: Disable (was Enable)
    Optimize For: Throughput (was CPU)
     
    PLEASE NOTE - this 'solution' is a hack, no question. I am NOT responsible if this messes up your system. Seeing as I spent ages trying to fix this error, I hope this is helpful to someone else.
     
    UPDATE: the above solution didn't work for long -- the symptoms returned. But the following does appear to have helped my setup, by making these changes to my Windows 2008 Server machine and rebooting: