473,800 Members | 2,368 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

IISState output, hung on critical section?

Friends, this is a longshot...

Our app is done in ASP.NET/C# with calls to legacy DLLs that use MFC/ODBC to
update the database. It's a legacy DB API that we must use.

We're debugging an application hang; w3wp.exe appears to stop servicing all
requests after about an hour. We have run IIState to capture some data
about that process and find that many threads end up waiting on some
"critical "section"; basically eventually everybody is in line for a single
resource that apparently is never freed. Sadly, we don't really use
ciritcal sections or mutexts much in our code, so we think this is an
MFC/ODBC issue. But, what are we waiting on? Why isn't it freed? Etc?

If any of you kind folks have any words to give or any experience with
tsomething similar, I'd gretly appreciate your thoughts. For the bravest
souls, I've pasted some IIState output below.

Thanks in advance for you thoughts!

James
THE BLOCKING THREAD
Thread ID: 21
System Thread ID: 131c
Kernel Time: 0:24:3.687
User Time: 0:15:18.265
Thread Status: Thread is in a WAIT state.
Thread Type: Other
# ChildEBP RetAddr
00 0deef174 7c822124 ntdll!KiFastSys temCallRet
01 0deef178 77e6baa8 ntdll!NtWaitFor SingleObject+0x c
WARNING: Stack unwind information not available. Following frames may be
wrong.
02 0deef1e8 77e6ba12 kernel32!WaitFo rSingleObjectEx +0x88
03 0deef1fc 30198a73 kernel32!WaitFo rSingleObject+0 x12
04 0deef258 00000000
RSSQLAPI!RSSQLD ebugLog::RSWebN ET::FunctionEnt ryExit::Functio nEntryExit+0x18 47d4

THE (FIRST OF MANY) BLOCKED THREAD
Thread ID: 10
System Thread ID: 17b4
Kernel Time: 0:0:48.937
User Time: 0:1:31.578
*** WARNING: Unable to verify checksum for C:\Program
Files\RS-SQL\RSSQLAPI.dl l
*** ERROR: Symbol file could not be found. Defaulted to export symbols for
C:\Program Files\RS-SQL\RSSQLAPI.dl l -
*** WARNING: Unable to verify checksum for
c:\windows\asse mbly\nativeimag es1_v1.1.4322\m scorlib\1.0.500 0.0__b77a5c5619 34e089_1423085c \mscorlib.dll
*** ERROR: Module load completed but symbols could not be loaded for
c:\windows\asse mbly\nativeimag es1_v1.1.4322\m scorlib\1.0.500 0.0__b77a5c5619 34e089_1423085c \mscorlib.dll
Thread Status: Thread is in a WAIT state.
Other information: Thread is waiting for a lock to be released. Looking for
lock owner.
Owning thread System ID: 131c
Thread Type: Managed Thread. Possible ASP.Net page or other .Net worker
PDB symbol for mscorsvr.dll not loaded
succeeded
Loaded Son of Strike data table version 5 from
"C:\WINDOWS\Mic rosoft.NET\Fram ework\v1.1.4322 \mscorsvr.dll"
Thread 10
ESP EIP
0196f714 7c82ed54 [FRAME: NDirectMethodFr ameStandalone] [DEFAULT] CMOD_OPT
System.Runtime. CompilerService s.CallConvThisc all Boolean
RSSQLTempRecord set.GetMarkSumm ary(CMOD_OPT Microsoft.Visua lC.IsConstModif ier
CMOD_OPT Microsoft.Visua lC.IsConstModif ier Ptr ValueClass
RSSQLTempRecord set,Ptr I4,Ptr I4)
0196f728 0d775e07 [DEFAULT] [hasThis] Void
ONeilSoft.RSSQL APINET.TempReco rdset.GetMarkSu mmary(ByRef I4,ByRef I4)
0196f73c 0d775d55 [FRAME: InlinedCallFram e]
0196f7dc 0d775d55 [DEFAULT] [hasThis] Boolean
ONeilSoft.RSWeb .RSWebGridForm. IsGridEmpty()
0196f7e8 0d775731 [DEFAULT] [hasThis] Void RSWEBNET.OSCart .InitMenu()

