Re: directory.exists occassionally locks up when checking network share
- From: "Keith Langer" <tanalbit@xxxxxxx>
- Date: 2 Sep 2006 22:22:17 -0700
Carl,
have a different type of NIC than the machines that don't have theFrom what I've been told, the machines that have had the failure may
failure. The call to this function can return successfully hundreds or
thousands of times before the call doesn't return at all. The OS is
identical on all machines. As to whether the NIC drivers are up to
date, I don't know. Shouldn't Windows be able to deal with even a bad
NIC driver by causing a timeout?
Some more background on how this function is used: This application
will check for the server share every 30 seconds until it finds it. It
also attempts to connect to the share with a secondary login since the
primary login has a password which conflicts with the server. Due to a
virus, the Server and Secondary logon services had failed on the
server, so the application would check for the share every 30 seconds
and never find it.
A few questions:
1) Any idea how I can force this situation to be reproduced?
2) Do you think that if I call this method from a different thread that
I'm going to still have problems? I'm guessing that the thread will
never be successfully aborted and the system performance will degrade
as a result.
3) Is there another way to check for the directory's existence while
avoiding the potential for a lockup?
thanks,
Keith
Carl Daniel [VC++ MVP] wrote:
Keith Langer wrote:
Does anyone from Microsoft read this newsgroup? It would be nice if
someone could tell me why this is happening.
Various MSFT people do read this group. Telling you why it's happening is
not necessarily something they'll readily be able to do.
From what you describe, your application is waiting for a synchronous I/O
request to complete, and that request is blocked in the kernel. That's what
results in a hung, un-killable application.
The first things I'd check:
1. Do the machines where it fails have different network hardware than the
machines where it works?
2. Do the machines where it fails have different network driver versions
that the machines where it works?
3. Are the machines where it fails up to date on patches for the OS and all
installed hardware?
Bottom line - it's most likely a defective network driver or hardware that's
at the root of it. Network issues do legitimately occur, but worst case,
your application should hang for a couple minutes before a timeout occurs
and everything gets unstuck.
-cd
.
- Follow-Ups:
- Re: directory.exists occassionally locks up when checking network share
- From: Carl Daniel [VC++ MVP]
- Re: directory.exists occassionally locks up when checking network share
- References:
- directory.exists occassionally locks up when checking network share
- From: Keith Langer
- Re: directory.exists occassionally locks up when checking network share
- From: Ben Voigt
- Re: directory.exists occassionally locks up when checking network share
- From: Keith Langer
- Re: directory.exists occassionally locks up when checking network share
- From: Keith Langer
- Re: directory.exists occassionally locks up when checking network share
- From: Carl Daniel [VC++ MVP]
- directory.exists occassionally locks up when checking network share
- Prev by Date: Re: Is there any way to keep a reference to a file even if it is moved or renamed?
- Next by Date: Re: directory.exists occassionally locks up when checking network share
- Previous by thread: Re: directory.exists occassionally locks up when checking network share
- Next by thread: Re: directory.exists occassionally locks up when checking network share
- Index(es):
Relevant Pages
|
Loading