Hi Nick , 1 s none usr/mysql/5.0/lib/amd64/mysql/libmysqlclient_r.so=libmysqlclient_r.so.15.0.0 1 s none usr/mysql/5.0/lib/mysql/libmysqlclient_r.so=libmysqlclient_r.so.15.0.0
The libs are as follows /usr/mysql/5.0/lib/amd64/mysql bash-3.2$ ls -l total 5902 lrwxrwxrwx 1 root root 24 Mar 17 01:08 libmysqlclient.so -> libmysqlclient.so.15.0.0 lrwxrwxrwx 1 root root 24 Mar 17 01:08 libmysqlclient.so.15 -> libmysqlclient.so.15.0.0 -r-xr-xr-x 1 root bin 2028784 Mar 17 05:32 libmysqlclient.so.15.0.0 lrwxrwxrwx 1 root root 26 Mar 17 01:08 libmysqlclient_r.so -> libmysqlclient_r.so.15.0.0 lrwxrwxrwx 1 root root 26 Mar 17 01:08 libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0 -r-xr-xr-x 1 root bin 2050328 Mar 17 05:32 libmysqlclient_r.so.15.0.0 lrwxrwxrwx 1 root root 21 Mar 17 01:08 libndbclient.so -> libndbclient.so.2.0.0 lrwxrwxrwx 1 root root 21 Mar 17 01:08 libndbclient.so.2 -> libndbclient.so.2.0.0 -r-xr-xr-x 1 root bin 1921936 Mar 17 05:32 libndbclient.so.2.0.0 bash-3.2$ We already have the symlinks in place for MySQL .Perhaps components should use libmysqlclient_r.so and not use the version of the libs . Is this what you are looking for ? Thanks Sunanda Nick Kew wrote: > [apologies if this is duplicated - just sent it from the > wrong address] > > It appears we have a systematic problem in webstack: > > $ ldd /usr/apr-util/1.3/lib/apr-util-1/apr_dbd_mysql.so > libmysqlclient_r.so.15 => > /usr/mysql/5.0/lib/mysql/libmysqlclient_r.so.15 > > $ ldd /usr/php/5.2/modules/mysql.so > libmysqlclient.so.15 => > /usr/mysql/5.0/lib/mysql/libmysqlclient.so.15 > > > Any one using both Apache's MySQL (through apr-util) > and mysql through PHP's direct loading will be loading > two separate libraries: libmysqlclient.so and > libmysqlclient_r.so. The symbols are all the same, > the image is confused, and will segfault. > > To fix that, we should link the same mysql client libs > in both APR-UTIL and PHP. Since APU (and apache) support > threads, that has to be the reentrant/thread-safe version > libmysqlclient_r.so, which implies it's PHP that should > change. > > To the best of my knowledge, such a change should be 100% > safe, unless there are PHP applications that link directly > to the wrong MySQL lib version causing the same problem to > resurface elsewhere. Anyone know if that's a risk? > > Possibly the best solution to this would be to fix the > MySQL libs themselves. Simply drop libmysqlclient.so, > and substitute a symlink to libmysqlclient_r.so in the > MySQL installation. That way all apps get the > threadsafe/reentrant version, and there is no conflict. > > Thoughts? >
