You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by is...@apache.org on 2023/09/29 17:27:56 UTC
[solr] 02/03: SOLR-16644: Updating the check based on ratio
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git
commit df3ff50085b18af3007e0c6e858bd244fd2ee480
Author: Raghavan Muthuregunathan <ra...@gmail.com>
AuthorDate: Wed Sep 27 00:15:04 2023 -0700
SOLR-16644: Updating the check based on ratio
---
solr/bin/solr | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/solr/bin/solr b/solr/bin/solr
index 9f2c858ac79..d0d54eae3bf 100644
--- a/solr/bin/solr
+++ b/solr/bin/solr
@@ -1915,27 +1915,30 @@ function start_solr() {
-jar start.jar "${SOLR_JETTY_CONFIG[@]}" $SOLR_JETTY_ADDL_CONFIG \
1>"$SOLR_LOGS_DIR/solr-$SOLR_PORT-console.log" 2>&1 & echo $! > "$SOLR_PID_DIR/solr-$SOLR_PORT.pid"
- entropy_threshold=300
- # Determine if the operating system is Ubuntu
- os_name=$(lsb_release -is)
- if [[ "$os_name" == "Ubuntu" ]]; then
- # Get the kernel version
- kernel_version=$(uname -r | awk -F. '{print $1"."$2}')
- # Set entropy threshold based on kernel version
- if [[ $(echo "$kernel_version >= 5.15" | bc) -eq 1 ]]; then
- # For kernels 5.15 and newer
- entropy_threshold=64 # Adjusted for 256 pool size (approx 25% of 256)
- else
- # For older kernels
- entropy_threshold=300 # Original threshold for 4096 pool size
- fi
- fi
+ #!/bin/bash
+
+# Get the current entropy available
+entropy_avail=$(cat /proc/sys/kernel/random/entropy_avail)
+
+# Get the pool size
+pool_size=$(cat /proc/sys/kernel/random/poolsize)
- # Check entropy and display warning if below threshold
- if [[ -f /proc/sys/kernel/random/entropy_avail ]] && (( $(cat /proc/sys/kernel/random/entropy_avail) < $entropy_threshold)); then
+# Check if entropy is available and pool size is non-zero
+if [[ $entropy_avail -gt 0 && $pool_size -ne 0 ]]; then
+ # Compute the ratio of entropy available to pool size
+ ratio=$(awk -v ea="$entropy_avail" -v ps="$pool_size" 'BEGIN {print (ea/ps)*100}')
+
+ # Check if the ratio is less than 25%
+ if (( $(echo "$ratio < 25" | bc -l) )); then
echo "Warning: Available entropy is low. As a result, use of the UUIDField, SSL, or any other features that require"
echo "RNG might not work properly. To check for the amount of available entropy, use 'cat /proc/sys/kernel/random/entropy_avail'."
fi
+else
+ echo "Error: Either no entropy is available or the pool size is zero."
+fi
+
+
+
# no lsof on cygwin though
if lsof -v 2>&1 | grep -q revision; then