From Bugzilla Helper: User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0; Tekelec) Description of problem: The mysql RPM does not provide the thread safe version of the mysql client library: libmysqlclient_r.so I have searched through all the mysql RPM's using: rpm -ql (rpm_name) and have not found this. Further more, if one links against the provided libmysqlclient.so and runs the function: mysql_thread_safe() It returns false (i.e. that the mysql client linked against is not thread safe). Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Create the following program: #include <stdio.h> #include <stdlib.h> main() { printf("mysql_thread_safe %s\n", mysql_thread_safe () ? "yes" : "no"); exit(0); } 2. Compile and link it against the libmysqlclient library: gcc msyqltest.c -L/usr/lib/mysql -lmysqlclient -lz 3. Run the program. Actual Results: The program output: mysql_thread_safe no Expected Results: The program output: mysql_thread_safe yes If on the other hand you download the latest mysql RPM's from www.mysql.org, remove the RedHat ones and install the MySQL ones, and then link against mysqlclient_r the result will be the expected results. Additional info:
This is an enhancement request that we'll look into. At the moment, we ship the normal mysqlclient library, not the thread safe one. The reason why your test is failing is that you are linking to the non thread safe library. The results of your test (ie, mysql_thread_safe no) was the correct output. To create the thread safe client library, one must configure the build with --enable-thread-safe-client, which will produce the libmysqlclient_r library.
The reason I was linking to the non-thread-safe client library is a thread safe client library is not provided by the RedHat RPM. The description of the bug points this out: mysql RPM's do not provide a thread safe client library This probably meant that I understood there was no thread safe client library provided in the first place.
And all I was stating was that you listed "Expect Results: mysql_thread_safe yes" which is not what you should be expecting when linking against libmysqlclient. Anyway, we're looking at it now.
Interesting... Netscape ate the summary line. Replacing
This has been fixed. The thread safe client is now being built and the provided test case performs correctly.
*** Bug 85816 has been marked as a duplicate of this bug. ***
An errata has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2003-094.html