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

Chinmay Kulkarni commented on HBASE-18762:
------------------------------------------

We can add simple type checks before type casting the provided sink, but this 
will still not really solve the problem, since we are allowed to provide 
inconsistent mode and sink types when running Canary. For example, we can 
specify no mode in the command-line arguments and specify a sink. In this case, 
what behavior should be expected? Should we ignore the mode in case it is not 
provided and just create a monitor of the same type as the sink or should we 
force the user to specify a mode?

Alternatively, if the user provides the '-zookeeper' option, but provides a 
sink of type RegionServerMonitor, what behavior should be expected? Should we 
override the mode? I think it does not make sense to ask the user to provide 
both the mode as well as the sink since there are many possibilities for such 
problems, but I'm also not sure why we have asked for both in the first case. 
Any ideas/suggestions are welcome.
[~apurtell]

> Canary sink type cast error
> ---------------------------
>
>                 Key: HBASE-18762
>                 URL: https://issues.apache.org/jira/browse/HBASE-18762
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Chinmay Kulkarni
>            Assignee: Chinmay Kulkarni
>
> When running the main method of Canary.java, we see the following error:
> Exception in thread "main" java.lang.ClassCastException: 
> org.apache.hadoop.hbase.tool.Canary$RegionServerStdOutSink cannot be cast to 
> org.apache.hadoop.hbase.tool.Canary$RegionStdOutSink
>       at org.apache.hadoop.hbase.tool.Canary.newMonitor(Canary.java:911)
>       at org.apache.hadoop.hbase.tool.Canary.run(Canary.java:796)
>       at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>       at org.apache.hadoop.hbase.tool.Canary.main(Canary.java:1571)
> This happens because we typecast the sink depending on the mode (zookeeper 
> mode/region server mode) that Canary is configured in. In case no mode is 
> specified, we typecast the sink into _RegionStdOutSink_. In general, it is 
> possible to provide inconsistent mode and sink types while running Canary. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to