You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Akira Ajisaka (Jira)" <ji...@apache.org> on 2019/12/05 06:50:00 UTC

[jira] [Resolved] (HADOOP-9491) HOD fails to run under python 2.6.1

     [ https://issues.apache.org/jira/browse/HADOOP-9491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Akira Ajisaka resolved HADOOP-9491.
-----------------------------------
    Fix Version/s:     (was: 1.1.2)
       Resolution: Won't Fix

branch-1 is EoL. Closing.

> HOD fails to run under python 2.6.1
> -----------------------------------
>
>                 Key: HADOOP-9491
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9491
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: contrib/hod
>    Affects Versions: 1.1.2
>         Environment: RHEL6.4, python-2.6.6-36.el6.x86_64
>            Reporter: Jonathan Barber
>            Priority: Critical
>         Attachments: HADOOP-9491.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> Running HOD from the hadoop-1.1.2-bin.tar.gz distribution with python 2.6.6 on RHEL6.4 fails with the output:
> $ ./contrib/hod/bin/hod -c contrib/hod/conf/hodrc list -d /tmp/hod-jbarber 
> /homes/jbarber/hadoop-1.1.2/contrib/hod/hodlib/Common/threads.py:19: DeprecationWarning: The popen2 module is deprecated.  Use the subprocess module.
>   from popen2 import Popen4, Popen3, MAXFD
> Traceback (most recent call last):
>   File "hod", line 411, in <module>
>     options=hodOptions) 
>   File "/homes/jbarber/hadoop-1.1.2/contrib/hod/hodlib/Common/setup.py", line 449, in __init__
>     self.read(configFile)
>   File "/usr/lib64/python2.6/ConfigParser.py", line 286, in read
>     self._read(fp, filename)
>   File "/usr/lib64/python2.6/ConfigParser.py", line 475, in _read
>     cursect = self._dict()
> TypeError: 'dict' object is not callable
> This error appears because the Hadoop "config" class is an instance of the  python ConfigParser class with a class variable called ._dict. However, the internals of the ConfigParser class appears to have been changed with later versions of python to have a method called ._dict() which now conflicts with the "config" classes usage.
> This can be fixed by changing all references in contrib/hod/hodlib/Common/setup.py from ._dict to ._hod_dict, e.g.:
> sed -i 's/\._dict/._hod_dict/' contrib/hod/hodlib/Common/setup.py
> I tested this change by repeating the hod "list" command successfully.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org