Nov 19 '05 #1
1 1730
if your DLL is STA, then asp.net has to use a single thread to access it. it
uses mutexes to control access to this thread. if this is the case, a single
hang in a method call, will hang all requests. you will have to fix the dll.

if your dll is not STA, then it is probably hanging internally. this would
lead me to believe it not thread safe under load. in this case you serialize
access your self with a mutex, and get around it. you could also update the
registry to say its STA.

-- bruce (sqlwork.com)
"James Hunter Ross" <ja********@one ilsoft.com> wrote in message
news:OF******** ******@TK2MSFTN GP10.phx.gbl...
Friends, this is a longshot...

Our app is done in ASP.NET/C# with calls to legacy DLLs that use MFC/ODBC
to update the database. It's a legacy DB API that we must use.

We're debugging an application hang; w3wp.exe appears to stop servicing
all requests after about an hour. We have run IIState to capture some
data about that process and find that many threads end up waiting on some
"critical "section"; basically eventually everybody is in line for a
single resource that apparently is never freed. Sadly, we don't really
use ciritcal sections or mutexts much in our code, so we think this is an
MFC/ODBC issue. But, what are we waiting on? Why isn't it freed? Etc?

If any of you kind folks have any words to give or any experience with
tsomething similar, I'd gretly appreciate your thoughts. For the bravest
souls, I've pasted some IIState output below.

Thanks in advance for you thoughts!

James
THE BLOCKING THREAD
Thread ID: 21
System Thread ID: 131c
Kernel Time: 0:24:3.687
User Time: 0:15:18.265
Thread Status: Thread is in a WAIT state.
Thread Type: Other
# ChildEBP RetAddr
00 0deef174 7c822124 ntdll!KiFastSys temCallRet
01 0deef178 77e6baa8 ntdll!NtWaitFor SingleObject+0x c
WARNING: Stack unwind information not available. Following frames may be
wrong.
02 0deef1e8 77e6ba12 kernel32!WaitFo rSingleObjectEx +0x88
03 0deef1fc 30198a73 kernel32!WaitFo rSingleObject+0 x12
04 0deef258 00000000
RSSQLAPI!RSSQLD ebugLog::RSWebN ET::FunctionEnt ryExit::Functio nEntryExit+0x18 47d4

THE (FIRST OF MANY) BLOCKED THREAD
Thread ID: 10
System Thread ID: 17b4
Kernel Time: 0:0:48.937
User Time: 0:1:31.578
*** WARNING: Unable to verify checksum for C:\Program
Files\RS-SQL\RSSQLAPI.dl l
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for C:\Program Files\RS-SQL\RSSQLAPI.dl l -
*** WARNING: Unable to verify checksum for
c:\windows\asse mbly\nativeimag es1_v1.1.4322\m scorlib\1.0.500 0.0__b77a5c5619 34e089_1423085c \mscorlib.dll
*** ERROR: Module load completed but symbols could not be loaded for
c:\windows\asse mbly\nativeimag es1_v1.1.4322\m scorlib\1.0.500 0.0__b77a5c5619 34e089_1423085c \mscorlib.dll
Thread Status: Thread is in a WAIT state.
Other information: Thread is waiting for a lock to be released. Looking
for lock owner.
Owning thread System ID: 131c
Thread Type: Managed Thread. Possible ASP.Net page or other .Net worker
PDB symbol for mscorsvr.dll not loaded
succeeded
Loaded Son of Strike data table version 5 from
"C:\WINDOWS\Mic rosoft.NET\Fram ework\v1.1.4322 \mscorsvr.dll"
Thread 10
ESP EIP
0196f714 7c82ed54 [FRAME: NDirectMethodFr ameStandalone] [DEFAULT]
CMOD_OPT System.Runtime. CompilerService s.CallConvThisc all Boolean
RSSQLTempRecord set.GetMarkSumm ary(CMOD_OPT
Microsoft.Visua lC.IsConstModif ier CMOD_OPT
Microsoft.Visua lC.IsConstModif ier Ptr ValueClass RSSQLTempRecord set,Ptr
I4,Ptr I4)
0196f728 0d775e07 [DEFAULT] [hasThis] Void
ONeilSoft.RSSQL APINET.TempReco rdset.GetMarkSu mmary(ByRef I4,ByRef I4)
0196f73c 0d775d55 [FRAME: InlinedCallFram e]
0196f7dc 0d775d55 [DEFAULT] [hasThis] Boolean
ONeilSoft.RSWeb .RSWebGridForm. IsGridEmpty()
0196f7e8 0d775731 [DEFAULT] [hasThis] Void RSWEBNET.OSCart .InitMenu()

