Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BDE489323 for ; Thu, 18 Dec 2014 08:33:32 +0000 (UTC) Received: (qmail 49142 invoked by uid 500); 18 Dec 2014 08:33:22 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 49101 invoked by uid 500); 18 Dec 2014 08:33:22 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 49091 invoked by uid 99); 18 Dec 2014 08:33:22 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Dec 2014 08:33:22 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [88.198.227.105] (HELO team.enercast.de) (88.198.227.105) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Dec 2014 08:32:55 +0000 Received: from [172.17.2.175] (alpha.enercast.de [217.86.247.221]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by team.enercast.de (Postfix) with ESMTPSA id 18D9F2F20044 for ; Thu, 18 Dec 2014 08:32:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=enercast.de; s=mail; t=1418891574; bh=lNXaeTDzw+XUjWkHXOlCpI70iECAuBpn/kUhb3rP9pA=; h=Date:From:To:Subject:From; b=mW/z6MOReWF2uGf0+8oN3XwLwjhuPTHiXCkkWlvAgQph/+MdXLhCQCCC1yArDy91X jTa0oZWmVT4jjI6gLue1MguMftnENQMd08SsURIReX53feYtplcquLndzZ7OhU1/Oi D7Jblp4bQlCIL2h3ykUTs1rPBc2p3q+BLbu1Y1eQ= Message-ID: <54929133.6050900@enercast.de> Date: Thu, 18 Dec 2014 09:32:51 +0100 From: Jan Kesten User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: "user@cassandra.apache.org" Subject: sstablemetadata and sstablerepairedset not working with DSC on Debian Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Hi, while curious on the new incremental repairs I updated our cluster to C* version 2.1.2 via the Debian apt-repository. Everything went quite well, but trying to start the tools sstablemetadata and sstablerepairedset lead to the following error: root@a01:/home/ifjke# sstablerepairedset Error: Could not find or load main class org.apache.cassandra.tools.SSTableRepairedAtSetter root@a01:/home/ifjke# Looking at the scripts starting these tools I found that the java classpath is build via for jar in `dirname $0`/../../lib/*.jar; do CLASSPATH=$CLASSPATH:$jar done Because of the scripts beeing located in /usr/bin/ this leads to search for libs in /lib. Obviously there are no java or cassandra libraries there - nodetool instead uses a different way: if [ "x$CASSANDRA_INCLUDE" = "x" ]; then for include in "`dirname "$0"`/cassandra.in.sh" \ "$HOME/.cassandra.in.sh" \ /usr/share/cassandra/cassandra.in.sh \ /usr/local/share/cassandra/cassandra.in.sh \ /opt/cassandra/cassandra.in.sh; do if [ -r "$include" ]; then . "$include" break fi done elif [ -r "$CASSANDRA_INCLUDE" ]; then . "$CASSANDRA_INCLUDE" fi I created a simple patch which works for both sstablemetadata and sstablerepairedset for me, but maybe that's worth sharing it: ---SNIP--- --- sstablerepairedset 2014-11-11 15:50:02.000000000 +0000 +++ sstablerepairedset_new 2014-12-18 07:52:26.967368891 +0000 @@ -16,22 +16,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -if [ "x$CLASSPATH" = "x" ]; then - - # execute from the build dir. - if [ -d `dirname $0`/../../build/classes ]; then - for directory in `dirname $0`/../../build/classes/*; do - CLASSPATH=$CLASSPATH:$directory - done - else - if [ -f `dirname $0`/../lib/stress.jar ]; then - CLASSPATH=`dirname $0`/../lib/stress.jar +if [ "x$CASSANDRA_INCLUDE" = "x" ]; then + for include in "`dirname "$0"`/cassandra.in.sh" \ + "$HOME/.cassandra.in.sh" \ + /usr/share/cassandra/cassandra.in.sh \ + /usr/local/share/cassandra/cassandra.in.sh \ + /opt/cassandra/cassandra.in.sh; do + if [ -r "$include" ]; then + . "$include" + break fi - fi - - for jar in `dirname $0`/../../lib/*.jar; do - CLASSPATH=$CLASSPATH:$jar done +elif [ -r "$CASSANDRA_INCLUDE" ]; then + . "$CASSANDRA_INCLUDE" fi # Use JAVA_HOME if set, otherwise look for java in PATH ---SNIP--- Worked for me on both tools. Jan