[ https://issues.apache.org/jira/browse/SPARK-1902?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14007684#comment-14007684 ]
Patrick Wendell commented on SPARK-1902: ---------------------------------------- Yeah, this would be a good one to fix. IIRC I spent a long time trying to figure out how to silence only this message, but I couldn't do anything except for silencing all jetty WARN logs (which we don't want). I also considered first checking if the port is free before trying to bind to it, but that has race conditions. If someone figures out a better way to do this, that would be great. > Spark shell prints error when :4040 port already in use > ------------------------------------------------------- > > Key: SPARK-1902 > URL: https://issues.apache.org/jira/browse/SPARK-1902 > Project: Spark > Issue Type: Bug > Components: Spark Core > Affects Versions: 1.0.0 > Reporter: Andrew Ash > > When running two shells on the same machine, I get the below error. The > issue is that the first shell takes port 4040, then the next tries tries 4040 > and fails so falls back to 4041, then a third would try 4040 and 4041 before > landing on 4042, etc. > We should catch the error and instead log as "Unable to use port 4041; > already in use. Attempting port 4042..." > {noformat} > 14/05/22 11:31:54 WARN component.AbstractLifeCycle: FAILED > SelectChannelConnector@0.0.0.0:4041: java.net.BindException: Address already > in use > java.net.BindException: Address already in use > at sun.nio.ch.Net.bind0(Native Method) > at sun.nio.ch.Net.bind(Net.java:444) > at sun.nio.ch.Net.bind(Net.java:436) > at > sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) > at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) > at > org.eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:187) > at > org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316) > at > org.eclipse.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:265) > at > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) > at org.eclipse.jetty.server.Server.doStart(Server.java:293) > at > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) > at > org.apache.spark.ui.JettyUtils$$anonfun$1.apply$mcV$sp(JettyUtils.scala:192) > at > org.apache.spark.ui.JettyUtils$$anonfun$1.apply(JettyUtils.scala:192) > at > org.apache.spark.ui.JettyUtils$$anonfun$1.apply(JettyUtils.scala:192) > at scala.util.Try$.apply(Try.scala:161) > at org.apache.spark.ui.JettyUtils$.connect$1(JettyUtils.scala:191) > at > org.apache.spark.ui.JettyUtils$.startJettyServer(JettyUtils.scala:205) > at org.apache.spark.ui.WebUI.bind(WebUI.scala:99) > at org.apache.spark.SparkContext.<init>(SparkContext.scala:217) > at > org.apache.spark.repl.SparkILoop.createSparkContext(SparkILoop.scala:957) > at $line3.$read$$iwC$$iwC.<init>(<console>:8) > at $line3.$read$$iwC.<init>(<console>:14) > at $line3.$read.<init>(<console>:16) > at $line3.$read$.<init>(<console>:20) > at $line3.$read$.<clinit>(<console>) > at $line3.$eval$.<init>(<console>:7) > at $line3.$eval$.<clinit>(<console>) > at $line3.$eval.$print(<console>) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:788) > at > org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1056) > at > org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:614) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:645) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:609) > at > org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:796) > at > org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:841) > at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:753) > at > org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:121) > at > org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:120) > at > org.apache.spark.repl.SparkIMain.beQuietDuring(SparkIMain.scala:263) > at > org.apache.spark.repl.SparkILoopInit$class.initializeSpark(SparkILoopInit.scala:120) > at > org.apache.spark.repl.SparkILoop.initializeSpark(SparkILoop.scala:56) > at > org.apache.spark.repl.SparkILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$5.apply$mcV$sp(SparkILoop.scala:913) > at > org.apache.spark.repl.SparkILoopInit$class.runThunks(SparkILoopInit.scala:142) > at org.apache.spark.repl.SparkILoop.runThunks(SparkILoop.scala:56) > at > org.apache.spark.repl.SparkILoopInit$class.postInitialization(SparkILoopInit.scala:104) > at > org.apache.spark.repl.SparkILoop.postInitialization(SparkILoop.scala:56) > at > org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply$mcZ$sp(SparkILoop.scala:930) > at > org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply(SparkILoop.scala:884) > at > org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply(SparkILoop.scala:884) > at > scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) > at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:884) > at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:983) > at org.apache.spark.repl.Main$.main(Main.scala:31) > at org.apache.spark.repl.Main.main(Main.scala) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:278) > at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:55) > at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)