[
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)