Bug 77662

Summary: mysql RPM's do not provide a thread safe library
Product: Red Hat Enterprise Linux 2.1 Reporter: James Olin Oden <james.oden>
Component: mysqlAssignee: Patrick Macdonald <patrickm>
Status: CLOSED ERRATA QA Contact: David Lawrence <dkl>
Severity: high Docs Contact:
Priority: medium    
Version: 2.1CC: mwaite, xavibj
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-02-25 19:31:41 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description James Olin Oden 2002-11-11 17:09:28 UTC
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:

Comment 1 Patrick Macdonald 2003-02-04 19:37:34 UTC
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.

Comment 2 James Olin Oden 2003-02-05 13:43:34 UTC
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.

Comment 3 Patrick Macdonald 2003-02-05 14:36:32 UTC
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.

Comment 4 Patrick Macdonald 2003-02-05 14:42:18 UTC
Interesting... Netscape ate the summary line.  Replacing

Comment 5 Patrick Macdonald 2003-02-25 19:31:41 UTC
This has been fixed.  The thread safe client is now being built and the
provided test case performs correctly.

Comment 6 Patrick Macdonald 2003-03-10 16:31:34 UTC
*** Bug 85816 has been marked as a duplicate of this bug. ***

Comment 7 Mark J. Cox 2003-04-28 12:52:49 UTC
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