mirror of
https://github.com/Cacti/cacti.git
synced 2026-10-28 23:57:30 +09:00
* Serialize process registry admission with Symfony Lock Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * Fix PDO process lock mode handling Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * ci: run process lock coverage on PHP 8.2 Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * fix: confirm a pid is still ours before signalling it #7574 added the still-running guard to dsstats but left six byte-identical siblings signalling a pid straight out of the processes table. After a crash or a power loss the row survives, the pid is recycled by an unrelated daemon, and the next start SIGTERMs a stranger. That is issue #7425, still live in rrdcheck, boost, poller_commands, float_rrdfiles, poller_reindex_hosts and rebuild_poller_cache. Wrap each kill in cacti_process_still_running(), matching the dsstats shape, and leave unregister_process() outside the guard so a stale row is still cleaned up. Cover all seven with a test that walks every kill site, so a new variant cannot reintroduce it. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * test: assert the guard plainly toContain() takes needles rather than a failure message, so the file name was being asserted as a second required substring and the test always failed. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * docs(poller): describe required lock parameters --------- Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
17 lines
508 B
XML
17 lines
508 B
XML
<phpunit bootstrap="include/vendor/autoload.php" beStrictAboutOutputDuringTests="false">
|
|
<php>
|
|
<ini name="error_reporting" value="-1"/>
|
|
<env name="CACTI_TEST_BOOTSTRAP" value="1"/>
|
|
</php>
|
|
<source>
|
|
<include>
|
|
<file>lib/CactiProcessLock.php</file>
|
|
</include>
|
|
</source>
|
|
<testsuites>
|
|
<testsuite name="Process lock coverage">
|
|
<file>tests/Unit/Core/CactiProcessLockTest.php</file>
|
|
</testsuite>
|
|
</testsuites>
|
|
</phpunit>
|