From 5b0418793e054a37c42837fcc886817ed77234f6 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Tue, 17 Jul 2018 13:31:24 -0700 Subject: [PATCH] Keep Snap fullnode/drone logs out of syslog, we're too spammy --- ci/docker-snapcraft/Dockerfile | 2 +- ci/snap.sh | 6 ++++++ multinode-demo/common.sh | 8 ++++++++ multinode-demo/drone.sh | 7 ++++--- multinode-demo/leader.sh | 15 ++++----------- multinode-demo/validator.sh | 7 ++++--- snap/snapcraft.yaml | 3 ++- 7 files changed, 29 insertions(+), 19 deletions(-) diff --git a/ci/docker-snapcraft/Dockerfile b/ci/docker-snapcraft/Dockerfile index 65fac7b147..9f74ae9ab8 100644 --- a/ci/docker-snapcraft/Dockerfile +++ b/ci/docker-snapcraft/Dockerfile @@ -2,6 +2,6 @@ FROM snapcraft/xenial-amd64 # Update snapcraft to latest version RUN apt-get update -qq \ - && apt-get install -y snapcraft \ + && apt-get install -y snapcraft daemontools \ && rm -rf /var/lib/apt/lists/* \ && snapcraft --version diff --git a/ci/snap.sh b/ci/snap.sh index 0262fe9b29..d922bed483 100755 --- a/ci/snap.sh +++ b/ci/snap.sh @@ -37,6 +37,12 @@ fi set -x +echo --- checking for multilog +if [[ ! -x /usr/bin/multilog ]]; then + echo "multilog not found, install with: sudo apt-get install -y daemontools" + exit 1 +fi + echo --- build snapcraft diff --git a/multinode-demo/common.sh b/multinode-demo/common.sh index dfc2bf18ef..89206f9685 100644 --- a/multinode-demo/common.sh +++ b/multinode-demo/common.sh @@ -10,6 +10,10 @@ if [[ -z $here ]]; then fi rsync=rsync +leader_logger="cat" +validator_logger="cat" +drone_logger="cat" + if [[ -d "$SNAP" ]]; then # Running inside a Linux Snap? solana_program() { declare program="$1" @@ -22,6 +26,10 @@ if [[ -d "$SNAP" ]]; then # Running inside a Linux Snap? fi } rsync="$SNAP"/bin/rsync + leader_logger="$SNAP/bin/multilog t $SNAP_DATA/leader" + validator_logger="$SNAP/bin/multilog t $SNAP_DATA/validator" + drone_logger="$SNAP/bin/multilog t $SNAP_DATA/drone" + SOLANA_METRICS_CONFIG="$(snapctl get metrics-config)" SOLANA_CUDA="$(snapctl get enable-cuda)" RUST_LOG="$(snapctl get rust-log)" diff --git a/multinode-demo/drone.sh b/multinode-demo/drone.sh index e29ccd1f0d..2b603978d1 100755 --- a/multinode-demo/drone.sh +++ b/multinode-demo/drone.sh @@ -36,6 +36,7 @@ set -ex mkdir -p "$SOLANA_CONFIG_DIR" $rsync -vPz "$rsync_leader_url"/config/leader.json "$SOLANA_CONFIG_DIR"/ -# shellcheck disable=SC2086 # $solana_drone should not be quoted -exec $solana_drone \ - -l "$SOLANA_CONFIG_DIR"/leader.json -k "$SOLANA_CONFIG_PRIVATE_DIR"/mint.json +set -o pipefail +$solana_drone \ + -l "$SOLANA_CONFIG_DIR"/leader.json -k "$SOLANA_CONFIG_PRIVATE_DIR"/mint.json \ +2>&1 | $drone_logger diff --git a/multinode-demo/leader.sh b/multinode-demo/leader.sh index 68f06784ea..073671ca2a 100755 --- a/multinode-demo/leader.sh +++ b/multinode-demo/leader.sh @@ -25,15 +25,8 @@ fi tune_networking -# migrate from old ledger format? why not... -if [[ ! -f "$SOLANA_CONFIG_DIR"/ledger.log && - -f "$SOLANA_CONFIG_DIR"/genesis.log ]]; then - (shopt -s nullglob && - cat "$SOLANA_CONFIG_DIR"/genesis.log \ - "$SOLANA_CONFIG_DIR"/tx-*.log) > "$SOLANA_CONFIG_DIR"/ledger.log -fi - -# shellcheck disable=SC2086 # $program should not be quoted -exec $program \ +set -xo pipefail +$program \ --identity "$SOLANA_CONFIG_DIR"/leader.json \ - --ledger "$SOLANA_CONFIG_DIR"/ledger.log + --ledger "$SOLANA_CONFIG_DIR"/ledger.log \ +2>&1 | $leader_logger diff --git a/multinode-demo/validator.sh b/multinode-demo/validator.sh index 3ac8baf32d..274a53b807 100755 --- a/multinode-demo/validator.sh +++ b/multinode-demo/validator.sh @@ -88,8 +88,9 @@ while ! $solana_wallet \ sleep 1 done -# shellcheck disable=SC2086 # $program should not be quoted -exec $program \ +set -o pipefail +$program \ --identity "$SOLANA_CONFIG_DIR"/validator.json \ --testnet "$leader_address:$leader_port" \ - --ledger "$SOLANA_LEADER_CONFIG_DIR"/ledger.log + --ledger "$SOLANA_LEADER_CONFIG_DIR"/ledger.log \ +2>&1 | $validator_logger diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 19710c3184..774beb936e 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -110,8 +110,9 @@ parts: mkdir -p $SNAPCRAFT_PART_INSTALL/bin cp -av multinode-demo/* $SNAPCRAFT_PART_INSTALL/bin/ - # TODO: build rsync from source instead of sneaking it in from the host + # TODO: build rsync/multilog from source instead of sneaking it in from the host # system... set -x mkdir -p $SNAPCRAFT_PART_INSTALL/bin cp -av /usr/bin/rsync $SNAPCRAFT_PART_INSTALL/bin/ + cp -av /usr/bin/multilog $SNAPCRAFT_PART_INSTALL/bin/