[mythtv-commits] Ticket #13068: Scheduler crashes before recording starts after backend has been running for a few days
MythTV
noreply at mythtv.org
Sun Jul 16 02:20:22 UTC 2017
#13068: Scheduler crashes before recording starts after backend has been running
for a few days
---------------------------------+------------------------
Reporter: WilliamDeRieux@… | Owner: gigem
Type: Bug Report - Crash | Status: new
Priority: major | Milestone: 0.28.2
Component: MythTV - Scheduling | Version: 0.28.1
Severity: medium | Resolution:
Keywords: | Ticket locked: 0
---------------------------------+------------------------
Comment (by WilliamDeRieux@…):
Replying to [comment:6 WilliamDeRieux@…]:
> I just installed some debug symbols for mysql and this now shows a more
complete gdb backtrace:
>
>
> {{{
> 2017-07-15 21:59:30.000847 I Scheduler: FillRecordingDir: Starting
> 2017-07-15 21:59:30.000882 I Database object created: DBManager64
> 2017-07-15 21:59:30.000887 I New DB connection, total: 7
> 2017-07-15 21:59:30.000889 I Deleting idle DB connection...
>
> Thread 10 "Scheduler" received signal SIGPIPE, Broken pipe.
> [Switching to Thread 0x7fffc97fa700 (LWP 31594)]
> 0x00007fffea53861f in __libc_send (fd=fd at entry=35,
buf=buf at entry=0x7fffac056398, n=n at entry=5, flags=flags at entry=0) at
../sysdeps/unix/sysv/linux/x86_64/send.c:26
> 26 ../sysdeps/unix/sysv/linux/x86_64/send.c: No such file or
directory.
> (gdb) bt
> #0 0x00007fffea53861f in __libc_send (fd=fd at entry=35,
buf=buf at entry=0x7fffac056398, n=n at entry=5, flags=flags at entry=0) at
../sysdeps/unix/sysv/linux/x86_64/send.c:26
> #1 0x00007fffd8670c2d in inline_mysql_socket_send
(src_file=0x7fffd8757c28
"/build/mariadb-10.1-Y_aRXm/mariadb-10.1-10.1.23/vio/viosocket.c",
src_line=286, flags=0, n=5, buf=0x7fffac056398, mysql_socket=...) at
./include/mysql/psi/mysql_socket.h:759
> #2 0x00007fffd8670c2d in vio_write (vio=0x7fffac03d778,
buf=0x7fffac056398 "\001", size=5) at ./vio/viosocket.c:285
> #3 0x00007fffd864c8f9 in net_real_write(NET*, uchar const*, size_t)
(net=net at entry=0x7fffac072448, packet=0x7fffac056398 "\001",
len=<optimized out>) at ./sql/net_serv.cc:661
> #4 0x00007fffd864cbe3 in net_flush(NET*) (net=net at entry=0x7fffac072448)
at ./sql/net_serv.cc:363
> #5 0x00007fffd864d292 in net_write_command(NET*, uchar, uchar const*,
size_t, uchar const*, size_t) (net=net at entry=0x7fffac072448,
command=command at entry=1 '\001', header=header at entry=0x0,
head_len=head_len at entry=0, packet=packet at entry=0x0, len=len at entry=0) at
./sql/net_serv.cc:501
> #6 0x00007fffd8644a04 in cli_advanced_command (mysql=0x7fffac072448,
command=<optimized out>, header=0x0, header_length=0, arg=0x0,
arg_length=0, skip_check=1 '\001', stmt=0x0)
> at ./sql-common/client.c:701
> #7 0x00007fffd8642008 in mysql_close_slow_part
(mysql=mysql at entry=0x7fffac072448) at ./sql-common/client.c:3949
> #8 0x00007fffd864204a in mysql_close (mysql=0x7fffac072448) at ./sql-
common/client.c:3961
> #9 0x00007ffff7feba51 in QMYSQLDriver::close() (this=0x7fffac0348b0) at
../../../sql/drivers/mysql/qsql_mysql.cpp:1455
> #10 0x00007ffff3cc649b in MSqlDatabase::~MSqlDatabase()
(this=0x7fffac025ef0, __in_chrg=<optimized out>) at mythdbcon.cpp:102
> #11 0x00007ffff3cc8c59 in MDBManager::PurgeIdleConnections(bool)
(this=0x555555a3f330, leaveOne=true) at mythdbcon.cpp:427
> #12 0x00007ffff3cc8071 in MDBManager::popConnection(bool)
(this=0x555555a3f330, reuse=true) at mythdbcon.cpp:300
> #13 0x00007ffff3cc9d13 in MSqlQuery::InitCon(MSqlQuery::ConnectionReuse)
(_reuse=MSqlQuery::kNormalConnection) at mythdbcon.cpp:545
> #14 0x000055555565eb4f in Scheduler::FillRecordingDir(QString const&,
QString const&, QString const&, QDateTime const&, QDateTime const&,
unsigned int, QString&, std::deque<RecordingInfo*,
std::allocator<RecordingInfo*> > const&) (this=0x555555a74c10, title=...,
hostname=..., storagegroup=..., recstartts=..., recendts=..., cardid=1,
recording_dir=..., reclist=std::deque with 33 elements = {...}) at
scheduler.cpp:4795
> #15 0x0000555555648341 in Scheduler::HandleRecording(RecordingInfo&,
bool&, QDateTime&, QDateTime&, int) (this=0x555555a74c10,
> ri=..., statuschanged=@0x7fffc97f9a13: false, nextStartTime=...,
nextWakeTime=..., prerollseconds=0) at scheduler.cpp:2735
> #16 0x0000555555642118 in Scheduler::run() (this=0x555555a74c10) at
scheduler.cpp:2111
> #17 0x00007ffff3caaf75 in MThreadInternal::run() (this=0x555555a62e60)
at mthread.cpp:79
> #18 0x00007fffea7f3da8 in () at /usr/lib/x86_64-linux-
gnu/libQt5Core.so.5
> #19 0x00007fffea52f494 in start_thread (arg=0x7fffc97fa700) at
pthread_create.c:333
> #20 0x00007fffe99d4aff in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:97
> }}}
The mysql client is libmariadbd18 (10.1.23-9+deb9u1)
https://packages.debian.org/stretch/libmariadbd18
I still think this is a driver bug -- unless the mythtv code is not
properly setting some parameter, etc
--
Ticket URL: <https://code.mythtv.org/trac/ticket/13068#comment:7>
MythTV <http://www.mythtv.org>
MythTV Media Center
More information about the mythtv-commits
mailing list