flume-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLUME-2894) Flume components should stop in the correct order (graceful shutdown)
Date Thu, 03 May 2018 11:23:00 GMT

    [ https://issues.apache.org/jira/browse/FLUME-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16462290#comment-16462290
] 

ASF subversion and git services commented on FLUME-2894:
--------------------------------------------------------

Commit 62c59a68dad22b3ce6145c1a4ae26ffa3418fe32 in flume's branch refs/heads/trunk from [~lakshman]
[ https://git-wip-us.apache.org/repos/asf?p=flume.git;h=62c59a6 ]

FLUME-2894: Flume components should stop in the correct order (graceful shutdown)

This closes #101

Reviewers: Bessenyei Balazs Donat, Ferenc Szabo

(Laxman Ch via Ferenc Szabo)


> 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
>            Priority: Major
>             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
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@flume.apache.org
For additional commands, e-mail: issues-help@flume.apache.org


Mime
View raw message