Bug #20654 MySQL with linux threads on FreeBSD ignores wait and interactive timeout
Submitted: 23 Jun 2006 9:51 Modified: 16 Apr 2007 12:46
Reporter: Martin Tsachev Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.0.33, 5.0.27, 5.0.22 OS:FreeBSD (FreeBSD 6.1)
Assigned to: CPU Architecture:Any

[23 Jun 2006 9:51] Martin Tsachev
Description:
If you compile MySQL on FreeBSD with WITH_LINUXTHREADS it doesn't respect wait_timeout and interactive_timeout settings.

This is similar to #8731 but the fix for it works only if you compile MySQL w/o linux threads. I use the same my.cnf for both tests and low values for the timeouts.

I decided to try w/o linux threads after reading http://jeremy.zawodny.com/blog/archives/000697.html

mysql  Ver 14.12 Distrib 5.0.22, for portbld-freebsd5.4 (i386) using  4.3
Server version:         5.0.22-log
Protocol version:       10

How to repeat:
Compile MySQL on FreeBSD with linux threads, it ignores wait/interactive timeouts.
[23 Jun 2006 10:35] Valeriy Kravchuk
Thank you for a problem report. Please, try to repeat with FreeBSD 6.0 (our 5.4 is not operational and not used for builds, anyway). Send also exact configure options used.
[23 Jun 2006 10:45] Martin Tsachev
Sorry, presently I can only test on 5.4 and 5.5.

Linux Threads on:
make -V CONFIGURE_ARGS
--localstatedir=/var/db/mysql  --without-debug  --without-readline  --without-libedit  --without-bench  --without-extra-tools  --with-libwrap  --with-mysqlfs  --with-low-memory  --with-comment='FreeBSD port: mysql-server-5.0.22'  --enable-thread-safe-client --enable-assembler --with-berkeley-db --with-named-thread-libs='-DHAVE_GLIBC2_STYLE_GETHOSTBYNAME_R -D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads -L/usr/local/lib -llthread -llgcc_r -llstdc++ -llsupc++' --prefix=/usr/local --build=i386-portbld-freebsd5.4

Off:
make -V CONFIGURE_ARGS
--localstatedir=/var/db/mysql  --without-debug  --without-readline  --without-libedit  --without-bench  --without-extra-tools  --with-libwrap  --with-mysqlfs  --with-low-memory  --with-comment='FreeBSD port: mysql-server-5.0.22'  --enable-thread-safe-client --enable-assembler --with-berkeley-db --with-named-thread-libs=-pthread --prefix=/usr/local --build=i386-portbld-freebsd5.4
[20 Jul 2006 16:31] Valeriy Kravchuk
Do you have a chance to test on FreeBSD 6.0 now? Our FreeBSD 5.4 is not operational, and this seems like a very platform-specific bug.
[20 Aug 2006 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[1 Oct 2006 12:41] Manuel Mausz
Also occurs on FreeBSD 6.1 (if compiled with linuxthreads). It looks like MySQL isn't able to kill its own threads cause KILL doesn't do anything.

# mysql -V
mysql  Ver 14.12 Distrib 5.0.24a, for portbld-freebsd6.1 (i386) using  5.0

# /usr/local/libexec/mysqld -V
/usr/local/libexec/mysqld  Ver 5.0.24a for portbld-freebsd6.1 on i386 (FreeBSD port: mysql-server-5.0.24a)

From first client:
mysql> show variables where Variable_name = 'interactive_timeout'\G
*************************** 1. row ***************************
Variable_name: interactive_timeout
        Value: 60
1 row in set (0.00 sec)

mysql> select @@interactive_timeout\G
*************************** 1. row ***************************
@@interactive_timeout: 60
1 row in set (0.00 sec)

From second client:
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 22
   User: root
   Host: localhost
     db: NULL
Command: Sleep
   Time: 77
  State:
   Info: NULL
*************************** 2. row ***************************
     Id: 176
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: SHOW PROCESSLIST
2 rows in set (0.00 sec)

mysql> kill 22;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 22
   User: root
   Host: localhost
     db: NULL
Command: Killed
   Time: 94
  State:
   Info: NULL
*************************** 2. row ***************************
     Id: 176
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: SHOW PROCESSLIST
2 rows in set (0.00 sec)
[23 Nov 2006 14:51] Valeriy Kravchuk
Please, try to repeat with a newer version, 5.0.27, and inform about the results.
[23 Nov 2006 15:51] Martin Tsachev
Reproduces with MySQL 5.0.27 liblthread on FreeBSD 6.1. libpthread and libthr are OK.
[16 Jan 2007 12:19] Valeriy Kravchuk
Sorry for a delay with this bug. Please, try to repeat with a newer version, 5.0.33 (sources are already available), and inform about the results. I have a different build problem on the only FreeBSD 6.0 machine I can use now, hence the request.
[2 Feb 2007 11:05] Martin Tsachev
With 5.0.33 there's about 20 seconds delay after you KILL a thread from another MySQL console with linux threads, the other 2 libs show no noticeable delay.
[16 Mar 2007 12:46] Valeriy Kravchuk
Please, try to repeat with a newer version, 5.0.37, and inform about the results.
[16 Apr 2007 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".