[jira] [Commented] (KAFKA-1913) App hungs when calls producer.send to wrong IP of Kafka broker

2015-07-29 Thread Ewen Cheslack-Postava (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-1913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14646373#comment-14646373
 ] 

Ewen Cheslack-Postava commented on KAFKA-1913:
--

[~igor.quickblox] I think this is a difference in how localhost and 192.168.9.3 
are handling invalid connection requests. On localhost, the TCP connection is 
probably being immediately. However, the other system may be configured to 
simply ignore connection requests sent to ports that nothing is listening on. 
This means that the client just has to wait until the TCP connection timeout, 
which may be quite long.

I think KAFKA-2120 is going to fix this for you by adding a client-side 
timeout. This timeout should apply regardless of whether you're able to connect 
to the broker in your broker list.

 App hungs when calls producer.send to wrong IP of Kafka broker
 --

 Key: KAFKA-1913
 URL: https://issues.apache.org/jira/browse/KAFKA-1913
 Project: Kafka
  Issue Type: Bug
  Components: producer 
Affects Versions: 0.8.1.1
 Environment: OS X 10.10.1, Java 7, AWS Linux
Reporter: Igor Khomenko
Assignee: Jun Rao
 Fix For: 0.8.3


 I have next test code to check the Kafka functionality:
 {code}
 package com.company;
 import kafka.common.FailedToSendMessageException;
 import kafka.javaapi.producer.Producer;
 import kafka.producer.KeyedMessage;
 import kafka.producer.ProducerConfig;
 import java.util.Date;
 import java.util.Properties;
 public class Main {
 public static void main(String[] args) {
 Properties props = new Properties();
 props.put(metadata.broker.list, 192.168.9.3:9092);
 props.put(serializer.class, com.company.KafkaMessageSerializer);
 props.put(request.required.acks, 1);
 ProducerConfig config = new ProducerConfig(props);
 // The first is the type of the Partition key, the second the type of 
 the message.
 ProducerString, String messagesProducer = new ProducerString, 
 String(config);
 // Send
 String topicName = my_messages;
 String message = hello world;
 KeyedMessageString, String data = new KeyedMessageString, 
 String(topicName, message);
 try {
 System.out.println(new Date() + : sending...);
 messagesProducer.send(data);
 System.out.println(new Date() +  : sent);
 }catch (FailedToSendMessageException e){
 System.out.println(e:  + e);
 e.printStackTrace();
 }catch (Exception exc){
 System.out.println(e:  + exc);
 exc.printStackTrace();
 }
 }
 }
 {code}
 {code}
 package com.company;
 import kafka.serializer.Encoder;
 import kafka.utils.VerifiableProperties;
 /**
  * Created by igorkhomenko on 2/2/15.
  */
 public class KafkaMessageSerializer implements EncoderString {
 public KafkaMessageSerializer(VerifiableProperties verifiableProperties) {
 /* This constructor must be present for successful compile. */
 }
 @Override
 public byte[] toBytes(String entity) {
 byte [] serializedMessage = doCustomSerialization(entity);
 return serializedMessage;
 }
 private byte[] doCustomSerialization(String entity) {
 return entity.getBytes();
 }
 }
 {code}
 Here is also GitHub version https://github.com/soulfly/Kafka-java-producer
 So it just hungs on next line:
 {code}
 messagesProducer.send(data)
 {code}
 When I replaced the brokerlist to
 {code}
 props.put(metadata.broker.list, localhost:9092);
 {code}
 then I got an exception:
 {code}
 kafka.common.FailedToSendMessageException: Failed to send messages after 3 
 tries.
 {code}
 so it's okay
 Why it hungs with wrong brokerlist? Any ideas?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-1913) App hungs when calls producer.send to wrong IP of Kafka broker

2015-07-29 Thread Igor Khomenko (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-1913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14645918#comment-14645918
 ] 

Igor Khomenko commented on KAFKA-1913:
--

For now I have to use the following utils to check the url 

