Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

recording-daemon logs LOG_ERR "Failed to open ... No such file or directory" when the metafile was already deleted (delete-delay = 0)

Open Beginner friendly
#2,218 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
75/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
c

Research direction

Read recording-daemon/metafile.c around line 378 and recording-daemon/inotify.c lines 52–55 to follow how close-write and delete events are handled. Reproduce or trace the case where the metafile is gone before metafile_change() opens it, then adjust the ENOENT handling as suggested. Done when the expected missing-file case is logged at debug level and normal deletion handling remains intact.

Written by the indexing model from the issue text.

Description

Version: mr26.2.1.2. Same code on master (recording-daemon/metafile.c:378, recording-daemon/inotify.c:52-55).

What happens

rtpengine writes the metafile with open-write-close for every update, and with delete-delay = 0 it deletes the metafile right after the last write when the call ends. The recording daemon watches the spool directory for IN_CLOSE_WRITE | IN_DELETE. By the time it handles the last IN_CLOSE_WRITE, the file is already gone, so metafile_change() logs, at LOG_ERR:

Failed to open <spool-dir>/<name>.meta: No such file or directory

It then handles the IN_DELETE that follows normally, and the recordings are complete. So nothing is lost, but the error-level noise is large: about 19,700 such lines between 17:00 and 23:00 one evening, which buried real errors.

A positive delete-delay avoids it (that is what we did), but delete-delay = 0 is a valid setting.

Suggestion

In metafile_change(), treat ENOENT as expected (the delete event is on its way) and log it at debug level.

Dominant language
Perl
Stars
992
Forks
459
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sipwise/rtpengine

All issues in sipwise/rtpengine

Similar issues

More Perl issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.