You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Hemanth Yamijala (JIRA)" <ji...@apache.org> on 2009/04/06 08:38:12 UTC

[jira] Commented: (HADOOP-5462) Glibc double free exception thrown when chown syscall fails.

    [ https://issues.apache.org/jira/browse/HADOOP-5462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12695993#action_12695993 ] 

Hemanth Yamijala commented on HADOOP-5462:
------------------------------------------

Few comments on the patch:

- run_task_as_user: variable task_script is unused.
- run_task_as_user: when the pid_path variable is freed, it would be good to set it to NULL. Same holds for task_script_path if execlp fails.
- run_task_as_user: Regarding the removal of chown, though the call is not necessary, I am thinking a better idea is to actually do this *after* switching the user. I don't see why root privileges are required to do this operation. This way, the file would be written as owned by the child, with the right permissions (so, no need for the chmod as well).
- kill_user_task: Like above, I think we can have the reading of the pid file happen after switching the user. Coupled with that change, since the file will be written as the user itself, it can be read back by him as well.
- run_task_as_user: We are doing an fclose of LOGFILE (both explicitly and by the fcloseall call) before execlp, but afterwards, we are writing to it in some error conditions. Maybe we can just remove these prints. Coupled with the above changes to do more operations after switching the user, it may mean that we cannot log in even more cases. Because the error codes are indicative enough, I think this is fine though.


> Glibc double free exception thrown when chown syscall fails.
> ------------------------------------------------------------
>
>                 Key: HADOOP-5462
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5462
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>    Affects Versions: 0.21.0
>            Reporter: Sreekanth Ramakrishnan
>            Assignee: Sreekanth Ramakrishnan
>         Attachments: HADOOP-5462.patch
>
>
> When setuid script's chown call fails, a glibc double free exception is thrown. The reason for this is that file_handle which was opened to write the pid file is already closed and the cleanup: label tries to close it once again.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.