[ https://issues.apache.org/jira/browse/FLUME-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15778226#comment-15778226 ]
Laxman commented on FLUME-2894: ------------------------------- As per my understanding with code, the shutdown order of components has been taken care and is being used when config change occurs. Method responsible for this shutdown order: org.apache.flume.node.Application#stopAllComponents We have *fixed and tested* in our environment these shutdown ordering issues by invoking this method from shutdown-hook. If the approach is fine, I can submit a quick patch we are already using. > 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: v1.6.0 > Reporter: Piotr Wiecek > > 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.3.4#6332)