I finally got a 1.5-beta-2 server installed, configured and (most importantly) running properly this weekend. Very cool. The client-initiated rebuild no longer forces a double-build; thank you, thank you, thank you! (Don't forget to set your environment variable for SSDIR, folks, or you'll spin your wheels for a long time trying to figure out why no builds ever complete automatically, even when client-forced builds succeed!)
<randomSuggestion> It might be helpful to have an attribute to specify the VSS path for the <vss database="\\myserver\vss$\" /> element in the config file, like we have for <nant program="c:\Program Files\NAnt\bin\nant.exe" /> element; that would facilitate monitoring multiple VSS databases from the same build server... </randomSuggestion>
However, the project name has become case-sensitive on the command line; it wasn't with 1.4... Now, /start:test.project != /start:Test.Project. That might be OK with me if the error returned were comprehensible ("No such project. Check your spelling and remember that names are case-sensitive.").
It looks like the call to ContainsKey(...) on BuildCoordinator.cs:85 is probably the case-sensitivity problem in the BuildCoordinator indexer. The Hashtable ContainsKey(...) isn't specifically documented in the fine manual to be case-sensitive, but it implements a case-sensitive interface and it is. There's a good example of build a case-insensitive comparer on MSDN. (In case your mailer eats HTML email: http://msdn.microsoft.com/library/default.asp?url=""> )
What gets returned to the client is this exception (which makes it sound like there's something wrong with the remoting server):
Encountered unhandled exception: System.Runtime.Remoting.RemotingException: Serv er encountered an internal error. For more information, turn on customErrors in the server's .config file.
Server stack trace:
Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req Msg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa ta, Int32 type) at Chive.Draco.Remote.IDracoRemote.StartBuild(String moduleName, Boolean forc eBuild) at Chive.Draco.Cli.DracoRemoteClient.DoBuild() at Chive.Draco.Cli.Commandline.Main(String[] args)
I waded into the source for a few minutes, and there's a TODO on DracoRemote:116, so I assume that this is something that will be addressed. Just be aware of the customErrors problem à the client won't get proper exception to catch unless the config file for the server permits it. :) Remoting is so much fun.
|
- Re: [Draconet-users] Weird 1.5-beta-2 client error. David Reed
- Re: [Draconet-users] Weird 1.5-beta-2 client error. Nick Robinson