assuming you've kept the default directory structure. If not, its the
State file is {ProjectName}.state. In my case the state file was
empty, other projects had an xml document. It appears that when the
server went down, the state file was horked. Solution was to blow away
the state file and restart.
> I've got a CCNet project setup as a service on my build server. The
> build server has serveral projects running on it, this project has
> been running successfully for a few weeks now. The server ran out of
> disk space, which caused a hard crash of the CCNet service. I cleaned
> up the disk drive and re-started the server.
> The server came up,and my other CCNet projects are running fine. This
> one project will not start. The error I keep getting is:
> --------------------------
> 2008-04-23 18:42:18,086 [316:INFO] Starting integrator for project:
> NHINC-Current Build Scripts
> 2008-04-23 18:42:18,096 [NHINC-Current Build Scripts:INFO] Starting
> integration for project: NHINC-Current Build Scripts
> 2008-04-23 18:42:18,096 [NHINC-Current Build Scripts:DEBUG] Retrieving
> ProjectStatus from server: tcp://localhost:21523/CruiseManager.rem
> 2008-04-23 18:42:19,789 [NHINC-Current Build Scripts:ERROR] INTERNAL
> ERROR: There is an error in XML document (0, 0).
> ----------
> System.InvalidOperationException: There is an error in XML document
> (0, 0). ---> System.Xml.XmlException: Root element is missing.
> ----------------------------
> It appears that a state file has become corrupted. Can anyone tell me
> where the ProjectStatus is read from?
> Thanks,
> Kieran
> Complete Log entry is listed below.
> ===============================================================
> 2008-04-23 18:42:17,966 [316:DEBUG] The trace level is currently set
> to debug. This will cause CCNet to log at the most verbose level,
> which is useful for setting up or debugging the server. Once your
> server is running smoothly, we recommend changing this setting in C:
> \Projects\NHINC\Current\Build\server\ccnet.exe.config to a lower
> level.
> 2008-04-23 18:42:17,976 [316:INFO] Reading configuration file "C:
> \Projects\NHINC\Current\Build\ccnetproject.xml"
> 2008-04-23 18:42:18,056 [316:INFO] Registered channel: tcp
> 2008-04-23 18:42:18,056 [316:INFO] CruiseManager: Listening on url:
> tcp://192.168.25.31:21523/CruiseManager.rem
> 2008-04-23 18:42:18,056 [316:INFO] Starting CruiseControl.NET Server
> 2008-04-23 18:42:18,056 [316:INFO] Starting integrator for project:
> NHINC-Current
> 2008-04-23 18:42:18,066 [NHINC-Current:INFO] Starting integration for
> project: NHINC-Current
> 2008-04-23 18:42:18,066 [NHINC-Current:DEBUG] Retrieving ProjectStatus
> from server: tcp://localhost:21523/CruiseManager.rem
> 2008-04-23 18:42:18,086 [316:INFO] Starting integrator for project:
> NHINC-Current Build Scripts
> 2008-04-23 18:42:18,096 [NHINC-Current Build Scripts:INFO] Starting
> integration for project: NHINC-Current Build Scripts
> 2008-04-23 18:42:18,096 [NHINC-Current Build Scripts:DEBUG] Retrieving
> ProjectStatus from server: tcp://localhost:21523/CruiseManager.rem
> 2008-04-23 18:42:19,789 [NHINC-Current Build Scripts:ERROR] INTERNAL
> ERROR: There is an error in XML document (0, 0).
> ----------
> System.InvalidOperationException: There is an error in XML document
> (0, 0). ---> System.Xml.XmlException: Root element is missing.
> at System.Xml.XmlTextReaderImpl.Throw(Exception e)
> at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res)
> at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
> at System.Xml.XmlTextReaderImpl.Read()
> at System.Xml.XmlTextReader.Read()
> at System.Xml.XmlReader.MoveToContent()
> at
> Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderIntegra tionResult.Read5_IntegrationResult()
> --- End of inner exception stack trace ---
> Server stack trace:
> at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
> xmlReader, String encodingStyle, XmlDeserializationEvents events)
> at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
> xmlReader, String encodingStyle)
> at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader
> textReader)
> at
> ThoughtWorks.CruiseControl.Core.State.FileStateManager.LoadState(String
> project) in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \state\FileStateManager.cs:line 34
> at
> ThoughtWorks.CruiseControl.Core.IntegrationResultManager.LoadLastIntegratio n()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \IntegrationResultManager.cs:line 32
> at
> ThoughtWorks.CruiseControl.Core.IntegrationResultManager.StartNewIntegratio n()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \IntegrationResultManager.cs:line 40
> at
> ThoughtWorks.CruiseControl.Core.ProjectIntegrator.get_CurrentIntegrationRes ult()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \ProjectIntegrator.cs:line 307
> at ThoughtWorks.CruiseControl.Core.CruiseServer.GetProjectStatus()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \CruiseServer.cs:line 191
> at ThoughtWorks.CruiseControl.Core.CruiseManager.GetProjectStatus()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \CruiseManager.cs:line 22
> at
> System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(I ntPtr
> md, Object[] args, Object server, Int32 methodPtr, Boolean
> fExecuteInContext, Object[]& outArgs)
> at
> System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(Ru ntimeMethodHandle
> md, Object[] args, Object server, Int32 methodPtr, Boolean
> fExecuteInContext, Object[]& outArgs)
> at
> System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMess age
> msg, Int32 methodPtr, Boolean fExecuteInContext)
> Exception rethrown at [0]:
> at
> System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
> reqMsg, IMessage retMsg)
> at
> System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
> msgData, Int32 type)
> at
> ThoughtWorks.CruiseControl.Remote.ICruiseManager.GetProjectStatus()
> at CCNET.Extensions.ProjectFilter.GetCurrentProjectStatus() in c:
> \Projects\CI Factory\1.0\Product\Production\CCNet
> \CCNET.Extensions.Plugin\ProjectFilter.cs:line 130
> at CCNET.Extensions.ProjectFilter.IsAllowed() in c:\Projects\CI
> Factory\1.0\Product\Production\CCNet\CCNET.Extensions.Plugin
> \ProjectFilter.cs:line 109
> ----------
> 2008-04-23 18:42:19,799 [NHINC-Current:ERROR] INTERNAL ERROR: There is
> an error in XML document (0, 0).
> ----------
> System.InvalidOperationException: There is an error in XML document
> (0, 0). ---> System.Xml.XmlException: Root element is missing.
> at System.Xml.XmlTextReaderImpl.Throw(Exception e)
> at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res)
> at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
> at System.Xml.XmlTextReaderImpl.Read()
> at System.Xml.XmlTextReader.Read()
> at System.Xml.XmlReader.MoveToContent()
> at
> Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderIntegra tionResult.Read5_IntegrationResult()
> --- End of inner exception stack trace ---
> Server stack trace:
> at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
> xmlReader, String encodingStyle, XmlDeserializationEvents events)
> at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
> xmlReader, String encodingStyle)
> at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader
> textReader)
> at
> ThoughtWorks.CruiseControl.Core.State.FileStateManager.LoadState(String
> project) in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \state\FileStateManager.cs:line 34
> at
> ThoughtWorks.CruiseControl.Core.IntegrationResultManager.LoadLastIntegratio n()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \IntegrationResultManager.cs:line 32
> at
> ThoughtWorks.CruiseControl.Core.IntegrationResultManager.StartNewIntegratio n()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \IntegrationResultManager.cs:line 40
> at
> ThoughtWorks.CruiseControl.Core.ProjectIntegrator.get_CurrentIntegrationRes ult()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \ProjectIntegrator.cs:line 307
> at ThoughtWorks.CruiseControl.Core.CruiseServer.GetProjectStatus()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \CruiseServer.cs:line 191
> at ThoughtWorks.CruiseControl.Core.CruiseManager.GetProjectStatus()
> in c:\Projects\CI Factory\1.0\Product\Production\CCNet\core
> \CruiseManager.cs:line 22
> at
> System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(I ntPtr
> md, Object[] args, Object server, Int32 methodPtr, Boolean
> fExecuteInContext, Object[]& outArgs)
> at
> System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(Ru ntimeMethodHandle
> md, Object[] args, Object server, Int32 methodPtr, Boolean
> fExecuteInContext, Object[]& outArgs)
> at
> System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMess age
> msg, Int32 methodPtr, Boolean fExecuteInContext)
> Exception rethrown at [0]:
> at
> System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
> reqMsg, IMessage retMsg)
> at
> System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
> msgData, Int32 type)
> at
> ThoughtWorks.CruiseControl.Remote.ICruiseManager.GetProjectStatus()
> at CCNET.Extensions.ProjectFilter.GetCurrentProjectStatus() in c:
> \Projects\CI Factory\1.0\Product\Production\CCNet
> \CCNET.Extensions.Plugin\ProjectFilter.cs:line 130
> at CCNET.Extensions.ProjectFilter.IsAllowed() in c:\Projects\CI
> Factory\1.0\Product\Production\CCNet\CCNET.Extensions.Plugin
> \ProjectFilter.cs:line 109
> ----------