Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Apr 2004 14:55:56 +0900
From:      Ganbold <ganbold@micom.mng.net>
To:        Daniel Eischen <eischen@vigrid.com>
Cc:        threads@freebsd.org
Subject:   Re: FBSD 5.2.CURRENT-p4 and mysqld problems
Message-ID:  <6.0.3.0.2.20040416144532.02b9fe90@202.179.0.80>
In-Reply-To: <Pine.GSO.4.10.10404152229140.3289-100000@pcnet5.pcnet.com>
References:  <6.0.3.0.2.20040416111531.02b719e8@202.179.0.80> <Pine.GSO.4.10.10404152229140.3289-100000@pcnet5.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Dan, Julian, Petri and Alexander,

Thank you for your great help. Before I was using kernel SCHED_ULE and 
BUILD_STATIC option to build mysql.
I switched back to SCHED_4BSD and patched mysql with Dan's patch.
Mysql is dynamically linked and compiled with libpthread. Let us see what 
will happen.

Below are outputs of ldd and ps:

backend2# ldd /usr/local/libexec/mysqld
/usr/local/libexec/mysqld:
         libpthread.so.1 => /usr/lib/libpthread.so.1 (0x48357000)
         libz.so.2 => /lib/libz.so.2 (0x4837a000)
         libcrypt.so.2 => /lib/libcrypt.so.2 (0x48387000)
         libstdc++.so.4 => /usr/lib/libstdc++.so.4 (0x4839f000)
         libm.so.2 => /lib/libm.so.2 (0x48451000)
         libc.so.5 => /lib/libc.so.5 (0x48469000)

backend2# ps axlHwww | grep mysql
    88   764   672   1   4  0 451940 450128 sbwait 
SL    ??    0:37.47  (mysqld)
    88   764   672   0  20  0 451940 450128 ksesig 
SL    ??    0:37.47  (mysqld)
    88   764   672   1   4  0 451940 450128 sbwait 
SL    ??    0:37.47  (mysqld)
    88   764   672   1  96  0 451940 450128 select 
SL    ??    0:37.47  (mysqld)
    88   764   672   1  20  0 451940 450128 kserel 
SL    ??    0:37.47  (mysqld)
    88   764   672   1  20  0 451940 450128 kserel 
SL    ??    0:37.47  (mysqld)
    88   764   672   1   4  0 451940 450128 sbwait 
SL    ??    0:37.47  (mysqld)
    88   764   672   1  20  0 451940 450128 kserel 
SL    ??    0:37.47  (mysqld)
    88   764   672   1   4  0 451940 450128 sbwait 
SL    ??    0:37.47  (mysqld)
    88   764   672   1  20  0 451940 450128 kserel 
SL    ??    0:37.47  (mysqld)
     0   777   772   0   5  0  3512 3008 ttyin  SL+   p0    0:00.06 mysql -p
     0   672     1 532   8  0  1616 1168 wait   IL   con-   0:00.02 /bin/sh 
/usr/local/bin/mysqld_safe --user=mysql --datadir=/var/db/mysql 
--pid-file=/var/db/mysql/backend2.pid --log-slow-queries=slow.log 
--log=general.log --log-update=update.log --default-character-set=latin1

If there will be a problem again, I will continue to experiment with other 
threading libraries.

Thanks a lot again,

Ganbold


At 11:46 AM 16.04.2004, you wrote:
>On Fri, 16 Apr 2004, Ganbold wrote:
>
> > I compiled mysqld with default threading library in FreeBSD 5.2-CURRENT.
> >
> > ps axlHwww shows:
> >
> > backend2# ps axlHwww | grep mysql
> >      0 15417     1   0   8  0  1616 1088 wait   SL    p0    0:00.02 
> /bin/sh
> > /usr/local/bin/mysqld_safe --user=mysql --datadir=/var/db/mysql
> > --pid-file=/var/db/mysql/backend2.pid --log-slow-queries=slow.log
> > --log=general.log --log-update=update.log --default-character-set=latin1
> >     88 15457 15417   0  20  0 450316 449244 kserel
> > SL    p0    0:09.69  (mysqld)
> >     88 15457 15417   0  20  0 450316 449244 kserel
>[ ... ]
> >     88 15457 15417   0  20  0 450316 449244 kserel
> > SL    p0    0:09.69  (mysqld)
> >      0 15546   778   0  -8  0  1412  820 piperd SL+   p0    0:00.00 
> grep mysql
> >      0 13232   796   0   4  0  3472 2664 sbwait SL+   p1    0:00.07 
> mysql -p
> >
> > And I don't see any difference when mapping between different threading
> > libraries libpthread, libc_r, libkse, libthr.
>
>Then you are not doing it correctly.  You should only see
>references to kserel when using libpthread (nee libkse).
>
>Please read /usr/src/UPDATING 20040130 and see the -threads
>archives for related mysql discussions.
>
>Unless you rebuild all your ports on that system, you should
>always use a libmap.conf entry that maps libc_r to your
>desired thread library as well as mapping libpthread to
>your desired thread library.
>
>To use libpthread, use:
>
>libc_r.so.5             libpthread.so.1
>libc_r.so               libpthread.so
>
>To use libc_r, use:
>
>libc_r.so.5             libc_r.so.5
>libc_r.so               libc_r.so
>libpthread.so.1         libc_r.so.5
>libpthread.so           libc_r.so
>
>To use libthr, use:
>
>libc_r.so.5             libthr.so.1
>libc_r.so               libthr.so
>libpthread.so.1         libthr.so.1
>libpthread.so           libthr.so
>
>Also, mysql uses scope system threads.  I have a patch
>that makes it use scope process threads and it behaves
>much better:
>
>         http://people.freebsd.org/~deischen/mysql40-server.diffs
>
>Also, mysql doesn't seem to work correctly when built with
>--with-libwrap support.  It has something to do with compiler
>flags; see the -threads archives for more info.
>
>Also, there are built-in default limits for threads under
>libpthread.  See the output of `sysctl -a | grep kern.threads`.
>
>All of the above information can be found in the -threads
>archives; please use it :-)
>
> >
> > I tried switching all threading libraries in libmap.conf. However 
> output of
> > the ps axlH command shows always the same and
> > I'm bit confused. If it worked as it supposed to mysqld with all threading
> > libs hangs after some time when I run some query.
>
>Probably because you are mixing threading libraries.
>
>--
>Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6.0.3.0.2.20040416144532.02b9fe90>