From cea8067219f2c5f0e49d4068f120af281ec8cbdd Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Fri, 6 Mar 2020 17:03:10 -0700 Subject: [PATCH] Disable setLogFilter RPC API by default (#8693) automerge --- core/src/rpc.rs | 16 +++++++++++++--- multinode-demo/bootstrap-validator.sh | 1 + multinode-demo/validator.sh | 2 ++ net/remote/remote-node.sh | 1 - validator/src/main.rs | 7 +++++++ 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/core/src/rpc.rs b/core/src/rpc.rs index b4d4d8c94..5a21aaa50 100644 --- a/core/src/rpc.rs +++ b/core/src/rpc.rs @@ -50,6 +50,7 @@ fn new_response(bank: &Bank, value: T) -> RpcResponse { #[derive(Debug, Default, Clone)] pub struct JsonRpcConfig { pub enable_validator_exit: bool, + pub enable_set_log_filter: bool, pub enable_get_confirmed_block: bool, pub identity_pubkey: Pubkey, pub faucet_addr: Option, @@ -339,6 +340,13 @@ impl JsonRpcRequestProcessor { Ok(pubkeys) } + pub fn set_log_filter(&self, filter: String) -> Result<()> { + if self.config.enable_set_log_filter { + solana_logger::setup_with(&filter); + } + Ok(()) + } + pub fn validator_exit(&self) -> Result { if self.config.enable_validator_exit { warn!("validator_exit request..."); @@ -1133,9 +1141,11 @@ impl RpcSol for RpcSolImpl { }) } - fn set_log_filter(&self, _meta: Self::Metadata, filter: String) -> Result<()> { - solana_logger::setup_with(&filter); - Ok(()) + fn set_log_filter(&self, meta: Self::Metadata, filter: String) -> Result<()> { + meta.request_processor + .read() + .unwrap() + .set_log_filter(filter) } fn get_confirmed_block( diff --git a/multinode-demo/bootstrap-validator.sh b/multinode-demo/bootstrap-validator.sh index fe085fc66..f0ebddf5c 100755 --- a/multinode-demo/bootstrap-validator.sh +++ b/multinode-demo/bootstrap-validator.sh @@ -77,6 +77,7 @@ ledger_dir="$SOLANA_CONFIG_DIR"/bootstrap-validator args+=( --enable-rpc-exit + --enable-rpc-set-log-filter --ledger "$ledger_dir" --rpc-port 8899 --snapshot-interval-slots 100 diff --git a/multinode-demo/validator.sh b/multinode-demo/validator.sh index e05f97538..e03eb6903 100755 --- a/multinode-demo/validator.sh +++ b/multinode-demo/validator.sh @@ -219,6 +219,8 @@ default_arg --voting-keypair "$voting_keypair_path" default_arg --storage-keypair "$storage_keypair_path" default_arg --ledger "$ledger_dir" default_arg --log - +default_arg --enable-rpc-exit +default_arg --enable-rpc-set-log-filter if [[ -n $SOLANA_CUDA ]]; then program=$solana_validator_cuda diff --git a/net/remote/remote-node.sh b/net/remote/remote-node.sh index d5d6bc18e..62c3c6db8 100755 --- a/net/remote/remote-node.sh +++ b/net/remote/remote-node.sh @@ -293,7 +293,6 @@ EOF --enable-rpc-get-confirmed-block ) else - args+=(--enable-rpc-exit) if [[ -n $internalNodesLamports ]]; then args+=(--node-lamports "$internalNodesLamports") fi diff --git a/validator/src/main.rs b/validator/src/main.rs index 92bd4bbef..bfc9c37e5 100644 --- a/validator/src/main.rs +++ b/validator/src/main.rs @@ -688,6 +688,12 @@ pub fn main() { .takes_value(false) .help("Enable the JSON RPC 'validatorExit' API. Only enable in a debug environment"), ) + .arg( + Arg::with_name("enable_rpc_set_log_filter") + .long("enable-rpc-set-log-filter") + .takes_value(false) + .help("Enable the JSON RPC 'setLogFilter' API. Only enable in a debug environment"), + ) .arg( Arg::with_name("enable_rpc_get_confirmed_block") .long("enable-rpc-get-confirmed-block") @@ -919,6 +925,7 @@ pub fn main() { new_hard_forks: hardforks_of(&matches, "hard_forks"), rpc_config: JsonRpcConfig { enable_validator_exit: matches.is_present("enable_rpc_exit"), + enable_set_log_filter: matches.is_present("enable_rpc_set_log_filter"), enable_get_confirmed_block: matches.is_present("enable_rpc_get_confirmed_block"), identity_pubkey: identity_keypair.pubkey(), faucet_addr: matches.value_of("rpc_faucet_addr").map(|address| {