[mythtv-firehose] mythtv branch master updated by jyavenard. v0.28-pre-858-g2eb5091

Git Repo Owner noreply at mythtv.org
Wed Feb 19 09:52:22 UTC 2014


The branch, master has been updated on the
mythtv repository by gitolite user jyavenard.
       via  2eb5091b6b2058bf94cb11ef36b5972ef9a18fee (commit)
      from  2a026c45758a495fee0b4a4e7557901c6f701797 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 2eb5091b6b2058bf94cb11ef36b5972ef9a18fee
Author:    Jean-Yves Avenard <jyavenard at mythtv.org> at Wed, 19 Feb 2014 19:55:15 +1100
Committer: Jean-Yves Avenard <jyavenard at mythtv.org> at Wed, 19 Feb 2014 20:29:46 +1100
URL:       http://code.mythtv.org/cgit/mythtv/commit/?id=2eb5091b6b2058bf94cb11ef36b5972ef9a18fee

Fix fileringbuffer locking up on read()
>From time to time, most often seen during LiveTV, FileRingBuffer::safe_read() would lock and not return for a long time (on my system, it would block in excess of 20s).
Upon investigation, the issue occurs while reading a file currently being written to, if a call to read() encountered EOF, returned early and a following call to read() was made, before another write. Under those conditions, read() wouldn't return for a long time, causing the backend to abort the read and dropping the frontend connection.

So instead we now check the size of the current file via a call to POSIX fstat and never try to read beyond the EOF position.
If the file being read isn't a regular, or fstat returned an error, the old behaviour is used: read until we get as much data as we asked.

Surprisingly, this has fixed most of the issues I've been having for years with liveTV:
- Stuttering or temporary free when close to the live
- Freeze at program transition.

Add debugging information while in file mode

Fixes #12045



-----------------------------------------------------------------------

Summary of changes:
 mythtv/libs/libmythbase/threadedfilewriter.cpp |    6 +++
 mythtv/libs/libmythtv/fileringbuffer.cpp       |   41 +++++++++++++++++++++++-
 mythtv/libs/libmythtv/ringbuffer.cpp           |   25 +++++++++++++-
 3 files changed, 69 insertions(+), 3 deletions(-)

-- 



More information about the mythtv-firehose mailing list