[mythtv] Re: mythbackend crashes with segmentation fault after the specific sequences of events.

Mudit Wahal mwahal at gmail.com
Thu Jun 16 21:45:53 UTC 2005


Forgot to put *this and *e values in prev. email. Hope it helps.

#0  0x00000000 in ?? ()
#1  0xb6e769e4 in QMutex::lock () from /usr/lib/libqt-mt.so.3
#2  0x080757a7 in MainServer::customEvent (this=0x810ea38, e=0x813a5d8)
    at server.h:22

(gdb) f 2
#2  0x080757a7 in MainServer::customEvent (this=0x810ea38, e=0x813a5d8)
    at server.h:22
22          void Lock() { lock.lock(); }
(gdb) p /x *this
$8 = {
  <> = {<No data fields>}, 
  members of MainServer: 
  static metaObj = 0x810f740, 
  encoderList = 0x80dbec8, 
  mythserver = 0x810f5d8, 
  playbackList = {
    <std::_Vector_base<PlaybackSock*, std::allocator<PlaybackSock*> >> = {
      <std::_Vector_alloc_base<PlaybackSock*,
std::allocator<PlaybackSock*>, true>> = {
        _M_start = 0x80f7290, 
        _M_finish = 0x80f72a0, 
        _M_end_of_storage = 0x80f72a0
      }, <No data fields>}, <No data fields>}, 
  ringBufList = {
    <std::_Vector_base<QSocket*, std::allocator<QSocket*> >> = {
      <std::_Vector_alloc_base<QSocket*, std::allocator<QSocket*>, true>> = {
        _M_start = 0x80f69c0, 
        _M_finish = 0x80f69c8, 
        _M_end_of_storage = 0x80f69c8
      }, <No data fields>}, <No data fields>}, 
  fileTransferList = {
    <std::_Vector_base<FileTransfer*, std::allocator<FileTransfer*> >> = {
      <std::_Vector_alloc_base<FileTransfer*,
std::allocator<FileTransfer*>, true>> = {
        _M_start = 0x0, 
        _M_finish = 0x0, 
        _M_end_of_storage = 0x0
      }, <No data fields>}, <No data fields>}, 
  recordfileprefix = {
    static null = {
      static null = <same as static member of an already seen type>, 
      d = 0x80de070, 
      static shared_null = 0x80de070
    }, 
    d = 0x810f8a0, 
    static shared_null = 0x80de070
  }, 
  statusserver = 0x8112c70, 
  masterServerReconnect = 0x67006e, 
  masterServer = 0x0, 
  ismaster = 0x1, 
  deletelock = <incomplete type>, 
  threadPoolLock = <incomplete type>, 
  threadPool = {
    <std::_Vector_base<ProcessRequestThread*,
std::allocator<ProcessRequestThread*> >> = {
      <std::_Vector_alloc_base<ProcessRequestThread*,
std::allocator<ProcessRequestThread*>, true>> = {
        _M_start = 0x80dff08, 
        _M_finish = 0x80dff18, 
        _M_end_of_storage = 0x80dff28
      }, <No data fields>}, <No data fields>}, 
  masterBackendOverride = 0x1, 
  m_sched = 0x80fdf88, 
  readReadyLock = <incomplete type>
---Type <return> to continue, or q <return> to quit---
}

(gdb) p /x *e
$9 = {
  <> = {<No data fields>}, 
  members of QCustomEvent: 
  d = 0x32000001
}
(gdb) 


