[ https://issues.apache.org/jira/browse/YARN-11690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated YARN-11690: ---------------------------------- Labels: pull-request-available (was: ) > Update container executor to use CGROUP2_SUPER_MAGIC in cgroup 2 scenarios > -------------------------------------------------------------------------- > > Key: YARN-11690 > URL: https://issues.apache.org/jira/browse/YARN-11690 > Project: Hadoop YARN > Issue Type: Sub-task > Components: container-executor > Reporter: Benjamin Teke > Assignee: Benjamin Teke > Priority: Major > Labels: pull-request-available > > The container executor function {{write_pid_to_cgroup_as_root}} writes the > PID of the newly launched container to the correct cgroup.procs file. However > it checks if the file is mounted on a cgroup filesystem, and does that check > using the magic number, which differs for v1 and v2. This should handle v1 or > v2 filesystems as well. > {code:java} > /** > * Write the pid of the current process to the cgroup file. > * cgroup_file: Path to cgroup file where pid needs to be written to. > */ > static int write_pid_to_cgroup_as_root(const char* cgroup_file, pid_t pid) { > int rc = 0; > uid_t user = geteuid(); > gid_t group = getegid(); > if (change_effective_user(0, 0) != 0) { > rc = -1; > goto cleanup; > } > // statfs > struct statfs buf; > if (statfs(cgroup_file, &buf) == -1) { > fprintf(LOGFILE, "Can't statfs file %s as node manager - %s\n", > cgroup_file, > strerror(errno)); > rc = -1; > goto cleanup; > } else if (buf.f_type != CGROUP_SUPER_MAGIC) { > fprintf(LOGFILE, "Pid file %s is not located on cgroup filesystem\n", > cgroup_file); > rc = -1; > goto cleanup; > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org