[
https://issues.apache.org/jira/browse/YARN-11919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18053940#comment-18053940
]
ASF GitHub Bot commented on YARN-11919:
---------------------------------------
edwardcapriolo commented on code in PR #8177:
URL: https://github.com/apache/hadoop/pull/8177#discussion_r2721241340
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/container-executor.c:
##########
@@ -120,6 +120,25 @@ void set_nm_uid(uid_t user, gid_t group) {
nm_gid = group;
}
+//function to make a deep clone of passwd to serialized_passwd
+void deep_copy_passwd(const struct passwd *src, struct serialized_passwd
*dest){
+ dest->pw_name = strdup(src->pw_name);
+ dest->pw_dir = strdup(src->pw_dir);
+ dest->pw_shell = strdup(src->pw_shell);
+ dest->pw_uid = src->pw_uid;
+ dest->pw_gid = src->pw_gid;
+}
+
+void free_serialized_passwd(struct serialized_passwd * passwd){
Review Comment:
Because we create dynamic memory for this struct we free it. We give users a
simple clean destructor like method.
> linux-container-executor segfault with get_user_info
> ----------------------------------------------------
>
> Key: YARN-11919
> URL: https://issues.apache.org/jira/browse/YARN-11919
> Project: Hadoop YARN
> Issue Type: Bug
> Affects Versions: 3.4.2
> Reporter: Edward Capriolo
> Priority: Major
> Labels: pull-request-available
>
> The code in container executor for getting user information is slightly
> different then the recipe in the documentation. On alpine it repeatedly
> segfaults
> {code:java}
> rvn package -Pnative -Dmaven.skip.test=true -DskipTests -Dtar
> cp target/native/target/usr/local/bin/container-executor /usr/local/bin/
> chmod 6050 /usr/local/bin/container-executor
> chgrp hadoop /usr/local/bin/container-executor
> chmod 6050 /usr/local/bin/container-executor
> /usr/local/bin/container-executor nobody nobody 0
> application_1766935260716_0004 container_1766935260716_0004_02_000001
> /yarn-root/nm-local-dir/nmPriv
> {code}
> Result:
> {code:java}
> edgy
> main : command provided 0
> main : run as user is nobody
> main : requested yarn user is nobody
> main : validate_container_id
> main : huh
> validated command: INITIALIZE_CONTAINER
> init : set_user
> maybe free_user
> going to check user
> min id
> min id 1000
> Get user info
> passwd info
> got pwd
> Segmentation fault (core dumped)
> {code}
> The recipe here:
> [https://linux.die.net/man/3/getpwnam_r]
> has better success.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]