[
https://issues.apache.org/jira/browse/KAFKA-1501?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14275695#comment-14275695
]
Guozhang Wang commented on KAFKA-1501:
--------------------------------------
In current choosePort we are already doing the same pattern, i.e. choose a
random port and tries to open a socket for it, and close the socket before
returning the ports.
{code}
val sockets =
for(i <- 0 until count)
yield {
val socket = new ServerSocket()
....
socket
}
val socketList = sockets.toList
val ports = socketList.map(_.getLocalPort)
socketList.map(_.close)
{code}
I have incorporated both Ewen and my patch together but there are still a few
in-use exceptions in a 100-run test.
> transient unit tests failures due to port already in use
> --------------------------------------------------------
>
> Key: KAFKA-1501
> URL: https://issues.apache.org/jira/browse/KAFKA-1501
> Project: Kafka
> Issue Type: Improvement
> Components: core
> Reporter: Jun Rao
> Assignee: Guozhang Wang
> Labels: newbie
> Attachments: KAFKA-1501-choosePorts.patch, KAFKA-1501.patch,
> KAFKA-1501.patch, KAFKA-1501.patch, test-100.out, test-100.out, test-27.out,
> test-29.out, test-32.out, test-35.out, test-38.out, test-4.out, test-42.out,
> test-45.out, test-46.out, test-51.out, test-55.out, test-58.out, test-59.out,
> test-60.out, test-69.out, test-72.out, test-74.out, test-76.out, test-84.out,
> test-87.out, test-91.out, test-92.out
>
>
> Saw the following transient failures.
> kafka.api.ProducerFailureHandlingTest > testTooLargeRecordWithAckOne FAILED
> kafka.common.KafkaException: Socket server failed to bind to
> localhost:59909: Address already in use.
> at kafka.network.Acceptor.openServerSocket(SocketServer.scala:195)
> at kafka.network.Acceptor.<init>(SocketServer.scala:141)
> at kafka.network.SocketServer.startup(SocketServer.scala:68)
> at kafka.server.KafkaServer.startup(KafkaServer.scala:95)
> at kafka.utils.TestUtils$.createServer(TestUtils.scala:123)
> at
> kafka.api.ProducerFailureHandlingTest.setUp(ProducerFailureHandlingTest.scala:68)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)