hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benoy Antony (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HADOOP-10590) ServiceAuthorizationManager is not threadsafe
Date Thu, 29 May 2014 08:15:02 GMT

     [ https://issues.apache.org/jira/browse/HADOOP-10590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Benoy Antony updated HADOOP-10590:
----------------------------------

    Attachment: performancetest.patch

Attaching the class  using which I ran the performance tests
Here an RPC server is created with 10 different protocol classes. The different protocols
are required to cause simultaneous connection requests.
The server sets acls on porticols such that authorization always fails. If any authorization
is successful, then the successful connection will be cached and will not invoke authorize
() again.

The server is started with 4 reader threads and 4 handler threads. 
10 client threads are started. Each of the threads make 1000 calls simultaneously. 
The above is repeated 10 times and the total duration for each iteration is recorded and average
is also calculated.
The tests are executed on 2.6 GHz Intel Core i7 (8 core) , 16 GB 1600 MHz DDR3.  Set log level
to Error to remove any logging.
The readings on  for the following conditions are below:

{panel:title=current code}
The different times in milliseconds are: 
7350 , 23234 , 30897 , 18634 , 32112 , 18905 , 35371 , 16758 , 32161 , 22113  .  
The average time in milliseconds is: 23754
{panel}

{panel:title=synchronized authorize}
The different times in milliseconds are: 
6101 , 25809 , 26170 , 22700 , 28617 , 24078 , 28440 , 23569 , 27246 , 25882  . 
 The average time in milliseconds is: 23861
{panel}

{panel:title=volatile protocolToAcl}
The different times in milliseconds are: 
7256 , 25995 , 29741 , 19679 , 30089 , 22581 , 27695 , 22877 , 27267 , 23630  . 
 The average time in milliseconds is: 23681
{panel}

Observations:  There are no noticeable difference between unsynchronized/synchronized/volatile
cases. Triggering the exception (AuthorizationException) , may be expensive and hence differences
between unsynchronized/synchronized/volatile becomes negligible compared to the exception
operations.

> ServiceAuthorizationManager  is not threadsafe
> ----------------------------------------------
>
>                 Key: HADOOP-10590
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10590
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: security
>    Affects Versions: 2.4.0
>            Reporter: Benoy Antony
>            Assignee: Benoy Antony
>         Attachments: HADOOP-10590.patch, performancetest.patch
>
>
> The mutators in ServiceAuthorizationManager  are synchronized. The accessors are not
synchronized.
> This results in visibility issues when  ServiceAuthorizationManager's state is accessed
from different threads.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message