This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年03月09日 09:21 by arekm, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| issue14238.patch | aikinci, 2012年03月12日 21:44 | review | ||
| Messages (12) | |||
|---|---|---|---|
| msg155215 - (view) | Author: Arkadiusz Miśkiewicz (arekm) | Date: 2012年03月09日 09:21 | |
I'm trying to run python from UID which doesn't have entry in passwd database. This fails with: Traceback (most recent call last): File "/usr/share/python2.7/site.py", line 567, in <module> File "/usr/share/python2.7/site.py", line 549, in main File "/usr/share/python2.7/site.py", line 278, in addusersitepackages File "/usr/share/python2.7/site.py", line 253, in getusersitepackages File "/usr/share/python2.7/site.py", line 243, in getuserbase File "/usr/share/python2.7/sysconfig.py", line 522, in get_config_var File "/usr/share/python2.7/sysconfig.py", line 426, in get_config_vars File "/usr/share/python2.7/sysconfig.py", line 184, in _getuserbase File "/usr/share/python2.7/sysconfig.py", line 171, in joinuser File "/usr/share/python2.7/posixpath.py", line 260, in expanduser KeyError: 'getpwuid(): uid not found: 51' |
|||
| msg155216 - (view) | Author: Nadeem Vawda (nadeem.vawda) * (Python committer) | Date: 2012年03月09日 09:31 | |
This looks similar to a sporadic failure on the debian bigmem buildbot: http://www.python.org/dev/buildbot/all/builders/AMD64%20debian%20bigmem%203.x/builds/168/steps/test/logs/stdio ERROR: test_expanduser (test.test_posixpath.PosixPathTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/var/tmpfs/martin.vonloewis/3.x.loewis-parallel2/build/Lib/test/test_posixpath.py", line 305, in test_expanduser home = pwd.getpwuid(os.getuid()).pw_dir KeyError: 'getpwuid(): uid not found: 5025' |
|||
| msg155218 - (view) | Author: Georg Brandl (georg.brandl) * (Python committer) | Date: 2012年03月09日 09:37 | |
I agree -- there should be a guard here that just doesn't add user site directories if the lookup fails. |
|||
| msg155279 - (view) | Author: Éric Araujo (eric.araujo) * (Python committer) | Date: 2012年03月10日 02:14 | |
> there should be a guard here that just doesn't add user site directories if the lookup fails. Agreed too. site is easy to fix (I can do it or review a patch), but we also need to fix sysconfig; I think the right thing to do would be not to have a config var named 'userbase' when run from a UID without passwd entry. This implies that the functions listed under http://docs.python.org/library/sysconfig#installation-paths would also need to omit *user schemes. |
|||
| msg155465 - (view) | Author: Ali Ikinci (aikinci) | Date: 2012年03月12日 19:38 | |
I have started to work on this. |
|||
| msg155486 - (view) | Author: Ali Ikinci (aikinci) | Date: 2012年03月12日 21:44 | |
This patch fixes the issue but needs review. It is my first patch ever so be nice :) |
|||
| msg155488 - (view) | Author: Éric Araujo (eric.araujo) * (Python committer) | Date: 2012年03月12日 21:50 | |
Thanks you for your contribution! I hope you’ll find fun bugs to make patches for. Your patch looks too simplistic; in the discussion, we agreed that if the lookup fails, the site module should not add user site directories (see http://docs.python.org/library/site#site.USER_SITE or PEP 370), and your patch does not seem to do that. Moreover, this bug has repercussions on the sysconfig module (see my previous message), which needs edits too. BTW, I don’t know how we can test a patch for this bug; arekm, how do you run Python from a UID without passwd entry? |
|||
| msg155493 - (view) | Author: Arkadiusz Miśkiewicz (arekm) | Date: 2012年03月12日 22:04 | |
$ LC_ALL=C sudo -u '#9999' -g '#9999' /bin/sh -c 'unset HOME ; python -c ""' Traceback (most recent call last): File "/usr/share/python2.7/site.py", line 567, in <module> main() File "/usr/share/python2.7/site.py", line 549, in main known_paths = addusersitepackages(known_paths) File "/usr/share/python2.7/site.py", line 278, in addusersitepackages user_site = getusersitepackages() File "/usr/share/python2.7/site.py", line 253, in getusersitepackages user_base = getuserbase() # this will also set USER_BASE File "/usr/share/python2.7/site.py", line 243, in getuserbase USER_BASE = get_config_var('userbase') File "/usr/share/python2.7/sysconfig.py", line 522, in get_config_var return get_config_vars().get(name) File "/usr/share/python2.7/sysconfig.py", line 426, in get_config_vars _CONFIG_VARS['userbase'] = _getuserbase() File "/usr/share/python2.7/sysconfig.py", line 184, in _getuserbase return env_base if env_base else joinuser("~", ".local") File "/usr/share/python2.7/sysconfig.py", line 171, in joinuser return os.path.expanduser(os.path.join(*args)) File "/usr/share/python2.7/posixpath.py", line 260, in expanduser userhome = pwd.getpwuid(os.getuid()).pw_dir KeyError: 'getpwuid(): uid not found: 9999' |
|||
| msg155494 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2012年03月12日 22:07 | |
See also the issue #10496. |
|||
| msg155499 - (view) | Author: Ali Ikinci (aikinci) | Date: 2012年03月12日 22:18 | |
I would suggest that this issue is the same as http://bugs.python.org/issue10496 like Victor pointed out and would say close it because it is a duplicate. |
|||
| msg155529 - (view) | Author: Éric Araujo (eric.araujo) * (Python committer) | Date: 2012年03月13日 00:04 | |
Indeed. |
|||
| msg155531 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2012年03月13日 00:07 | |
> This patch fixes the issue but needs review. > It is my first patch ever so be nice :) Python should not decide what is the default home directory. The issue is in the site module: I proposed nonexistent_user.patch in the issue #10496 to fix the issue in the site module instead. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:27 | admin | set | github: 58446 |
| 2012年03月13日 00:07:40 | vstinner | set | messages: + msg155531 |
| 2012年03月13日 00:04:10 | eric.araujo | set | status: open -> closed resolution: duplicate messages: + msg155529 superseder: Python startup should not require passwd entry stage: needs patch -> resolved |
| 2012年03月12日 22:18:44 | aikinci | set | messages: + msg155499 |
| 2012年03月12日 22:07:27 | vstinner | set | nosy:
+ vstinner messages: + msg155494 |
| 2012年03月12日 22:04:56 | arekm | set | messages: + msg155493 |
| 2012年03月12日 21:50:50 | eric.araujo | set | messages: + msg155488 |
| 2012年03月12日 21:44:32 | aikinci | set | files:
+ issue14238.patch keywords: + patch messages: + msg155486 |
| 2012年03月12日 19:38:28 | aikinci | set | nosy:
+ aikinci messages: + msg155465 |
| 2012年03月10日 02:14:07 | eric.araujo | set | messages: + msg155279 |
| 2012年03月09日 16:41:56 | pitrou | set | keywords:
+ easy nosy: + eric.araujo versions: + Python 3.2 |
| 2012年03月09日 09:37:01 | georg.brandl | set | nosy:
+ georg.brandl messages: + msg155218 |
| 2012年03月09日 09:31:56 | nadeem.vawda | set | type: behavior components: + Library (Lib), - Interpreter Core versions: + Python 3.3 keywords: + buildbot nosy: + loewis, nadeem.vawda messages: + msg155216 stage: needs patch |
| 2012年03月09日 09:21:59 | arekm | create | |