Modify

Opened 3 years ago

Closed 3 years ago

#8563 closed defect (fixed)

IndexError: list index out of range

Reported by: godblessyouamen@… Owned by: hasienda
Priority: highest Component: AccountManagerPlugin
Severity: blocker Keywords: login, htpasswd, auth
Cc: Trac Release: 0.12

Description

How to Reproduce

While doing a POST operation on /admin/accounts/users, Trac issued an internal error.

(please provide additional details here)

Request parameters:

{'__FORM_TOKEN': u'fff348fb504632cf87860733',
 'add': u' Add ',
 'cat_id': u'accounts',
 'email': u'aa@aa.com',
 'name': u'\uad00\ub9ac\uc790',
 'panel_id': u'users',
 'password': u'aa',
 'password_confirm': u'aa',
 'path_info': None,
 'user': u'admin'}

User agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)

System Information

Trac 0.12.2
Babel 0.9.5
Genshi 0.6
mod_wsgi 3.3 (WSGIProcessGroup WSGIApplicationGroup %{GLOBAL})
pysqlite 2.6.0
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)]
setuptools 0.6c11
SQLite 3.6.21
Subversion 1.6.15 (r1038135)
jQuery 1.4.2

Enabled Plugins

tracaccountmanager 0.3dev-r9923

Python Traceback

Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\trac\web\main.py", line 511, in _dispatch_request
    dispatcher.dispatch(req)
  File "C:\Python27\lib\site-packages\trac\web\main.py", line 237, in dispatch
    resp = chosen_handler.process_request(req)
  File "C:\Python27\lib\site-packages\trac\admin\web_ui.py", line 116, in process_request
    path_info)
  File "build\bdist.win32\egg\acct_mgr\admin.py", line 132, in render_admin_panel
    return self._do_users(req)
  File "build\bdist.win32\egg\acct_mgr\admin.py", line 211, in _do_users
    _create_user(req, self.env, check_permissions=False)
  File "build\bdist.win32\egg\acct_mgr\web_ui.py", line 145, in _create_user
    mgr.set_password(user, password)
  File "build\bdist.win32\egg\acct_mgr\api.py", line 263, in set_password
    if store.set_password(user, password, old_password):
  File "build\bdist.win32\egg\acct_mgr\htfile.py", line 53, in set_password
    self.userline(user, password))
  File "build\bdist.win32\egg\acct_mgr\htfile.py", line 107, in _update_file
    if lines[0].endswith('\r') and os.linesep == '\r':
IndexError: list index out of range

Attachments (0)

Change History (5)

comment:1 follow-up: Changed 3 years ago by hasienda

This is related to the changes in [9923]. Did you start with an empty password file? Otherwise the there should be at least one line and lines[0] shouldn't fail. Or it is related to Python2.7, since this code had not been tested with Python > 2.6 before. Clearly this needs a fix anyway.

What OS do you run Trac on? What where your last actions before facing this error? I just see a create_user attempt from the users admin page, right?

Thanks for taking your time to report this. I'd really like to fix this soonish, if we could work out what happened.

comment:2 Changed 3 years ago by hasienda

(In [9927]) AccountManagerPlugin: Handle empty password files without exception, refs #8563.

AccountManagerPlugin terminates each line, so there's no such thing
like an empty file because at least one linebreak is always retained.
But other application may not equally care for proper line endings.
So I've moved the existing check for data read length up
to prevent reading from a possibly empty list in case of a blank file.
Checking EOL style not in first but in the last line is the other change,
but certainly unrelated to the issue.

comment:3 follow-up: Changed 3 years ago by hasienda

  • Status changed from new to assigned

Would you give the last revision a try, please?

comment:4 in reply to: ↑ 1 Changed 3 years ago by godblessyou

Replying to hasienda:

This is related to the changes in [9923]. Did you start with an empty password file? Otherwise the there should be at least one line and lines[0] shouldn't fail. Or it is related to Python2.7, since this code had not been tested with Python > 2.6 before. Clearly this needs a fix anyway.

Password file was an empty.
I've added new blank line on password file.
Solved.
Thank you :)

It needs a fix.

What OS do you run Trac on? What where your last actions before facing this error? I just see a create_user attempt from the users admin page, right?

OS is Windows XP SP3.

Thanks for taking your time to report this. I'd really like to fix this soonish, if we could work out what happened.

comment:5 in reply to: ↑ 3 Changed 3 years ago by godblessyou

  • Resolution set to fixed
  • Status changed from assigned to closed

Replying to hasienda:

Would you give the last revision a try, please?

I've upgraded from last revision.

Thank you. Solved :D

Add Comment

Modify Ticket

Action
as closed .
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from hasienda. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.