RFR 9: 7021006: (process) Remove disabled clone-exec feature
Roger Riggs
Roger.Riggs at Oracle.com
Fri Mar 27 21:28:10 UTC 2015
Hi Martin,
That part seems both dated and arcane; it will be in the mercurial history
none the less. I can't see how it could be applied unless we go back to
clone.
Roger
On 3/27/2015 5:21 PM, Martin Buchholz wrote:
> 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
> <mailto: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 <mailto: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
>> <http://cr.openjdk.java.net/%7Erriggs//webrev-clone-7021006>
>>
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-7021006
>>
>> Thanks, Roger
>>
>>
>
>
More information about the core-libs-dev
mailing list