[ 
https://issues.apache.org/jira/browse/KAFKA-1109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Viktor Kolodrevskiy updated KAFKA-1109:
---------------------------------------

    Description: 
kafka-run-class.sh contains GC log code:

# GC options
GC_FILE_SUFFIX='-gc.log'
GC_LOG_FILE_NAME=''
if [ "$1" = "daemon" ] && [ -z "$KAFKA_GC_LOG_OPTS"] ; then
  shift
  GC_LOG_FILE_NAME=$1$GC_FILE_SUFFIX
  shift
  KAFKA_GC_LOG_OPTS="-Xloggc:$LOG_DIR/$GC_LOG_FILE_NAME -verbose:gc 
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps "
fi

So when in my scripts I start kafka and want to override KAFKA_GC_LOG_OPTS by 
exporting new values I get:

Exception in thread "main" java.lang.NoClassDefFoundError: daemon
Caused by: java.lang.ClassNotFoundException: daemon

That's because shift is not done when KAFKA_GC_LOG_OPTS is set and "daemon" is 
passed as main class.

I suggest to replace it with this code:

# GC options
GC_FILE_SUFFIX='-gc.log'
GC_LOG_FILE_NAME=''
if [ "$1" = "daemon" ] && [ -z "$KAFKA_GC_LOG_OPTS" ] ; then
  shift
  GC_LOG_FILE_NAME=$1$GC_FILE_SUFFIX
  shift
  KAFKA_GC_LOG_OPTS="-Xloggc:$LOG_DIR/$GC_LOG_FILE_NAME -verbose:gc 
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps "
else
    if [ "$1" = "daemon" ] && [ "$KAFKA_GC_LOG_OPTS" != "" ] ; then
      shift 2
    fi
fi

  was:
kafka-run-class.sh contains GC log code:

# GC options
GC_FILE_SUFFIX='-gc.log'
GC_LOG_FILE_NAME=''
if [ "$1" = "daemon" ] && [ -z "$KAFKA_GC_LOG_OPTS"] ; then
  shift
  GC_LOG_FILE_NAME=$1$GC_FILE_SUFFIX
  shift
  KAFKA_GC_LOG_OPTS="-Xloggc:$LOG_DIR/$GC_LOG_FILE_NAME -verbose:gc 
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps "
fi

So when in my scripts I start kafka and want to override KAFKA_GC_LOG_OPTS by 
exporting new values I get:

Exception in thread "main" java.lang.NoClassDefFoundError: daemon
Caused by: java.lang.ClassNotFoundException: daemon

That's because shift is not done when KAFKA_GC_LOG_OPTS is set and "daemon" is 
passed as main class.

I suggest to replace it with this code:

# GC options
GC_FILE_SUFFIX='-gc.log'
GC_LOG_FILE_NAME=''
if [ "$1" = "daemon" ] && [ -z "$KAFKA_GC_LOG_OPTS" ] ; then
  shift
  GC_LOG_FILE_NAME=$1$GC_FILE_SUFFIX
  shift
  KAFKA_GC_LOG_OPTS="-Xloggc:$LOG_DIR/$GC_LOG_FILE_NAME -verbose:gc 
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps "
else
    # blackarrow fix for https://issues.apache.org/jira/browse/KAFKA-1109
    if [ "$1" = "daemon" ] && [ "$KAFKA_GC_LOG_OPTS" != "" ] ; then
      shift 2
    fi
fi


> Need to fix GC log configuration code, not able to override KAFKA_GC_LOG_OPTS
> -----------------------------------------------------------------------------
>
>                 Key: KAFKA-1109
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1109
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 0.8
>         Environment: *nix
>            Reporter: Viktor Kolodrevskiy
>
> kafka-run-class.sh contains GC log code:
> # GC options
> GC_FILE_SUFFIX='-gc.log'
> GC_LOG_FILE_NAME=''
> if [ "$1" = "daemon" ] && [ -z "$KAFKA_GC_LOG_OPTS"] ; then
>   shift
>   GC_LOG_FILE_NAME=$1$GC_FILE_SUFFIX
>   shift
>   KAFKA_GC_LOG_OPTS="-Xloggc:$LOG_DIR/$GC_LOG_FILE_NAME -verbose:gc 
> -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps "
> fi
> So when in my scripts I start kafka and want to override KAFKA_GC_LOG_OPTS by 
> exporting new values I get:
> Exception in thread "main" java.lang.NoClassDefFoundError: daemon
> Caused by: java.lang.ClassNotFoundException: daemon
> That's because shift is not done when KAFKA_GC_LOG_OPTS is set and "daemon" 
> is passed as main class.
> I suggest to replace it with this code:
> # GC options
> GC_FILE_SUFFIX='-gc.log'
> GC_LOG_FILE_NAME=''
> if [ "$1" = "daemon" ] && [ -z "$KAFKA_GC_LOG_OPTS" ] ; then
>   shift
>   GC_LOG_FILE_NAME=$1$GC_FILE_SUFFIX
>   shift
>   KAFKA_GC_LOG_OPTS="-Xloggc:$LOG_DIR/$GC_LOG_FILE_NAME -verbose:gc 
> -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps "
> else
>     if [ "$1" = "daemon" ] && [ "$KAFKA_GC_LOG_OPTS" != "" ] ; then
>       shift 2
>     fi
> fi



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

Reply via email to