{code}
public static boolean isReachable(String hostname, int port, int timeout) {
if(hostname == null) {
return false;
} else {
if(log.isLoggable(Level.FINE)) {
log.log(Level.FINE, Checking host:  + hostname + , port:  + 
port + , timeout:  + timeout);
}

InetSocketAddress sockaddr = new InetSocketAddress(hostname, port);
Socket socket = new Socket();
boolean online = true;

try {
socket.connect(sockaddr, timeout);
if(log.isLoggable(Level.FINE)) {
log.log(Level.FINE, Host \' + hostname + \' is ON);
}
} catch (IOException var15) {
online = false;
if(log.isLoggable(Level.FINE)) {
log.log(Level.FINE, Host \' + hostname + \' is not 
reachable);
}
} finally {
try {
socket.close();
} catch (IOException var14) {
;
}

}

return online;
}
}
{code} 

 App hungs when calls producer.send to wrong IP of Kafka broker
 --

 Key: KAFKA-1913
 URL: https://issues.apache.org/jira/browse/KAFKA-1913
 Project: Kafka
  Issue Type: Bug
  Components: producer 
Affects Versions: 0.8.1.1
 Environment: OS X 10.10.1, Java 7, AWS Linux
Reporter: Igor Khomenko
Assignee: Jun Rao
 Fix For: 0.8.3


 I have next test code to check the Kafka functionality:
 {code}
 package com.company;
 import kafka.common.FailedToSendMessageException;
 import kafka.javaapi.producer.Producer;
 import kafka.producer.KeyedMessage;
 import kafka.producer.ProducerConfig;
 import java.util.Date;
 import java.util.Properties;
 public class Main {
 public static void main(String[] args) {
 Properties props = new Properties();
 props.put(metadata.broker.list, 192.168.9.3:9092);
 props.put(serializer.class, com.company.KafkaMessageSerializer);
 props.put(request.required.acks, 1);
 ProducerConfig config = new ProducerConfig(props);
 // The first is the type of the Partition key, the second the type of 
 the message.
 ProducerString, String messagesProducer = new ProducerString, 
 String(config);
 // Send
 String topicName = my_messages;
 String message = hello world;
 KeyedMessageString, String data = new KeyedMessageString, 
 String(topicName, message);
 try {
 System.out.println(new Date() + : sending...);
 messagesProducer.send(data);
 System.out.println(new Date() +  : sent);
 }catch (FailedToSendMessageException e){
 System.out.println(e:  + e);
 e.printStackTrace();
 }catch (Exception exc){
 System.out.println(e:  + exc);
 exc.printStackTrace();
 }
 }
 }
 {code}
 {code}
 package com.company;
 import kafka.serializer.Encoder;
 import kafka.utils.VerifiableProperties;
 /**
  * Created by igorkhomenko on 2/2/15.
  */
 public class KafkaMessageSerializer implements EncoderString {
 public KafkaMessageSerializer(VerifiableProperties verifiableProperties) {
 /* This constructor must be present for successful compile. */
 }
 @Override
 public byte[] toBytes(String entity) {
 byte [] serializedMessage = doCustomSerialization(entity);
 return serializedMessage;
 }
 private byte[] doCustomSerialization(String entity) {
 return entity.getBytes();
 }
 }
 {code}
 Here is also GitHub version https://github.com/soulfly/Kafka-java-producer
 So it just hungs on next line:
 {code}
 messagesProducer.send(data)
 {code}
 When I replaced the brokerlist to
 {code}
 props.put(metadata.broker.list, localhost:9092);
 {code}
 then I got an exception:
 {code}
 kafka.common.FailedToSendMessageException: Failed to send messages after 3 
 tries.
 {code}
 so it's okay
 Why it hungs with wrong brokerlist? Any ideas?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-1913) App hungs when calls producer.send to wrong IP of Kafka broker

2015-02-04 Thread Igor Khomenko (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-1913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14304798#comment-14304798
 ] 

Igor Khomenko commented on KAFKA-1913:
--

Any ideas so far? 

 App hungs when calls producer.send to wrong IP of Kafka broker
 --

 Key: KAFKA-1913
 URL: https://issues.apache.org/jira/browse/KAFKA-1913
 Project: Kafka
  Issue Type: Bug
  Components: producer 
Affects Versions: 0.8.1.1
 Environment: OS X 10.10.1, Java 7, AWS Linux
Reporter: Igor Khomenko
Assignee: Jun Rao
 Fix For: 0.8.1.2


 I have next test code to check the Kafka functionality:
 {code}
 package com.company;
 import kafka.common.FailedToSendMessageException;
 import kafka.javaapi.producer.Producer;
 import kafka.producer.KeyedMessage;
 import kafka.producer.ProducerConfig;
 import java.util.Date;
 import java.util.Properties;
 public class Main {
 public static void main(String[] args) {
 Properties props = new Properties();
 props.put(metadata.broker.list, 192.168.9.3:9092);
 props.put(serializer.class, com.company.KafkaMessageSerializer);
 props.put(request.required.acks, 1);
 ProducerConfig config = new ProducerConfig(props);
 // The first is the type of the Partition key, the second the type of 
 the message.
 ProducerString, String messagesProducer = new ProducerString, 
 String(config);
 // Send
 String topicName = my_messages;
 String message = hello world;
 KeyedMessageString, String data = new KeyedMessageString, 
 String(topicName, message);
 try {
 System.out.println(new Date() + : sending...);
 messagesProducer.send(data);
 System.out.println(new Date() +  : sent);
 }catch (FailedToSendMessageException e){
 System.out.println(e:  + e);
 e.printStackTrace();
 }catch (Exception exc){
 System.out.println(e:  + exc);
 exc.printStackTrace();
 }
 }
 }
 {code}
 {code}
 package com.company;
 import kafka.serializer.Encoder;
 import kafka.utils.VerifiableProperties;
 /**
  * Created by igorkhomenko on 2/2/15.
  */
 public class KafkaMessageSerializer implements EncoderString {
 public KafkaMessageSerializer(VerifiableProperties verifiableProperties) {
 /* This constructor must be present for successful compile. */
 }
 @Override
 public byte[] toBytes(String entity) {
 byte [] serializedMessage = doCustomSerialization(entity);
 return serializedMessage;
 }
 private byte[] doCustomSerialization(String entity) {
 return entity.getBytes();
 }
 }
 {code}
 Here is also GitHub version https://github.com/soulfly/Kafka-java-producer
 So it just hungs on next line:
 {code}
 messagesProducer.send(data)
 {code}
 When I replaced the brokerlist to
 {code}
 props.put(metadata.broker.list, localhost:9092);
 {code}
 then I got an exception:
 {code}
 kafka.common.FailedToSendMessageException: Failed to send messages after 3 
 tries.
 {code}
 so it's okay
 Why it hungs with wrong brokerlist? Any ideas?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)