Bug 65544

Summary: clnt_call() returns Failure in multithread environment on RH7.2
Product: [Retired] Red Hat Linux Reporter: Konda Reddy <kondar>
Component: glibcAssignee: Jakub Jelinek <jakub>
Status: CLOSED WONTFIX QA Contact: Brian Brock <bbrock>
Severity: high Docs Contact:
Priority: high    
Version: 8.0CC: biswajit.nanda, fweimer
Target Milestone: ---   
Target Release: ---   
Hardware: i586   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-04-23 23:04:27 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 Konda Reddy 2002-05-27 11:05:18 UTC
Description of Problem:
I have a multi-threaded client, in which I create
CLIENT handle in the first thread, and then use
clnt_call in other child-threads to access server.
If the clnt_create() and clnt_call() are invoked in the same thread then 
clnt_call() returns success. 
On Linux RH7.1 there is no problem. but it's giving problem on RH7.2 (2.4.7-10 
#1 Thu Sep 6 17:21:28 EDT 2001 i586). 

Version-Release number of selected component (if applicable):


How Reproducible:
Call clnt_create() in one thread and get the CLIENT pointer then call clnt_call
() in another thread by passing the same CLIENT pointer. It returns Failure.

Steps to Reproduce:
1. 
2. 
3. 

Actual Results:
clnt_call() returns FAILURE.

Expected Results:
clnt_call() should return SUCCESS.

Additional Information:

Comment 1 Arjan van de Ven 2002-05-27 11:15:55 UTC
clnt_call is not a kernel function.
Also it's recommended to upgrade to at least kernel 2.4.9-31 which is released
as erratum

Comment 2 Arjan van de Ven 2002-05-27 11:17:25 UTC
*** Bug 65545 has been marked as a duplicate of this bug. ***

Comment 3 Konda Reddy 2002-05-27 11:34:44 UTC
Hi Jakub,

I have create an attachment for the bug #65545 and the details of the 
attachment is as follows.

+Created an attachment (id=58665)
+new.tar file has the sample to reproduce the Bug.
+

Just follow the steps below to reproduce the Bug:
1. run "compile"  - to compile the sample.
2. run "dateproc & "  - to run the RPC server
3. run "rdate hostname" - to run the client. (Hostname must the machine name 
where the dateproc server is running.

You will get an error saying that clnt_call() failed.

Since this is related to mutlithreading, I suspect this is of kernel problem.

Thanks,
Konda.

Comment 4 Alan Cox 2002-12-15 20:48:46 UTC
*** Bug 65880 has been marked as a duplicate of this bug. ***

Comment 5 Alan Cox 2002-12-15 20:49:15 UTC
Not kernel definitely

Still weird in 8.0..


Comment 6 Ulrich Drepper 2003-04-23 23:04:27 UTC
This is intentional.  The RPC interfaces are misdesigned.  To allow using the
code in multi-threaded environments the relevant data is thread local.  Yes,
this is incompatible from what was in 7.1 but that's life.  RPC in
multi-threaded apps ebfore 7.2 was completely unsupported.