[ https://issues.apache.org/jira/browse/FLUME-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ferenc Szabo updated FLUME-2894: -------------------------------- Fix Version/s: (was: 1.8.0) 1.9.0 > Flume components should stop in the correct order (graceful shutdown) > --------------------------------------------------------------------- > > Key: FLUME-2894 > URL: https://issues.apache.org/jira/browse/FLUME-2894 > Project: Flume > Issue Type: Bug > Components: Channel, Node, Sinks+Sources > Affects Versions: 1.6.0, 1.7.0 > Reporter: Piotr Wiecek > Assignee: Laxman > Fix For: 1.9.0 > > Attachments: FLUME-2894.patch > > > Flume components should be stopped in the right way: > * stop the sources (in order to not receiving further notifications), > * wait until all events within the channels are consumed by the sinks, > * stop the channels and the sinks. > Currently, the shutdown hook stops the components in a random manner. > E.g.: SINK, CHANNEL, SOURCE. > Components are stored in the HashMap: > {code:borderStyle=solid} > Map<LifecycleAware, Supervisoree> supervisedProcesses; > ... > supervisedProcesses = new HashMap<LifecycleAware, Supervisoree>(); > ... > @Override > public synchronized void stop() { > ... > for (final Entry<LifecycleAware, Supervisoree> entry : supervisedProcesses > .entrySet()) { > if (entry.getKey().getLifecycleState().equals(LifecycleState.START)) { > entry.getValue().status.desiredState = LifecycleState.STOP; > entry.getKey().stop(); > } > } > .... > {code} > The problems which we can have: > * not all Events will be consumed (Sink will be stopped first) > * Source will continue to accept messages even though other components are > stopped -- This message was sent by Atlassian JIRA (v6.4.14#64029)