2012-12-27 13 views
5

के साथ मारे जाने के बाद सॉकेट से बंधे नहीं है, एक बार मारे जाने के बाद, सेलेनियम सर्वर सर्वर पोर्ट को प्राप्त करने के बिना भी सभी स्टार्टअप पर लटकता है।सेलेनियम सर्वर SIGTERM

रीबूटिंग समस्या को हल करता है। एक अलग उपयोगकर्ता के रूप में चलने से सेलेनियम फिर से शुरू होता है, लेकिन के बाद प्रक्रिया मारे जाती है, यह अब और काम नहीं करेगी।

यह वर्चुअलबॉक्स वीएम में लिनक्स 2.6.32-5-amd64 (डेबियन निचोड़) पर है। 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[/,/] 

उत्तर

10

यह एक जावा समस्या है, इसकी आरएनजी /dev/random से अनिवार्य रूप से पढ़ती है। एक वीएम पर, यादृच्छिक पूल सीमित है और अक्सर एक या दो रनों के बाद थक जाता है। किसी कारण से, सेलेनियम/जेट्टी स्टार्टअप का एक हिस्सा समस्याग्रस्त आरएनजी के लिए पूछता है। समस्या को ठीक करने के लिए, advise Java to use /dev/urandom instead:

java -Djava.security.egd=file:/dev/./urandom \ 
    -jar selenium-server-standalone-2.28.0.jar 

ठीक काम करता है।

+1

मेरा मानना ​​है कि समस्या यह बताती है कि कैसे/dev/यादृच्छिक बीज/पॉप्युलेट किया जाता है। यह कीबोर्ड/माउस और संभवतः नेटवर्क से इनपुट लेता है, और इससे यादृच्छिक संख्या पीढ़ी चलाता है। यदि ऐसा कोई इनपुट नहीं है (और वीएम के लिए विशेष रूप से आप कीबोर्ड/माउस समस्या को समझ सकते हैं) तो/dev/random अधिक इनपुट –

+1

एह के लिए प्रतीक्षा कर रहे हैं, ज्ञात लेकिन अक्सर अनदेखी समस्या! अच्छा खोज ... और हाँ, यह वास्तव में अजीब बात है कि 'java.security.egd' के मान के रूप में 'dev/urandom' निर्दिष्ट करना काम नहीं करेगा ... यह एक बग है, जो भी ओरेकल/सूर्य कह सकता है। – fge

+1

@BrianAgnew यह काफी नहीं है। हालांकि, सैद्धांतिक रूप से, आपकी व्याख्या सही है, यदि आप '/ dev/urandom' निर्दिष्ट करते हैं तो प्रोग्राम बिल्कुल वही व्यवहार करेगा। कुछ अस्पष्ट कारणों के लिए, अभी तक अस्पष्ट, सूर्य/ओरेकल ने 'dev/random 'को उपनाम दिया है, और नतीजतन एक ही बग दिखाई देगा। – fge