[mythtv-users] MySQL related BE deadlocks - collective wisdom needed
Warpme
warpme at o2.pl
Sun Jul 31 15:08:47 UTC 2011
Recently I got idea to switch to different code paths in MySQL clientlib.
This is result of one from my current hypothesis assuming that myth is
putting "unfortunate" (in sense not yet catched mysql bug) load on MySQL
and issue I have is simple libsqlclient bug.
Assuming this, and fact that bug seems to be in communication code, I
decided to possibly change mysqlclient code execution path.
Simplest move is switch client-server comm. from Unix socket TCP. btw: I
also enable MySQL general logging (huh log has 350M).
System is under test since Yesterday.
Having already +80 rec. I noticed in LOG some MySQL related errors not
seen in past when I had Unix socket comm.
So it is possible that by changing comm. I change code execution path in
way that now mysqlclient is not hanging, and BE has chance to log error.
Indeed, in past hang on traces was usually during mplexid query. As BE
was already hung - this error wasn't logged in BE log. Now it is.
I'm attaching part of BE log with those errors.
I was trying to correlate 8:07:14 & 15:05:18 entries with mysql query
log. Any non-standard things I'm able to catch are something like this:
659 Prepare SELECT mplexid FROM channel WHERE chanid = ?
659 Reset stmt
659 Execute SELECT mplexid FROM channel WHERE chanid = 12805
659 Close stmt
1052 Connect mythtv at mythtv on mythconverg
1052 Query SET NAMES utf8
1052 Query SELECT mplexid FROM channel WHERE chanid = :CHANID
368 Prepare SELECT mplexid FROM channel WHERE chanid = ?
368 Reset stmt
368 Execute SELECT mplexid FROM channel WHERE chanid = 13101
368 Close stmt
5 Prepare SELECT mplexid FROM channel WHERE chanid = ?
5 Reset stmt
5 Execute SELECT mplexid FROM channel WHERE chanid = 12805
5 Close stmt
7 Prepare SELECT mplexid FROM channel WHERE chanid = ?
7 Reset stmt
7 Execute SELECT mplexid FROM channel WHERE chanid = 13101
7 Close stmt
6 Prepare SELECT mplexid FROM channel WHERE chanid = ?
6 Reset stmt
6 Execute SELECT mplexid FROM channel WHERE chanid = 12805
6 Close stmt
It looks like at 1052 there was DB reconnect.
Fortunately clientlib not hang here.
BE log reported DB error is 1064 which means SQL syntax error. I don't
know is it falsely reported by MySQL as SQL syntax issue - but in
reality is related to reconnect, or it is rather sign of myth bug.
I think it is reconnect result but somebody having expierience with
mysql logs can say more here.
Anyway, why here we have ":CHANID" instead of concrete number ?
-br
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: DB_errors.txt
Url: http://www.mythtv.org/pipermail/mythtv-users/attachments/20110731/7397db69/attachment.txt
More information about the mythtv-users
mailing list