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

Francois Saint-Jacques commented on KAFKA-1081:
-----------------------------------------------

Look, this is an ugly hack. The real problem here is not the directory 
permission or using a temp file but RERUNNING the first java command. 

I'm not even trying to build it, I'm trying to correctly package kafka on a 
production server. Whenever I run any command (bin/*) that doesn't return 
properly, it borks if kafka-run-class.sh is called within a directory where the 
user don't have write permission.

I understand that these lines are there to help new users who checkout the 
project and forget to build before running any command, but we're talking of 
deploying quality code in production.

> kafka-run-class.sh is broken
> ----------------------------
>
>                 Key: KAFKA-1081
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1081
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 0.8
>            Reporter: Francois Saint-Jacques
>
> Please apply this patch, this is why log4j exists. Rerunning at 
> non-deterministic command twice to catch error message is extremely dangerous.
> diff --git a/bin/kafka-run-class.sh b/bin/kafka-run-class.sh
> index eb6ff1b..2f2d8b5 100755
> --- a/bin/kafka-run-class.sh
> +++ b/bin/kafka-run-class.sh
> @@ -102,19 +102,3 @@ if [ "$1" = "daemon" ] && [ -z "$KAFKA_GC_LOG_OPTS"] ; 
> then
>  fi
>  $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS 
> $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
> -
> -exitval=$?
> -
> -if [ $exitval -eq "1" ] ; then
> -       $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS 
> $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@" >& 
> exception.txt
> -       exception=`cat exception.txt`
> -       noBuildMessage='Please build the project using sbt. Documentation is 
> available at http://kafka.apache.org/'
> -       pattern="(Could not find or load main 
> class)|(java\.lang\.NoClassDefFoundError)"
> -       match=`echo $exception | grep -E "$pattern"`
> -       if [[ -n "$match" ]]; then
> -               echo $noBuildMessage
> -       fi
> -       rm exception.txt
> -fi
> -
> -



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to