Environment
PlateSpin Migrate
PlateSpin Protect
PlateSpin Forge
Situation
When attempting to add or discover a workload the job enters a RequiresUserIntervention state. The diagnostics will show a status similar to the one below:
Type RequiresUserIntervention
ReportCode JobInactive
JobId 982356ca-a3b6-48d5-ab37-2358dda645e1
Duration 13
Message The job with id {982356ca-a3b6-48d5-ab37-2358dda645e1} appears to have been inactive for 13 minutes
ReportCode JobInactive
JobId 982356ca-a3b6-48d5-ab37-2358dda645e1
Duration 13
Message The job with id {982356ca-a3b6-48d5-ab37-2358dda645e1} appears to have been inactive for 13 minutes
Resolution
This issue is caused by invalid characters in the discovery XML being generated from the source machine. The invalid characters prevent the XML from being loaded into the PlateSpin Server.
The controller logs in the diagnostics will show errors similar to this:
- <EventLogEntry time="2010-08-05T04:46:19.073" code="SaveJobError" type="Error" source="PlateSpin.OperationsFramework.Controller.Execution">
<message xmlns=" http://schemas.platespin.com/ofx/ws/">Job 04ab08e5-df3e-4569-9d62-933ff86246b8 cannot be saved. PlateSpin.OperationsFramework.Sdk.PlateSpinException: Job 04ab08e5-df3e-4569-9d62-933ff86246b8 cannot be saved. ---> System.ArgumentException: '', hexadecimal value 0x05, is an invalid character. at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, Byte* pDst, Boolean entitize) at System.Xml.XmlUtf8RawTextWriter.WriteElementTextBlock(Char* pSrc, Char* pSrcEnd) at System.Xml.XmlUtf8RawTextWriter.WriteString(String text) at System.Xml.XmlWellFormedWriter.WriteString(String text) at System.Xml.XmlWriter.WriteNode(XmlReader reader, Boolean defattr) at PlateSpin.OperationsFramework.Controller.Job.get_XmlWithOutJobData() at PlateSpin.OperationsFramework.Controller.Management.Service.saveJob(Job job, Boolean saveJobData) --- End of inner exception stack trace --- at PlateSpin.OperationsFramework.Controller.Management.Service.saveJob(Job job, Boolean saveJobData) at PlateSpin.OperationsFramework.Controller.Management.Service.SaveJob(Job job) at PlateSpin.OperationsFramework.Controller.Job.Save() at PlateSpin.OperationsFramework.Controller.Execution.Job.Run()</message>
</EventLogEntry>
<message xmlns=" http://schemas.platespin.com/ofx/ws/">Job 04ab08e5-df3e-4569-9d62-933ff86246b8 cannot be saved. PlateSpin.OperationsFramework.Sdk.PlateSpinException: Job 04ab08e5-df3e-4569-9d62-933ff86246b8 cannot be saved. ---> System.ArgumentException: '', hexadecimal value 0x05, is an invalid character. at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, Byte* pDst, Boolean entitize) at System.Xml.XmlUtf8RawTextWriter.WriteElementTextBlock(Char* pSrc, Char* pSrcEnd) at System.Xml.XmlUtf8RawTextWriter.WriteString(String text) at System.Xml.XmlWellFormedWriter.WriteString(String text) at System.Xml.XmlWriter.WriteNode(XmlReader reader, Boolean defattr) at PlateSpin.OperationsFramework.Controller.Job.get_XmlWithOutJobData() at PlateSpin.OperationsFramework.Controller.Management.Service.saveJob(Job job, Boolean saveJobData) --- End of inner exception stack trace --- at PlateSpin.OperationsFramework.Controller.Management.Service.saveJob(Job job, Boolean saveJobData) at PlateSpin.OperationsFramework.Controller.Management.Service.SaveJob(Job job) at PlateSpin.OperationsFramework.Controller.Job.Save() at PlateSpin.OperationsFramework.Controller.Execution.Job.Run()</message>
</EventLogEntry>
Alternatively, you may see HTTP 400 Bad Request errors in the controller logs.
As mentioned above, this problem is due to invalid characters in the XML generated for the source server. Typically, these invalid characters are pulled from corrupt registry entries on the source in the Description or Display Name values for a service or install application.
Malware, freeware, and shareware are common causes for this problem.
The following applications are known to cause problems and should be removed from the system before attempting to discovery it again:
Nagios Agent
FoxIt Pro Reader
Tomcat
If removal is not possible:
1. Open the registry on the server being discovered and navigate to the service or application registry key.
Services are pulled from:
HKLM\System\CurrentControlSet\Services
Applications are pulled from:
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
2. Note the value of the Description and/or Display Name REG_SZ.
3. Delete the Description and/or Display Name REG_SZ and recreate it by typing the value noted in Step 2 by hand.
4. Attempt to discover or add the workload again.