Windows Server 2003 Server Cluster with a Generic Script Resource Stops Responding for Long Periods
Event ID: 1232
Event Type: Error
Event Source: ClusSvc
Cluster generic script resource MyScript timed out. Online script entry point did not complete execution in a timely manner. This could be due to an infinite loop or a hang in this entry point, or the pending timeout may be too short for this resource. Please review the Online script entry point to make sure there's no infinite loop or a hang in the script code, and then consider increasing the pending timeout value if necessary. In a command shell, run "cluster res "MyScript" /prop PersistentState=0" to disable this resource, and then run "net stop clussvc" to stop the cluster service. Ensure that any problem in the script code is fixed. Then run "net start clussvc" to start the cluster service. If necessary, ensure that the pending time out is increased before bringing the resource online again.
Event ID: 1233
Event Type: Error
Event Source: ClusSvc
Cluster generic script resource MyScript: Request to perform the Online operation will not be processed. This is because of a previous failed attempt to execute the Online entry point in a timely fashion. Please review the script code for this entry point to make sure there is no infinite loop or a hang in it, and then consider increasing the resource pending timeout value if necessary. In a command shell, run "cluster res "MyScript" /pro PersistentState=0" to disable this resource, and then run "net stop clussvc" to stop the cluster service. Ensure that any problem in the script code is fixed. Then run "net start clussvc" to start the cluster service. If necessary, ensure that the pending time out is increased before bringing the resource online again.
- The Generic Script resource script contains an infinite loop (and therefore never exits).
- Calls to certain cluster application programming interfaces (APIs) are occurring. Calls to certain cluster APIs must be avoided from within a resource DLL or resource script because they can cause a cluster-wide deadlock. This script may be calling cluster APIs or starting Cluster.exe (which may result in calling cluster APIs that must be avoided) as one of the steps. For information about APIs that should not be called from a resource DLL or script, see “Function Calls to Avoid in Resource DLLs” in the Microsoft Platform SDK (PSDK).
- An action the Generic Script resource script is performing takes longer than the pending timeout value.
Changing Pending Timeout ValuesAny cluster resource operation should complete execution well inside the range of the pending timeout. For this reason, do not change the timeout value without a thorough understanding of why your script entry point exceeds this period of time. Also, consider all the implications of increasing this value because the cluster will be unresponsive until the timeout value is exceeded.
Recover and Restart the Cluster Service
- Disable the resource (in this example, named MyScript) by typing the following command: cluster resource "MyScript" /properties PersistentState=0
- Stop the Cluster service on the node that currently owns this resource’s group by typing the following command in a console window:net stop clussvc
- Fix any problem that you identify in the script that causes it to stop responding, loop, or exceed the pending timeout value. You may determine that the appropriate thing to do is to increase the pending timeout value, but make sure that you carefully consider the implications of doing so.
- Restart the Cluster service by typing the following command:net start clussvc
- Bring the resource back online manually by using Cluster Administrator or Cluster.exe. To do so, type the following command:cluster resource “MyScript” /onlineNote that bringing the resource back online automatically sets PersistentState to 1, so there is no need for an additional command to change the value from 0.
Article ID: 811685 - Last Review: 02/28/2007 21:29:14 - Revision: 4.3
- kbbug KB811685