fix: make rtmp2 cancel_all_commands re-entrancy safe - #87
Conversation
The rtmp2 patches close the connection from inside a command callback, which re-enters cancel_all_commands while it walks its lists: the callback runs twice and double-unrefs its GTask (SIGSEGV in g_object_unref on the rtmp2src task thread). Detach the lists before walking them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
There was a problem hiding this comment.
🟢 Approval recommended
The detached-list approach directly prevents nested cancellation from processing commands twice.
Pull request overview
Updates the downstream GStreamer RTMP2 patch to prevent duplicate callbacks and task double-unrefs during connection closure.
Changes:
- Detaches pending command lists before invoking callbacks.
- Documents the re-entrancy fix in patch metadata.
File summaries
| File | Description |
|---|---|
docker/build-gstreamer/patch/gstreamer/0004-rtmp2-rtmpclient-Close-the-connection-when-the-conne.patch |
Makes command cancellation re-entrancy safe. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The rtmp2 patches close the connection from inside a command callback, which re-enters cancel_all_commands while it walks its lists: the callback runs twice and double-unrefs its GTask (SIGSEGV in g_object_unref on the rtmp2src task thread). Detach the lists before walking them.