Details
-
Bug
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
0.23.0
-
None
-
0.23.0 on 64 bit linux
Description
When a Combiner is specified to runTask() its reduce() method may be called after its close() method has been called due to how the Combiner's containing object, CombineRunner, is closed after the TaskContextImpl's reducer member is closed (see TaskContextImpl::closeAll()).
I believe the fix is to delegate the Combiner's ownership to CombineRunner, making it responsible for calling the Combiner's close() method and deleting the Combiner instance.