Skip to content

HeartBeat vs. mapreduce.task.timeout doesn't consider "0 == infinite" case #426

Closed
@rusnyder

Description

@rusnyder

For the Hadoop config value "mapreduce.task.timeout" (or "mapred.task.timeout" for Hadoop 1), a value of 0 is the equivalent of disabling that timeout. However, the ES-Hadoop HeartBeat compares "mapred.task.timeout" to its own delay and throws an error if the heartbeat is greater than the task timeout.

I'm seeing this with 2.1.0.Beta3

org.elasticsearch.hadoop.mr.HeartBeat

class HeartBeat {
    ...
    HeartBeat(final Progressable progressable, Configuration cfg, TimeValue delay, final Log log) {
        Assert.notNull(progressable, "a valid progressable is required to report status to Hadoop");
        TimeValue tv = HadoopCfgUtils.getTaskTimeout(cfg);
        Assert.isTrue(tv.getSeconds() > delay.getSeconds(), "Hadoop timeout is shorter than the heartbeat");
        ...
    }
    ...
}

The assert should probably be or'ing w/ a "tv.getSeconds == 0" or something like that.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions