You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/relational-databases/errors-events/includes/database-engine-events-and-errors-19000-20999.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,6 +90,9 @@ ms.topic: include
90
90
| 19148 | 10 | No | Unable to initialize SSL support. |
91
91
| 19149 | 10 | No | Unable to configure MDAC-compatibility protocol list in registry. |
92
92
| 19150 | 10 | No | Unable to open SQL Server Network Interface library configuration key in registry. |
93
+
|[19407](../mssqlserver-19407-database-engine-error.md)| 10 | No | The lease between availability group '%.*ls' and the Windows Server Failover Cluster has expired. A connectivity issue occurred between the instance of SQL Server and the Windows Server Failover Cluster. To determine whether the availability group is failing over correctly, check the corresponding availability group resource in the Windows Server Failover Cluster. |
94
+
|[19419](../mssqlserver-19419-database-engine-error.md)| 10 | No | Windows Server Failover Cluster did not receive a process event signal from SQL Server hosting availability group '%.*ls' within the lease timeout period. |
95
+
|[19421](../mssqlserver-19421-database-engine-error.md)| 10 | No | SQL Server hosting availability group '%.*ls' did not receive a process event signal from the Windows Server Failover Cluster within the lease timeout period. |
93
96
| 20001 | 10 | No | There is no nickname for article '%s' in publication '%s'. |
94
97
| 20002 | 10 | No | The filter '%s' already exists for article '%s' in publication '%s'. |
95
98
| 20003 | 10 | No | Could not generate nickname for '%s'. |
Copy file name to clipboardExpand all lines: docs/relational-databases/errors-events/mssqlserver-19407-database-engine-error.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ ms.author: jopilov
30
30
31
31
Error 19407 is raised in the SQL Server error log when the communication between SQL Server and the Windows Server Failover cluster is lost. Typically a corrective action occurs - a failover to another Always On node.
32
32
33
-
A lease is a time-based communication mechanism that takes place between the SQL Server and the Windows Server Failover Cluster (WSFC) process, specifically the RHS.EXE process. The two processes communicate with each other periodically to ensure the other process is running and responding. This communication takes place using Windows [event objects](/windows/win32/sync/event-objects) and ensures that a failover of the AG resource doesn't occur without the knowledge of the WSFC. If one of the processes doesn't respond to the lease communication based on a predefined lease period, a lease timeout occurs. For detailed information, see [Lease Mechanism](../../database-engine/availability-groups/windows/availability-group-lease-healthcheck-timeout.md). Also see [How It Works: SQL Server AlwaysOn Lease Timeout[(https://techcommunity.microsoft.com/t5/sql-server-support-blog/how-it-works-sql-server-alwayson-lease-timeout/ba-p/317268)
33
+
A lease is a time-based communication mechanism that takes place between the SQL Server and the Windows Server Failover Cluster (WSFC) process, specifically the RHS.EXE process. The two processes communicate with each other periodically to ensure the other process is running and responding. This communication takes place using Windows [Event objects](/windows/win32/sync/event-objects) and ensures that a failover of the AG resource doesn't occur without the knowledge of the WSFC. If one of the processes doesn't respond to the lease communication based on a predefined lease period, a lease timeout occurs. For detailed information, see [Lease Mechanism](../../database-engine/availability-groups/windows/availability-group-lease-healthcheck-timeout.md). Also see [How It Works: SQL Server AlwaysOn Lease Timeout](https://techcommunity.microsoft.com/t5/sql-server-support-blog/how-it-works-sql-server-alwayson-lease-timeout/ba-p/317268)
34
34
35
35
### Causes
36
36
@@ -71,7 +71,7 @@ If there are occurrences of low virtual or physical memory on the system, the SQ
71
71
-**Process\Working Set** - to check individual processes memory usage
72
72
-**Memory\Available MBytes** - to check overall memory usage on the system
73
73
74
-
Below is a PowerShell script to identify overall memory usage across all process and the available memory on the system. If you would like to get individual processes memory usage, change it `"\Process(_Total)\Working Set"` to `"\Process(*)\Working Set"`.
74
+
You can use the following PowerShell script to identify overall memory usage across all process and the available memory on the system. If you would like to get individual processes memory usage, change it `"\Process(_Total)\Working Set"` to `"\Process(*)\Working Set"`.
75
75
76
76
```powershell
77
77
$serverName = $env:COMPUTERNAME
@@ -97,7 +97,7 @@ If there are occurrences of low virtual or physical memory on the system, the SQ
97
97
98
98
### Reduce or avoid large memory dumps of the SQL Server or cluster process
99
99
100
-
In some cases SQL Server process may be encountering exceptions, asserts, scheduler issues and so on. In those cases, SQL Server will by default trigger the SQLDumper.exe process to generate a minidump with indirect memory. However, if that dump generation takes a long time, the SQL Server process will stop responding and this may trigger a lease timeout. Frequent causes for a memory dump taking a long time include large memory usage by the process, the I/O subsystem where the dump is written is slow, or the default setting was changed from mini dump to a filtered or full dump. To avoid a lease timeout, do the following on AG systems:
100
+
In some cases SQL Server process may be encountering exceptions, asserts, scheduler issues and so on. In those cases, SQL Server will by default trigger the SQLDumper.exe process to generate a minidump with indirect memory. However, if that dump generation takes a long time, the SQL Server process will stop responding which may trigger a lease timeout. Common causes for a memory dump to take a long time include large memory usage by the process, the I/O subsystem where the dump is written is slow, or the default setting was changed from mini dump to a filtered or full dump. To avoid a lease timeout, use the following steps on AG systems:
101
101
102
102
- Increase session-timeout, for example, 120 seconds for all replicas
103
103
- Change the auto failover of all replicas to manual failover
@@ -107,7 +107,7 @@ For more information, see [Impact of dump generation](/troubleshoot/sql/tools/us
107
107
108
108
### Check virtual machine (VM) configuration for overprovisioning
109
109
110
-
If you're using a virtual machine, ensure that you aren't overprovisioning or overcommitting CPUs and memory resources. Overprovisioning CPUs or memory may cause the guest OS to run out of resources and show the same problems described above - high CPU and low memory. Frequently if you're viewing things inside the guest OS, you'll have a hard time explaining why you're running out of computing resources because things are happening outside of the virtual machine itself. Overcommitting resources can cause temporary halts of processing, which are likely to cause lease timeouts. For more information on how to address overcommitting, see [Troubleshooting ESX/ESXi virtual machine performance issues (2001003)](https://kb.vmware.com/s/article/2001003) and [Virtualization – Overcommitting memory and how to detect it within the VM](https://techcommunity.microsoft.com/t5/running-sap-applications-on-the/virtualization-8211-overcommitting-memory-and-how-to-detect-it/ba-p/367623).
110
+
If you're using a virtual machine, ensure that you aren't overprovisioning or overcommitting CPUs and memory resources. Overprovisioning CPUs or memory may cause the guest OS to run out of resources and show the same problems described earlier - high CPU and low memory. Frequently if you're viewing things inside the guest OS, you'll have a hard time explaining why you're running out of computing resources because things are happening outside of the virtual machine itself. Overcommitting resources can cause temporary halts of processing, which are likely to cause lease timeouts. For more information on how to address overcommitting, see [Troubleshooting ESX/ESXi virtual machine performance issues (2001003)](https://kb.vmware.com/s/article/2001003) and [Virtualization – Overcommitting memory and how to detect it within the VM](https://techcommunity.microsoft.com/t5/running-sap-applications-on-the/virtualization-8211-overcommitting-memory-and-how-to-detect-it/ba-p/367623).
111
111
112
112
### Check for virtual machine (VM) migration or backup
| Symbolic Name | HADR_AG_LEASE_EXPIRED_WAITING_FOR_RENEW |
27
+
| Message Text | Windows Server Failover Cluster did not receive a process event signal from SQL Server hosting availability group '%.*ls' within the lease timeout period. |
28
+
29
+
## Explanation
30
+
31
+
Error 19419 is raised in the SQL Server error log when the lease worker on the SQL Server side didn't get scheduled in time to process event signal from the cluster.
32
+
Specifically, SQL Server calls [WaitForMultipleObjects()](/windows/win32/api/synchapi/nf-synchapi-waitformultipleobjects) waiting for the Lease timeout event to be set in a signaled state. If the function returns WAIT_OBJECT_0, which indicates success, but by this time the lease has expired, then error 19419 is raised.
33
+
34
+
A lease is a time-based communication mechanism that takes place between the SQL Server and the Windows Server Failover Cluster (WSFC) process, specifically the RHS.EXE process. The two processes communicate with each other periodically to ensure the other process is running and responding. This communication takes place using Windows [Event objects](/windows/win32/sync/event-objects) and ensures that a failover of the AG resource doesn't occur without the knowledge of the WSFC. If one of the processes doesn't respond to the lease communication based on a predefined lease period, a lease timeout occurs. For detailed information, see [Lease Mechanism](../../database-engine/availability-groups/windows/availability-group-lease-healthcheck-timeout.md). Also see [How It Works: SQL Server AlwaysOn Lease Timeout](https://techcommunity.microsoft.com/t5/sql-server-support-blog/how-it-works-sql-server-alwayson-lease-timeout/ba-p/317268)
35
+
36
+
This error is related to other lease timeout errors and provides more specific detail for error [MSSQLSERVER_19407](mssqlserver-19407-database-engine-error.md)
37
+
38
+
### Causes
39
+
40
+
Since Windows Events are light-weight synchronization objects, there's relatively small number of external factors that affect them negatively. Typical issues that can lead to lease timeout involve system-wide problems. Here's a list of possibilities that can cause lease expiration and cause a restart or failover:
41
+
42
+
- High CPU usage on the system (close to 100%)
43
+
- Out-of-memory conditions - low virtual memory and/or one of the processes is being paged out
44
+
- SQL Server process not responding while generating a large memory dump
45
+
- WSFC going offline (e.g due to quorum loss)
46
+
47
+
48
+
The most common reason for error 19419 is high CPU, which causes a delay in scheduling the lease worker thread.
49
+
50
+
## User action
51
+
52
+
Check the CPU utilization on the server as SQL Server lease worker seems to be starved for CPU resources. The following PowerShell script will allow you to quickly diagnose CPU usage on the system.
| Message Text | SQL Server hosting availability group '%.*ls' did not receive a process event signal from the Windows Server Failover Cluster within the lease timeout period. |
28
+
29
+
## Explanation
30
+
31
+
Error 19421 is raised in the SQL Server error log when the lease helper on the Windows cluster side didn't signal the SQL Server lease worker thread within the pre-defined lease period. Specifically, SQL Server calls [WaitForMultipleObjects()](/windows/win32/api/synchapi/nf-synchapi-waitformultipleobjects) waiting for the Lease timeout event to be set in a signaled state. If the function returns WAIT_TIMEOUT, because it has exceeded the specified Lease interval, then error 19421 is raised.
32
+
33
+
A lease is a time-based communication mechanism that takes place between the SQL Server and the Windows Server Failover Cluster (WSFC) process, specifically the RHS.EXE process. The two processes communicate with each other periodically to ensure the other process is running and responding. This communication takes place using Windows [Event objects](/windows/win32/sync/event-objects) and ensures that a failover of the AG resource doesn't occur without the knowledge of the WSFC. If one of the processes doesn't respond to the lease communication based on a predefined lease period, a lease timeout occurs. For detailed information, see [Lease Mechanism](../../database-engine/availability-groups/windows/availability-group-lease-healthcheck-timeout.md). Also see [How It Works: SQL Server AlwaysOn Lease Timeout](https://techcommunity.microsoft.com/t5/sql-server-support-blog/how-it-works-sql-server-alwayson-lease-timeout/ba-p/317268)
34
+
35
+
This error is related to other lease timeout errors and provides more specific detail for error [MSSQLSERVER_19407](mssqlserver-19407-database-engine-error.md)
36
+
37
+
### Causes
38
+
39
+
Since Windows Events are light-weight synchronization objects, there's relatively small number of external factors that affect them negatively. Typical issues that can lead to lease timeout involve system-wide problems. Here's a list of possibilities that can cause lease expiration and cause a restart or failover:
40
+
41
+
- High CPU usage on the system (close to 100%)
42
+
- Out-of-memory conditions - low virtual memory and/or one of the processes is being paged out
43
+
- SQL Server process not responding while generating a large memory dump
44
+
- WSFC going offline (e.g due to quorum loss)
45
+
46
+
## User action
47
+
48
+
Check corresponding Availability Group resource in WSFC cluster to see if it reported any errors.
49
+
50
+
For detailed troubleshooting, see User action in [MSSQLSERVER_19407](mssqlserver-19407-database-engine-error.md#user-action)
51
+
52
+
- Troubleshoot high CPU issues
53
+
- Troubleshoot low memory issues
54
+
- Reduce or avoid large memory dumps of the SQL Server or cluster process
55
+
- Check virtual machine (VM) configuration for overprovisioning
56
+
- Check for virtual machine (VM) migration or backup causing issues
0 commit comments