RFR 9: 7021006: (process) Remove disabled clone-exec feature
Martin Buchholz
martinrb at google.com
Fri Mar 27 21:21:58 UTC 2015
Please also keep (most of?) the below. The key piece of the history is
that glibc did not consider clone a public supported interface, unlike
vfork, but that might change. This comment and the contents of the glibc
bug are an important part of Unix lore, although I'm hearing you think
there's a better place to record the arcane history of Unix...
- * - clone() with flags CLONE_VM but not CLONE_THREAD. clone() is
- * Linux-specific, but this ought to work - at least the glibc
- * sources contain code to handle different combinations of CLONE_VM
- * and CLONE_THREAD. However, when this was implemented, it
- * appeared to fail on 32-bit i386 (but not 64-bit x86_64) Linux with
- * the simple program
- * Runtime.getRuntime().exec("/bin/true").waitFor();
- * with:
- * # Internal Error (os_linux_x86.cpp:683), pid=19940, tid=2934639536
- * # Error: pthread_getattr_np failed with errno = 3 (ESRCH)
- * We believe this is a glibc bug, reported here:
- * http://sources.redhat.com/bugzilla/show_bug.cgi?id=10311
- * but the glibc maintainers closed it as WONTFIX.
- *
On Fri, Mar 27, 2015 at 2:14 PM, Roger Riggs <Roger.Riggs at oracle.com> wrote:
> Thanks Martin,
>
> Updated the webrev in place to restore that context.
>
> Roger
>
>
>
> On 3/27/2015 5:00 PM, Martin Buchholz wrote:
>
> clone was never used in a released jdk.
>
> I would leave the internal docs. I left them in on purpose, because it
> was not at all obvious why we chose not to use clone.
>
> I'm especially fond of
>
> - * On Linux, one might think that vfork() would be implemented using
> - * the clone system call with flag CLONE_VFORK, but in fact vfork is
> - * a separate system call (which is a good sign, suggesting that
> - * vfork will continue to be supported at least on Linux).
>
> Deleting the implementation using clone is a better idea; it's easy to
> resurrect in the unlikely case someone will want to.
>
>
> On Fri, Mar 27, 2015 at 1:50 PM, Roger Riggs <Roger.Riggs at oracle.com>
> wrote:
>
>> At one time clone() was used on Unix to spawn processes but no more.
>> Please review the cleanup of now dead code.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~rriggs//webrev-clone-7021006
>>
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-7021006
>>
>> Thanks, Roger
>>
>>
>
>
More information about the core-libs-dev
mailing list