Opened 14 years ago

Last modified 14 years ago

#551 closed defect

blocking in ThreadedFileWriter — at Version 2

Reported by: anonymous Owned by: danielk
Priority: major Milestone: 0.19
Component: mythtv Version: head
Severity: medium Keywords: blocking scheduler
Cc: Ticket locked: no

Description (last modified by danielk)

SVN for the last week has had some major issues with blocking in file writing. In a test system that has not had any changes except SVN versions of Myth, we've seen blocking very frequently. The problem typically comes up when recording two HD shows or viewing one and recording another. This had worked fine, including recording 4 HD streams and viewing another using SVN from three weeks ago. When failures occured, we tried increasing the ring buffer size 4 times the default without any help. The system is not out of memory either. Doing a top shows the mythbackend running at 60%-100% CPU usage, which I've never seen before. The system load (via the w command or top) has shown the load between 6-14 at times, when nothing else except system processes were running. Stopping the backend returns the system back to a normal load. DMA has been checked on the drives, so it's not this (And since nothing changed since it worked fine.)

I think the system load jumping so high may be a sign of a threading problem for file writing?

We've disabled the eit-parser since this was what I've noticed the most experimental changes in lately but it had no effect.

The end result are video files with major corruption. Over a 5 minute span, only 2-5 second clips every 5-30 seconds are saved.

Change History (2)

comment:1 Changed 14 years ago by anonymous

Some Debug (-v record)

2005-11-01 08:44:46.322 IOBOUND - blocking in ThreadedFileWriter::Write() 2005-11-01 08:44:48.633 DVB#0 Rec: DVB Buffer overflow error detected on read 2005-11-01 08:44:48.637 DVB#0 Rec: WARNING - Got data from card after 500 ms. 2005-11-01 08:44:48.637 DVB#0 Rec: PID 49 _continuity_count 2 cc 8 2005-11-01 08:44:48.637 DVB#0 Rec: PID 52 _continuity_count 1 cc 14 2005-11-01 08:44:51.277 IOBOUND - blocking in ThreadedFileWriter::Write() 2005-11-01 08:44:58.168 DVB#0 Rec: DVB Buffer overflow error detected on read 2005-11-01 08:44:58.176 DVB#0 Rec: WARNING - Got data from card after 500 ms. 2005-11-01 08:44:58.176 DVB#0 Rec: PID 49 _continuity_count 5 cc 6 2005-11-01 08:44:58.177 DVB#0 Rec: PID 52 _continuity_count 5 cc 6 2005-11-01 08:45:00.609 IOBOUND - blocking in ThreadedFileWriter::Write() 2005-11-01 08:45:09.966 DVB#0 Rec: DVB Buffer overflow error detected on read 2005-11-01 08:45:09.971 DVB#0 Rec: WARNING - Got data from card after 500 ms. 2005-11-01 08:45:09.971 DVB#0 Rec: PID 49 _continuity_count 5 cc 4 2005-11-01 08:45:09.972 DVB#0 Rec: PID 52 _continuity_count 7 cc 13 2005-11-01 08:45:13.187 IOBOUND - blocking in ThreadedFileWriter::Write() 2005-11-01 08:45:19.970 DVB#0 Rec: DVB Buffer overflow error detected on read 2005-11-01 08:45:19.978 DVB#0 Rec: WARNING - Got data from card after 500 ms. 2005-11-01 08:45:19.978 DVB#0 Rec: PID 52 _continuity_count 13 cc 1

comment:2 Changed 14 years ago by danielk

Description: modified (diff)
Owner: changed from Isaac Richards to danielk
Status: newassigned

I couldn't reproduce this initially, but I can now..

I believe the only change was that I upgraded from Linux 2.6.12 to 2.6.13...

I'll take a look at this tomorrow.

Note: See TracTickets for help on using tickets.