一度殺されると、サーバーポートを取得しようとしてもせずに、以降のすべての起動時にSeleniumサーバーがハングします。SIGTERMで殺された後、Selenium Serverがソケットにバインドされない
再起動すると問題が解決されます。別のユーザーとして実行するとセレンも同様に起動しますが、の後にはプロセスが終了すると、それ以上動作しなくなります。
これは、VirtualBox VMのLinux 2.6.32-5-amd64(debian squeeze)にあります。 workingとwhen it's notのシステムコールのログを見ると、ソケットが拘束される前に一部のコンポーネントがロックアップしているようです。 selenium logはあまり役に立ちません。
出力はどちらかの兆候を与えるものではありません:
$ java -jar selenium-server-standalone-2.28.0.jar
Dec 27, 2012 5:41:35 PM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
17:41:35.703 INFO - Java: Sun Microsystems Inc. 14.0-b16
17:41:35.704 INFO - OS: Linux 2.6.32-5-amd64 amd64
17:41:35.737 INFO - v2.28.0, with Core v2.28.0. Built from revision 18309
17:41:35.867 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
17:41:35.868 INFO - Version Jetty/5.1.x
17:41:35.868 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
17:41:35.869 INFO - Started HttpContext[/selenium-server,/selenium-server]
17:41:35.869 INFO - Started HttpContext[/,/]
私は、この問題は/ dev/randomがどのようにシードされているか/占有されているかと関係していると思います。これは、キーボード/マウス、おそらくネットワークからの入力を受け取り、これから乱数生成を駆動します。そのような入力がない場合(特にVMの場合はキーボード/マウスの問題を理解できる)、/ dev/randomは入力を待ってハングします –
知られていますが、よく見落とされる問題です! Good find ...そして確かに、 '/ dev/urandom'を' java.security.egd'の値として指定するのはうまくいきません...これは、Oracle/Sunの言うところのバグです。 – fge
@BrianAgnewそうではありません。理論的には、あなたの説明は正しいですが、 '/ dev/urandom'を指定するとプログラムはまったく同じように動作します。あまり説明できない理由のために、Sun/Oracleはそれを '/ dev/random'にエイリアスし、結果として同じバグが現れます。 – fge