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

Haibo Chen updated YARN-6455:
-----------------------------
    Attachment: YARN-6455.00.patch

Upload a patch based on Joep's idea

> Enhance the timelinewriter.flush() race condition fix in YARN-6382
> ------------------------------------------------------------------
>
>                 Key: YARN-6455
>                 URL: https://issues.apache.org/jira/browse/YARN-6455
>             Project: Hadoop YARN
>          Issue Type: Improvement
>          Components: yarn
>    Affects Versions: 3.0.0-alpha2
>            Reporter: Haibo Chen
>            Assignee: Haibo Chen
>         Attachments: YARN-6455.00.patch
>
>
> YARN-6376 fixes timelinewriter.flush() race condition among concurrent 
> putEntities() calls and periodical flush by TimelineCollectorManager by 
> synchronizing on the writer object. 
> Synchronizing on the writer is still a little brittle there, because there is 
> a getWriter method which lets callers access the writer without synchronizing 
> on it. AppLevelTimelineCollector#AppLevelAggregator#agregate() does this in 
> line 152: getWriter().write(...)  In this case it doesn't flush, but if that 
> were to be added, that would re-introduce the race fixed in YARN-6376.
> Instead of exposing the writer, perhaps it would be better to have the 
> sub-classes call #putEntities instead. It defers to the private 
> writeTimelineEntities which does the same work to get the context:
> TimelineCollectorContext context = getTimelineEntityContext();



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to