WindowsとLinuxの混在環境が構成できたと先週ブログに書いたばかりですが、WindowsではSlaveがいつの間にかオフラインに切り替わってしまう現象が頻発して実運用には使えない状態であることが分かりました。ログとかを眺めていますが、Hudsonに関する情報はまだまだネット上に少なくてバグなのか、自分の設定ミスなのかも切り分けられません。ちなみにエラーメッセージはこんなのです
2008/11/12 9:04:04 hudson.TcpSlaveAgentListener$ConnectionHandler$1 onClosed
警告: Connection #46 terminated
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2554)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at hudson.remoting.Channel$ReaderThread.run(Channel.java:637)2008/11/12 9:04:04 hudson.remoting.Channel$ReaderThread run
致命的: I/O error in channel machine1
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2554)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at hudson.remoting.Channel$ReaderThread.run(Channel.java:637)2008/11/12 9:03:53 hudson.TcpSlaveAgentListener$ConnectionHandler error
警告: Connection #47 is aborted: machine1 is already connected to this master. Rejecting this connection.
Hudsonの1.262には修正したバグに”Slave installed as a Windows service didn’t attempt automatic reconnection when initiail connection fails. “なんてのがあるようですがこれとは違うようだ… VMWare上のOSをSlaveに使っているのが何かまずいのだろうか。
ついでにWindows環境のSlaveですが、Windows Vista Businessの64bitを使おうとしたところ、Windowsのサービス登録に失敗しました。これもBTSに登録されているバグなんでしょうか?
会社のメールアドレスでHudsonの日本語メーリングリストに登録したから、もうちょっとBTSを探してみて、現象を報告してみよう。
※11/17追記
HudsonをアップグレードしたらSlaveが離脱する問題が解決した模様。
VMWareが影響してネットワークが途中で切断していたのだろうか。
Vista 64bitでサービス登録できないのは相変わらず、エラーメッセージは以下の通り
WMI.WmiException: AccessDenied
場所 WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result)
場所 WMI.WmiRoot.ClassHandler.Invoke(Object proxy, MethodInfo method, Object[] args)
場所 WMI.Win32ServicesProxy.Create(String , String , String , ServiceType , ErrorControl , StartMode , Boolean )
場所 winsw.WrapperService.Run(String[] args)
場所 winsw.WrapperService.Main(String[] args)