Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Looks like the processing of each event queue in _processes_ is lacking the needed lock acquisition:
Future<Response> ProcessManager::_processes_(const Request&)
{
JSON::Array array;
synchronized (processes) {
foreachvalue (const ProcessBase* process, process_manager->processes) {
...
// XXX: This processes the event queue but does not lock process.
foreach (Event* event, process->events)
object.values["events"] = events;
array.values.push_back(object);
}
}
return OK(array);
}