Opened 14 years ago

Closed 14 years ago

#793 closed defect (fixed)

mythbackend segfault at end of every recording (DVB)

Reported by: jppoet@… Owned by: danielk
Priority: critical Milestone: unknown
Component: mythtv Version: head
Severity: high Keywords:
Cc: Ticket locked: no

Description (last modified by danielk)

I will attach a backtrace.

Attachments (3)

8233.backtrace (19.3 KB) - added by jppoet@… 14 years ago.
Backtrace from 8233
8233.2.backtrace (39.4 KB) - added by jppoet@… 14 years ago.
svn 8233 backtrace
mythbackend-8233.segfault.patch (734 bytes) - added by jppoet@… 14 years ago.
Bandaid to prevent mythbackend from a segfault

Download all attachments as: .zip

Change History (7)

Changed 14 years ago by jppoet@…

Attachment: 8233.backtrace added

Backtrace from 8233

Changed 14 years ago by jppoet@…

Attachment: 8233.2.backtrace added

svn 8233 backtrace

comment:1 Changed 14 years ago by jppoet@…

In

void DTVRecorder::BufferedWrite?(const TSPacket &tspacket)

a call is made to

ringBuffer->Write(tspacket.data(), TSPacket::SIZE);

At the end of a recording, but ringBuffer == NULL.

Changing

ringBuffer->Write(tspacket.data(), TSPacket::SIZE);

To

if (ringBuffer)

ringBuffer->Write(tspacket.data(), TSPacket::SIZE);

will probably fix the segfault, but does this indicate a more serious problem?

thanks,

John

Changed 14 years ago by jppoet@…

Bandaid to prevent mythbackend from a segfault

comment:2 Changed 14 years ago by anonymous

Owner: changed from Isaac Richards to danielk
Version: head

comment:3 Changed 14 years ago by danielk

(In [8235]) References #793.

This prevents the segfault by applying John Poet's patch. I'll look at why the write is being called at this point before closing the ticket.

comment:4 Changed 14 years ago by danielk

Description: modified (diff)
Resolution: fixed
Status: newclosed

I'm closing this, I believe the underlying cause is fixed in [8237]. The DVBRecorder's ringbuffer was being set to NULL before the TeardownRecorder?() call, now it should always be called after any TeardownRecorder?() call.

Note: See TracTickets for help on using tickets.