On 6/16/05, Mudit Wahal <mwahal at gmail.com> wrote:
> Hi all,
> 
> I'm trying to write some scripts which can change the mode to the
> Watch Live TV and change channels up and down. When I run my script
> first time, every thing is fine. But when I run it second time, the
> mythbackend crashes when I send QUERY_RECORDER 1[]:[]STOP_LIVETV.
> 
> My system is Semprom 3000+, HD3000 card. Knoppix Myth R5A15.1 release.
> 
> I was running 0.18 release image.
> 
> Then I build 0.18.1 released image (not cvs version) so I can run gdb.
> I started mythbackend 0.18.1 from gdb and here is what I see in the stack trace.
> 
> [New Thread -1349403728 (LWP 7206)]
> [Thread -1349403728 (LWP 7206) exited]
> [Thread -1341015120 (LWP 7205) exited]
> [New Thread -1341015120 (LWP 7209)]
> [New Thread -1349403728 (LWP 7210)]
> 
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1236113824 (LWP 7183)]
> 0x00000000 in ?? ()
> (gdb) where
> #0  0x00000000 in ?? ()
> #1  0xb6e769e4 in QMutex::lock () from /usr/lib/libqt-mt.so.3
> #2  0x080757a7 in MainServer::customEvent (this=0x810ea38, e=0x813a5d8)
>     at server.h:22
> #3  0xb6bd8dbc in QObject::event () from /usr/lib/libqt-mt.so.3
> #4  0xb6b7ebff in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
> #5  0xb6b7e1fe in QApplication::notify () from /usr/lib/libqt-mt.so.3
> #6  0xb6b7f9f6 in QApplication::sendPostedEvents () from /usr/lib/libqt-mt.so.3
> #7  0xb6b7f876 in QApplication::sendPostedEvents () from /usr/lib/libqt-mt.so.3
> #8  0xb6b2789a in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
> #9  0xb6b90f58 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
> #10 0xb6b90e08 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
> #11 0xb6b7ee51 in QApplication::exec () from /usr/lib/libqt-mt.so.3
> #12 0x0806a159 in main (argc=1, argv=0x8114420) at main.cpp:587
> 
> ========
> Here is my debug output from the script.
> 
> ========= first iteration =============
> +++ connect
> REQUEST->req: 'MYTH_PROTO_VERSION 15'
> REPLY LEN: 13
> REPLY: 'ACCEPT[]:[]15'
> REQUEST->req: 'ANN Playback mythtvbe 0'
> REPLY LEN: 2
> REPLY: 'OK'
> +++ TL : recorder_get_free_recorder
> REQUEST->req: 'GET_NEXT_FREE_RECORDER[]:[]-1'
> REPLY LEN: 28
> REPLY: '1[]:[]192.168.123.3[]:[]6543'
> REQUEST->req: 'MYTH_PROTO_VERSION 15'
> REPLY LEN: 13
> REPLY: 'ACCEPT[]:[]15'
> REQUEST->req: 'ANN Playback mythtvbe 0'
> REPLY LEN: 2
> REPLY: 'OK'
> REQUEST->req: 'QUERY_RECORDER 1[]:[]SETUP_RING_BUFFER[]:[]0'
> REPLY LEN: 92
> REPLY: 'rbuf://192.168.123.3:6543/cache/cache/ringbuf1.nuv[]:[]2[]:[]-1073741824[]:[]0[]:[]104857600'
> +++ TL : recorder_start_stream
> REQUEST->req: 'ANN Playback mythtvbe 0'
> REPLY LEN: 2
> REPLY: 'OK'
> REQUEST->req: 'ANN RingBuffer mythtvbe 1'
> REPLY LEN: 2
> REPLY: 'OK'
> REQUEST->req: 'QUERY_RECORDER 1[]:[]SPAWN_LIVETV'
> REPLY LEN: 2
> REPLY: 'ok'
> +++ TL : recorder_get_program_info
> REQUEST->req: 'QUERY_RECORDER 1[]:[]GET_PROGRAM_INFO'
> REPLY LEN: 436
> REPLY: General Hospital[]:[] []:[]Evan threatens to expose Reese's
> lies to Sonny; Sonny takes Reese to his house for her safety; Carly
> confronts Reese; Courtney receives discouraging news from Dr. Meadows;
> Elizabeth makes an offer to Jax; Courtney and Jax get a surprising
> offer of help.[]:[]Soap[]:[]2005-06-16T14:00:00[]:[]2005-06-16T15:00:00[]:[]KGODT[]:[]none[]:[]7_1[]:[]1034[]:[]SH001807[]:[]EP0018070648[]:[]
> []:[]0[]:[]2005-06-16[]:[]0
> Channel 7_1: General Hospital -- Evan threatens to expose Reese's lies
> to Sonny; Sonny takes Reese to his house for her safety; Carly
> confronts Reese; Courtney receives discouraging news from Dr. Meadows;
> Elizabeth makes an offer to Jax; Courtney and Jax get a surprising
> offer of help.
> ++++ recorder_pause
> REQUEST->req: 'QUERY_RECORDER 1[]:[]PAUSE'
> REPLY LEN: 2
> REPLY: ok
> +++++ recorder_change_channel CHANNEL_DIRECTION_UP
> REQUEST->req: 'QUERY_RECORDER 1[]:[]CHANGE_CHANNEL[]:[]0'
> REPLY LEN: 2
> REPLY: ok
> ++++ recorder_get_program_info
> REQUEST->req: 'QUERY_RECORDER 1[]:[]GET_PROGRAM_INFO'
> REPLY LEN: 301
> REPLY: NYPD 24/7[]:[] []:[]Members of the NYPD, including a beat cop,
> a rescue squad, detectives and the police commissioner; narrator
> Dennis Franz.[]:[]Reality[]:[]2005-06-16T14:00:00[]:[]2005-06-16T15:00:00[]:[]KGODT2[]:[]none[]:[]7_2[]:[]1041[]:[]SH658051[]:[]SH6580510000[]:[]
> []:[]1[]:[]2004-06-22[]:[]0
> ++++ recorder_pause
> REQUEST->req: 'QUERY_RECORDER 1[]:[]PAUSE'
> REPLY LEN: 2
> REPLY: ok
> +++++ recorder_set_channel 5_1
> REQUEST->req: 'QUERY_RECORDER 1[]:[]SET_CHANNEL[]:[]5_1'
> REPLY LEN: 2
> REPLY: ok
> ++++ recorder_get_program_info
> REQUEST->req: 'QUERY_RECORDER 1[]:[]GET_PROGRAM_INFO'
> REPLY LEN: 249
> REPLY: Guiding Light[]:[] []:[]Trials and tribulations of the Bauer,
> Lewis and Spaulding
> families.[]:[]Soap[]:[]2005-06-16T14:00:00[]:[]2005-06-16T15:00:00[]:[]KPIX
> DT[]:[]none[]:[]5_1[]:[]1032[]:[]SH001966[]:[]SH0019660000[]:[]
> []:[]1[]:[]2000-01-01[]:[]0
> +++ TL : recorder_end_stream
> REQUEST->req: 'QUERY_RECORDER 1[]:[]STOP_LIVETV'
> REPLY LEN: 2
> REPLY: 'ok'
> REQUEST->req: 'QUERY_RECORDER 1[]:[]DONE_RINGBUF'
> REPLY LEN: 2
> REPLY: 'OK'
> REQUEST->req: 'QUERY_IS_ACTIVE_BACKEND[]:[]mythtvbe'
> REPLY LEN: 4
> REPLY: 'TRUE'
> 
> ========== second iteration ==========
> 
> +++ connect
> REQUEST->req: 'MYTH_PROTO_VERSION 15'
> REPLY LEN: 13
> REPLY: 'ACCEPT[]:[]15'
> REQUEST->req: 'ANN Playback mythtvbe 0'
> REPLY LEN: 2
> REPLY: 'OK'
> +++ TL : recorder_get_free_recorder
> REQUEST->req: 'GET_NEXT_FREE_RECORDER[]:[]-1'
> REPLY LEN: 28
> REPLY: '1[]:[]192.168.123.3[]:[]6543'
> REQUEST->req: 'MYTH_PROTO_VERSION 15'
> REPLY LEN: 13
> REPLY: 'ACCEPT[]:[]15'
> REQUEST->req: 'ANN Playback mythtvbe 0'
> REPLY LEN: 2
> REPLY: 'OK'
> REQUEST->req: 'QUERY_RECORDER 1[]:[]SETUP_RING_BUFFER[]:[]0'
> REPLY LEN: 92
> REPLY: 'rbuf://192.168.123.3:6543/cache/cache/ringbuf1.nuv[]:[]2[]:[]-1073741824[]:[]0[]:[]104857600'
> +++ TL : recorder_start_stream
> REQUEST->req: 'ANN Playback mythtvbe 0'
> REPLY LEN: 2
> REPLY: 'OK'
> REQUEST->req: 'ANN RingBuffer mythtvbe 1'
> REPLY LEN: 2
> REPLY: 'OK'
> REQUEST->req: 'QUERY_RECORDER 1[]:[]SPAWN_LIVETV'
> REPLY LEN: 2
> REPLY: 'ok'
> +++ TL : recorder_get_program_info
> REQUEST->req: 'QUERY_RECORDER 1[]:[]GET_PROGRAM_INFO'
> REPLY LEN: 249
> REPLY: Guiding Light[]:[] []:[]Trials and tribulations of the Bauer,
> Lewis and Spaulding
> families.[]:[]Soap[]:[]2005-06-16T14:00:00[]:[]2005-06-16T15:00:00[]:[]KPIX
> DT[]:[]none[]:[]5_1[]:[]1032[]:[]SH001966[]:[]SH0019660000[]:[]
> []:[]1[]:[]2000-01-01[]:[]0
> Channel 5_1: Guiding Light -- Trials and tribulations of the Bauer,
> Lewis and Spaulding families.
> ++++ recorder_pause
> REQUEST->req: 'QUERY_RECORDER 1[]:[]PAUSE'
> REPLY LEN: 2
> REPLY: ok
> +++++ recorder_change_channel CHANNEL_DIRECTION_UP
> REQUEST->req: 'QUERY_RECORDER 1[]:[]CHANGE_CHANNEL[]:[]0'
> REPLY LEN: 2
> REPLY: ok
> ++++ recorder_get_program_info
> REQUEST->req: 'QUERY_RECORDER 1[]:[]GET_PROGRAM_INFO'
> REPLY LEN: 192
> REPLY: Paid Programming[]:[] []:[] []:[]
> []:[]2005-06-16T14:00:00[]:[]2005-06-16T14:30:00[]:[]KKPXDT[]:[]none[]:[]65_1[]:[]1065[]:[]SH000001[]:[]SH0000010000[]:[]
> []:[]0[]:[]2005-06-16T14:00:00[]:[]0
> ++++ recorder_pause
> REQUEST->req: 'QUERY_RECORDER 1[]:[]PAUSE'
> REPLY LEN: 2
> REPLY: ok
> +++++ recorder_set_channel 5_1
> REQUEST->req: 'QUERY_RECORDER 1[]:[]SET_CHANNEL[]:[]5_1'
> REPLY LEN: 2
> REPLY: ok
> ++++ recorder_get_program_info
> REQUEST->req: 'QUERY_RECORDER 1[]:[]GET_PROGRAM_INFO'
> REPLY LEN: 249
> REPLY: Guiding Light[]:[] []:[]Trials and tribulations of the Bauer,
> Lewis and Spaulding
> families.[]:[]Soap[]:[]2005-06-16T14:00:00[]:[]2005-06-16T15:00:00[]:[]KPIX
> DT[]:[]none[]:[]5_1[]:[]1032[]:[]SH001966[]:[]SH0019660000[]:[]
> []:[]1[]:[]2000-01-01[]:[]0
> +++ TL : recorder_end_stream
> REQUEST->req: 'QUERY_RECORDER 1[]:[]STOP_LIVETV'
> ======== thats where the backend crashes =======
> 
> Thanks
> 
> Mudit
>


More information about the mythtv-dev mailing list