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

Alan Burlison reassigned HDFS-9957:
-----------------------------------

    Assignee: Alan Burlison

> HDFS's use of mlock() is not portable
> -------------------------------------
>
>                 Key: HDFS-9957
>                 URL: https://issues.apache.org/jira/browse/HDFS-9957
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: native
>    Affects Versions: 2.7.2
>         Environment: Any UNIX system other than Linux
>            Reporter: Alan Burlison
>            Assignee: Alan Burlison
>
> HDFS uses mlock() to lock in the memory used to back java.nio.Buffer. 
> Unfortunately the way it is done is not standards-compliant. As the Linux 
> manpage for mlock() says:
> {quote}
>        Under Linux, mlock(), mlock2(), and munlock() automatically round
>        addr down to the nearest page boundary.  However, the POSIX.1
>        specification of mlock() and munlock() allows an implementation to
>        require that addr is page aligned, so portable applications should
>        ensure this.
> {quote}
> The HDFS code does not do any such alignment, nor is it true that the backing 
> buffers for java.nio.Buffer are necessarily page aligned. And even if the 
> address was aligned by the code, it would end up calling mlock() on other 
> random JVM data structures that shared the same page. That seems potentially 
> dangerous.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to