Sergeant

Latest version: v0.26.1

Safety actively analyzes 630254 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 6

0.20.1

- Remove tests and cache from the source distribution
- Mypy fixes

0.20.0

<h1>Changelist</h1>

- We've been experiencing production issues for a while regarding stalled workers. After a rigorous investigation, we saw there were background threads that kept running. The issue with such threads is that sometimes they were non-daemonic threads, meaning that the Python's interpreter will not exit unless these threads will finish their execution. These threads were stuck in a deadlock and would have never been finished. We've added a background threads protection at the end of the Slave's execution. The protection consists of two phases. The first tries to stop the threads mildly by raising a SystemExit exception in the threads using an internal Python API, then joining the threads for 2 seconds waiting for the thread to finish. If there are unkillable threads left, and slave would kill itself with a SIGKILL resulting in a non-interruptable exit.
- Tests coverage has increased
- Slave logic has been refactored resulting in a clearer more debuggable version
- Supervisor code changes to reflect the Slave's logic change

0.19.0

- Fix stop logic to stop workers in progress while one of the slaves asked to stop
- Improved code coverage and added more tests
- Removed unnecessary exception catching to propagate exceptions while they happen
- Worker now has a logger once it gets created.

0.18.4

- Once one of the slaves asks to stop, all the others would not be respawned by the supervisor.

0.18.3

<h1>Changelist:</h1>

- added killer shutdown call on worker's exit to make sure the worker is able to shutdown properly, and if not, it will get killed by the killer
- replace printing a stacktrace when logstash is not responding with just a one line error message
- call init_logger before calling init_broker to allow logging the failure of initializing the broker

<h1>Breaking Changes:</h1>

- Replace emitter["filename"] with emitter["pathname"]. logstash handler now sends a different key name, pathname instead of filename.

0.18.2

- The supervisor now waits for all its children that became zombies. This behavior happens when the process killer kills its watched worker with SIGKILL which replaces its parent to the supervisor. The supervisor didn't know it before, so no one would call to wait on its pid. I added a zombie cleaning method to run on each supervising iteration to call `wait` for all the zombies.

Page 3 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.