Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
FS#2527 - mythtv segfaults due to mysql
Attached to Project:
Arch Linux
Opened by Sasha (kleptophobiac) - Friday, 08 April 2005, 17:21 GMT
Last edited by Judd Vinet (judd) - Tuesday, 12 April 2005, 06:52 GMT
Opened by Sasha (kleptophobiac) - Friday, 08 April 2005, 17:21 GMT
Last edited by Judd Vinet (judd) - Tuesday, 12 April 2005, 06:52 GMT
|
DetailsThe mythtv package is thoroughly useless due to rampant segmentation faults. For mythfrontend, they usually occur when starting a media stream, usually livetv or a recording - but not for the first time. It occurs when opening for the second time.
A similar problem occurs with mythbackend. When doing db manipulations, the backend will sometimes segfault as well. I think that myth is crashing when db connections aren't being closed and reopened on time, and it might be causing a race condition - hence the slight randomness of the problem. Also, this is not an issue using the stock Slackware packages, so that may be a point of reference... a comparison of mysql packages perhaps. Also, I am not the only user that experiences this, and it has been a consistent problem ever since Arch went mysql 4.1.x. I did an strace of the frontend as it died, and here it is: open("/etc/localtime", O_RDONLY) = 15 fstat64(15, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0 close(15) = 0 gettimeofday({1112979219, 696566}, NULL) = 0 write(11, "481 QUERY_CHECKFILE[]:[]Good"..., 489) = 489 select(12, [11], NULL, NULL, {0, 0}) = 0 (Timeout) ioctl(11, FIONREAD, [0]) = 0 gettimeofday({1112979219, 697874}, NULL) = 0 select(12, [11], NULL, NULL, {0, 5000}) = 0 (Timeout) ioctl(11, FIONREAD, [0]) = 0 gettimeofday({1112979219, 703723}, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 select(12, [11], NULL, NULL, {0, 5000}) = 1 (in [11], left {0, 4000}) ioctl(11, FIONREAD, [9]) = 0 read(11, "1 ", 8) = 8 gettimeofday({1112979219, 708327}, NULL) = 0 read(11, "1", 1) = 1 access("/root/.kde/lib/kde3/plugins/sqldrivers/.", F_OK) = -1 ENOENT (No such file or directory) access("/opt/kde/lib/kde3/plugins/sqldrivers/.", F_OK) = -1 ENOENT (No such file or directory) access("/opt/qt/plugins/sqldrivers/.", F_OK) = 0 open("/opt/qt/plugins/sqldrivers", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=144, ...}) = 0 fcntl64(15, F_SETFD, FD_CLOEXEC) = 0 getdents64(15, /* 5 entries */, 131072) = 168 lstat64("/opt/qt/plugins/sqldrivers/libqsqlite.so", {st_mode=S_IFREG|0755, st_size=397788, ...}) = 0 lstat64("/opt/qt/plugins/sqldrivers/libqsqlmysql.so", {st_mode=S_IFREG|0755, st_size=41764, ...}) = 0 lstat64("/opt/qt/plugins/sqldrivers/libqsqlpsql.so", {st_mode=S_IFREG|0755, st_size=60732, ...}) = 0 getdents64(15, /* 0 entries */, 131072) = 0 close(15) = 0 access("/usr/bin/sqldrivers/.", F_OK) = -1 ENOENT (No such file or directory) access("/opt/qt/plugins/sqldrivers/libqsqlmysql.so", F_OK) = 0 access("/opt/qt/plugins/sqldrivers/libqsqlmysql.so", F_OK) = 0 lstat64("/opt/qt/plugins/sqldrivers/libqsqlmysql.so", {st_mode=S_IFREG|0755, st_size=41764, ...}) = 0 access("/opt/qt/plugins/sqldrivers/libqsqlmysql.so", F_OK) = 0 access("/opt/qt/plugins/sqldrivers/libqsqlmysql.so", F_OK) = 0 access("/opt/qt/plugins/sqldrivers/libqsqlmysql.so", F_OK) = 0 access("/opt/qt/plugins/sqldrivers/libqsqlmysql.so", F_OK) = 0 access("/opt/qt/plugins/sqldrivers/libqsqlmysql.so", F_OK) = 0 rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_IGN}, 8) = 0 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 15 fcntl64(15, F_GETFL) = 0x2 (flags O_RDWR) connect(15, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.8")}, 16) = 0 setsockopt(15, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(15, SOL_TCP, TCP_NODELAY, [1], 4) = 0 setsockopt(15, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 read(15, "4\0\0\0", 4) = 4 read(15, "\n4.1.11\0\25\0\0\0J$o&loi?\0,\2420\2\0\0\0\0\0\0\0"..., 52) = 52 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ |
This task depends upon
http://bbs.archlinux.org/viewtopic.php?t=8346
I tried that, and it works beautifully. woohoo!
Passing back to dorph.
I don't think a new mythtv is required, and I didn't make one after I fixed sql.
Dorphell, if you do make another mythtv, would you consider adding native ALSA support? There's really no reason not to have it, as OSS still works, and some of the other deps for myth need the alsa-libs anyway.
sed -i 's/my_once_free/free_charsets();\n my_once_free/' mysys/my_init.c
And here's what to use to enable ALSA:
echo "CONFIG += using_alsa" >> settings.pro
echo "ALSA_LIBS = -lasound" >> settings.pro
A couple more myth based suggestions...
Make myth part of the PVR package group, and add the myth plugins to the group. Also, lirc support is almost a must with any real life home theater project w/ linux, so it might as well be added too. Here's the lines for that:
echo "EXTRA_LIBS += -lGL -lGLU" >> settings.pro
echo "LIRC_LIBS = -llirc_client" >> settings.pro
Anyway, I've done a lot of work to make mythtv a reality under arch, mainly because I think it's the coolest thing ever (yes, both arch and myth. I demolished a perfectly working slackware/myth combo, just to make it work under the most perfect distro ever)
Here's a dump of my pkgbuilds and whatnot. Some of the packages are more or less direct rips from the official packages with a couple modifications. A bunch are fresh. Here's the site:
http://www.mstcforum.com/projects/arch/
The arch packages I've modified:
lirc - just made it part of the pvr group
faad2 - installed all the header files, not just the defaults
mplayer - added lirc support
mythtv - added lirc and alsa support
mysql - added fix for the charset crash bug (thanks Towner!)
fftw - made an fftw2 for legacy fftw support, mythmusic needs the backwards version
Fresh packages:
mythdvd - dvd player and ripper plugin
mythvideo - video player plugin
mythmusic - music player and ripper plugin
mythnews - rss newsreader plugin
mythweather - weather plugin
perl-xml-simple - needed for mythvideo perl script that queries IMDB