Nov 19 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
5414
by: Brian Alexander | last post by:
Hello; I am trying to protect some global data, which may, in the future, be accessed by threads. I'm not sure how to implement a locking mechanism in python. Here is the idea I'm trying to express: class resourceManager(object): def __init__(self): self.__resources = 100
0
1486
by: Tim Clark | last post by:
We've been having a lot of event ID 37 with src W3SVC errors popping up. We have 50+ sites in medium isolation, and i ran IISstate on the two instances of DLLHOST and the one of inetinfo. Is there anything revealed by the three logs below? thank you in advance, TC Opened log file 'D:\emergency\output\IISState-3088.log'
4
1981
by: Phil Grimpo | last post by:
I had previously explained this problem in a different thread, but now that I have an IISState log, I figured I'd re-start the thred. My situation and the log are following... I have a very odd situation here. I have an administration page, where based on a users permissions, a recordset is called from the SQL server which has a list of paths to "Module Menus". Each of these menus are then placed into the page by calling...
1
1941
by: Beachcomp | last post by:
Hello, Running a Win2k box. Every few hours, IIS decides to stop serving asp pages. The machine has multiple hosts on it and this occurs with ALL asp pages. Running IISrecycle resolves the issue. Any ideas? Thanks
2
4155
by: Xarky | last post by:
Hi, I am trying to learn Critical Sections. I have written a small program. Source code problem below. What the program is doing is disabling the CRTL-C signal in the critical section. My problem is that when in the Critical Section I press the CTRL-C signal more than once. As supposed nothing happens, but when critical section ends, should it give me all the CTRL-C signals pressed or just one (its giving me one)?
6
3264
by: MPH Computers | last post by:
Hi I am looking for some help on Threading and Critical Sections I have a main thread that controls an event the event handler creates a new thread for carrying out the work because the work may not be completed before the event is triggered again I am trying to add critical sections round the producer & consumer parts of
2
1696
by: Christian | last post by:
I have a class named AccessClass to access a legacy system. In a webform i instanciate an AccessClass object named myAccess and i call a method : myAccess.accessmethod() I want to insure that no two webforms run simultaneouslly the code in accessMethod() So the code of accessMethode() is void accessMethod()
5
2821
by: =?Utf-8?B?VmFubmk=?= | last post by:
Hi, I have a component where I need to have thread-safe access to a list. Operations on the list are done in critical sections (lock (lockObject) { ... } ) in the usual way, to make sure that no other thread will modify the list while operations are running. However, I at the end of the critical section, I need to fire an OnChange type of event, publishing the changed list item as part of my custom EventArgs. I want to be certain that...
5
3334
by: amit.uttam | last post by:
Hey everyone, I've recently jumped big time into python and I'm working on a software program for testing automation. I had a question about proper logging of output. What I would like is: 1. a function syslog (to log output to log file only) 2. a function stdout (to log output to stdout only) 3. a function sslog (to log output to both log and stdout)
0
9691
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10505
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10276
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10253
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9090
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7580
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5471
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5606
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4149
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.