Opened at 2015-05-04T21:46:05Z
Closed at 2015-05-13T13:43:32Z
#2417 closed defect (fixed)
HOMEDRIVE and HOMEPATH environment variables may not be set on Windows 7+
| Reported by: | daira | Owned by: | daira |
|---|---|---|---|
| Priority: | major | Milestone: | 1.10.1 |
| Component: | code | Version: | 1.10.0 |
| Keywords: | windows regression blocks-release | Cc: | |
| Launchpad Bug: |
Description
The windows_expanduser function in src/allmydata/util/fileutil.py assumes that the current user account's home directory can be found by joining the %HOMEDRIVE% and %HOMEPATH% environment variables. This was correct on Windows XP, but on Windows 7+ (not sure about Vista), these variables are not set, resulting in this traceback:
Traceback (most recent call last):
File "C:\Users\Buildslave\tahoe\Daira_Win7-64_py2_7\build\support\Scripts\tahoe.pyscript", line 16, in <module>
load_entry_point('allmydata-tahoe==1.10.0.post340', 'console_scripts', 'tahoe')()
File "C:\Users\Buildslave\tahoe\Daira_Win7-64_py2_7\build\support\Lib\site-packages\setuptools-0.6c16dev6.egg\pkg_resources.py", line 320, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "C:\Users\Buildslave\tahoe\Daira_Win7-64_py2_7\build\support\Lib\site-packages\setuptools-0.6c16dev6.egg\pkg_resources.py", line 2265, in load_entry_point
return ep.load()
File "C:\Users\Buildslave\tahoe\Daira_Win7-64_py2_7\build\support\Lib\site-packages\setuptools-0.6c16dev6.egg\pkg_resources.py", line 1998, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "c:\users\buildslave\tahoe\daira_win7-64_py2_7\build\src\allmydata\scripts\runner.py", line 7, in <module>
from allmydata.scripts.common import get_default_nodedir
File "c:\users\buildslave\tahoe\daira_win7-64_py2_7\build\src\allmydata\scripts\common.py", line 20, in <module>
path = abspath_expanduser_unicode(u"~/.tahoe")
File "c:\users\buildslave\tahoe\daira_win7-64_py2_7\build\src\allmydata\util\fileutil.py", line 318, in abspath_expanduser_unicode
path = expanduser(path)
File "c:\users\buildslave\tahoe\daira_win7-64_py2_7\build\src\allmydata\util\fileutil.py", line 392, in expanduser
return windows_expanduser(path)
File "c:\users\buildslave\tahoe\daira_win7-64_py2_7\build\src\allmydata\util\fileutil.py", line 399, in windows_expanduser
home_drive = windows_getenv(u'HOMEDRIVE')
File "c:\users\buildslave\tahoe\daira_win7-64_py2_7\build\src\allmydata\util\fileutil.py", line 419, in windows_getenv
% (err, name))
OSError: Windows error 203 attempting to read size of environment variable u'HOMEDRIVE'
(Windows error 203 is ERROR_ENVVAR_NOT_FOUND.)
This is a regression since 1.10.0, therefore a release blocker. The correct behaviour is to use %USERPROFILE% instead.
Change History (2)
comment:1 Changed at 2015-05-09T23:48:33Z by daira
- Status changed from new to assigned
comment:2 Changed at 2015-05-13T13:43:32Z by Daira Hopwood <daira@…>
- Resolution set to fixed
- Status changed from assigned to closed
Note: See
TracTickets for help on using
tickets.

In 4794666df619fbfd7d36620163b51bda31322773/trunk: