Red Hat Bugzilla – Bug 77662
mysql RPM's do not provide a thread safe library
Last modified: 2007-11-30 17:06:52 EST
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:
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:
It returns false (i.e. that the mysql client linked against is not
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create the following program:
printf("mysql_thread_safe %s\n", mysql_thread_safe
() ? "yes" : "no");
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:
Expected Results: The program output:
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
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
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.