Skip to content

Commit

Permalink
Avoid logging ES credentials from running Rally processes (#1863)
Browse files Browse the repository at this point in the history
---------

Co-authored-by: Grzegorz Banasiak <[email protected]>
  • Loading branch information
inqueue and gbanasiak authored Jul 1, 2024
1 parent 18e4a2c commit b904c17
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion esrally/utils/process.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,19 @@ def find_all_other_rally_processes() -> List[psutil.Process]:
return others


def redact_cmdline(cmdline: list) -> List[str]:
"""
Redact client options in cmdline as it contains sensitive information like passwords
"""

return ["=".join((value.split("=")[0], '"*****"')) if "--client-options" in value else value for value in cmdline]


def kill_all(predicate: Callable[[psutil.Process], bool]) -> None:
def kill(p: psutil.Process):
logging.getLogger(__name__).info("Killing lingering process with PID [%s] and command line [%s].", p.pid, p.cmdline())
logging.getLogger(__name__).info(
"Killing lingering process with PID [%s] and command line [%s].", p.pid, redact_cmdline(p.cmdline())
)
p.kill()
# wait until process has terminated, at most 3 seconds. Otherwise we might run into race conditions with actor system
# sockets that are still open.
Expand Down

0 comments on commit b904c17

Please sign in to comment.