You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by "Gustavo Anatoly (JIRA)" <ji...@apache.org> on 2015/05/09 04:40:59 UTC

[jira] [Commented] (SAMZA-643) Improve error message for null stream in OutgoingMessageEnvelope

    [ https://issues.apache.org/jira/browse/SAMZA-643?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14536140#comment-14536140 ] 

Gustavo Anatoly commented on SAMZA-643:
---------------------------------------

In this case rather than just improve error message when topic is null, we could check if topic is null and generate with UUID or use other method to set a new stream name. Thus we could avoid break down the stream flow and NPE exceptions.

Suggestions?

> Improve error message for null stream in OutgoingMessageEnvelope
> ----------------------------------------------------------------
>
>                 Key: SAMZA-643
>                 URL: https://issues.apache.org/jira/browse/SAMZA-643
>             Project: Samza
>          Issue Type: Improvement
>          Components: kafka
>    Affects Versions: 0.9.0
>            Reporter: Roger Hoover
>            Priority: Minor
>              Labels: newbie
>             Fix For: 0.10.0
>
>
> If you accidentally pass null as the stream name in an OutgoingMessageEnvelope, you get an NPE in the producer IO thread for Kafka.  The Kafka producer shouldn't really throw NPE for this (https://issues.apache.org/jira/browse/KAFKA-2105) but Samza should probably throw a more friendly error sooner.
> Uncaught error in kafka producer I/O thread: 
> java.lang.NullPointerException
> 	at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:174)
> 	at org.apache.kafka.common.protocol.types.Type$5.sizeOf(Type.java:176)
> 	at org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:55)
> 	at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:81)
> 	at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:218)
> 	at org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35)
> 	at org.apache.kafka.common.requests.RequestSend.<init>(RequestSend.java:29)
> 	at org.apache.kafka.clients.NetworkClient.metadataRequest(NetworkClient.java:369)
> 	at org.apache.kafka.clients.NetworkClient.maybeUpdateMetadata(NetworkClient.java:391)
> 	at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:188)
> 	at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191)
> 	at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122)
> 	at java.lang.Thread.run(Thread.java:745)



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