Fix: Remove redundant enabled checks in HLS/DASH cleanup to prevent resource leaks. v6.0.173 (#4161)
HLS and DASH components had redundant `enabled` flag checks in their `cycle()` and `cleanup_delay()` methods that prevented proper cleanup of files when components were disabled. This created a race condition where: 1. Stream stops publishing and HLS/DASH components get disabled 2. `cycle()` returns early without performing disposal operations 3. `cleanup_delay()` returns 0 instead of configured disposal timeout 4. Source cleanup doesn't wait long enough for file disposal 5. HLS/DASH files remain on disk without proper cleanup The `enabled` flag should control processing of **new incoming streams**, but should NOT prevent **cleanup of existing files** from previously enabled streams. Remove redundant `enabled` checks from: - `SrsHls::cycle()` and `SrsDash::cycle()` - Allow disposal logic to run even when disabled - `SrsHls::cleanup_delay()` and `SrsDash::cleanup_delay()` - Always return proper disposal timeout --------- Co-authored-by: winlin <winlinvip@gmail.com>
This commit is contained in:
parent
1a9b506c45
commit
ebc9821ac9
|
|
@ -7,6 +7,7 @@ The changelog for SRS.
|
|||
<a name="v6-changes"></a>
|
||||
|
||||
## SRS 6.0 Changelog
|
||||
* v6.0, 2025-08-14, Merge [#4161](https://github.com/ossrs/srs/pull/4161): fix hls & dash segments cleanup. v6.0.173 (#4161)
|
||||
* v6.0, 2025-08-12, Merge [#4230](https://github.com/ossrs/srs/pull/4230): MP4 DVR: Fix audio/video synchronization issues in WebRTC recordings. v6.0.172 (#4230)
|
||||
* v6.0, 2025-08-11, Merge [#4432](https://github.com/ossrs/srs/pull/4432): AI: HTTP-FLV: Fix heap-use-after-free crash during stream unmount. v6.0.171 (#4432)
|
||||
* v6.0, 2025-07-28, Merge [#4245](https://github.com/ossrs/srs/pull/4245): Allow Forward to be configured with Env Var. v6.0.170 (#4245)
|
||||
|
|
|
|||
|
|
@ -738,10 +738,6 @@ srs_error_t SrsDash::cycle()
|
|||
|
||||
srs_utime_t SrsDash::cleanup_delay()
|
||||
{
|
||||
if (!enabled) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// We use larger timeout to cleanup the HLS, after disposed it if required.
|
||||
return _srs_config->get_dash_dispose(req->vhost) * 1.1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1237,10 +1237,6 @@ srs_error_t SrsHls::cycle()
|
|||
{
|
||||
srs_error_t err = srs_success;
|
||||
|
||||
if (!enabled) {
|
||||
return err;
|
||||
}
|
||||
|
||||
if (last_update_time <= 0) {
|
||||
last_update_time = srs_get_system_time();
|
||||
}
|
||||
|
|
@ -1278,10 +1274,6 @@ srs_error_t SrsHls::cycle()
|
|||
|
||||
srs_utime_t SrsHls::cleanup_delay()
|
||||
{
|
||||
if (!enabled) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// We use larger timeout to cleanup the HLS, after disposed it if required.
|
||||
return _srs_config->get_hls_dispose(req->vhost) * 1.1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
#define VERSION_MAJOR 6
|
||||
#define VERSION_MINOR 0
|
||||
#define VERSION_REVISION 172
|
||||
#define VERSION_REVISION 173
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user