You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Jie Yu (JIRA)" <ji...@apache.org> on 2012/06/19 21:05:43 UTC

[jira] [Resolved] (MESOS-209) A race bug in ProcessManager::spawn in libprocess.

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

Jie Yu resolved MESOS-209.
--------------------------

    Resolution: Fixed

See the patch here:
https://reviews.apache.org/r/5409/
                
> A race bug in ProcessManager::spawn in libprocess.
> --------------------------------------------------
>
>                 Key: MESOS-209
>                 URL: https://issues.apache.org/jira/browse/MESOS-209
>             Project: Mesos
>          Issue Type: Bug
>          Components: c++-api
>    Affects Versions: 0.9.0
>         Environment: All platforms.
>            Reporter: Jie Yu
>            Priority: Critical
>              Labels: libprocess
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> This is a race bug found in ProcessManager::spawn in libprocess. Below is the description of this bug.
> ------------------------------------------------------------------------------------------------------
> UPID ProcessManager::spawn(ProcessBase* process, bool manage)
> {
>   ...
>   // Use the garbage collector if requested.
>   if (manage) {
>     dispatch(gc, &GarbageCollector::manage<ProcessBase>, process);
>   }
>   // Add process to the run queue (so 'initialize' will get invoked).
>   enqueue(process);
>   VLOG(2) << "Spawned process " << process->self();
>   return process->self();
> }
> ------------------------------------------------------------------------------------------------------
> If a user spawns a process which is very short and sets 'manage' to true. It is likely that the pointer 'process' becomes a dangling pointer after enqueue(..) is called. As a result, a random segfault will be thrown when 'process->self()' is called.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira