Skip to content

Commit aa681ae

Browse files
committed
add ASP.NET 4.8 known issues
1 parent 6ed50ea commit aa681ae

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# InvalidOperationException in ASP.Net-RecycleLimitMonitor-AlertProxyMonitors
2+
3+
## Symptoms
4+
ASP.Net applications may crash intermittently due to an `InvalidOperationException` in
5+
`System_Web_ni!System.Web.Hosting.RecycleLimitMonitor+RecycleLimitMonitorSingleton.AlertProxyMonitors`.
6+
7+
## Cause
8+
This issue was introduced when ASP.Net 4.7 separated cache management and memory monitoring. This new `RecycleLimitMonitorSingleton` monitors worker process private bytes usage against the recycling limit for the process, and when
9+
the limit is near, it alerts a set of "proxy monitors" in each registered AppDomain so they can take action to avoid a process
10+
recycle. The collection of "proxy monitors" being enumerated was not thread-safe, though, so new AppDomains spinning up or old
11+
AppDomains shutting down while this monitor enumerated the collection could result in this unhandled `InvalidOperationException`
12+
in the default AppDomain, causing a crash.
13+
14+
## Workaround
15+
There is no reliable workaround. If the environment does not tend to consume private bytes near the recycling limit, or if
16+
web app domain lifetimes tend to last the entire length of the process lifetime, then chances of hitting this issue are
17+
extremely minimal. More private bytes consumption and/or more AppDomain recycling increases the odds of hitting this exception condition.
18+
19+
## Resolution
20+
A hotfix for this issue is planned for .Net 4.8. This page will be updated with a link to the hotfix when it becomes available.
21+
22+
## More Information
23+

0 commit comments

Comments
 (0)