554: I get MultipleObjectsReturned when trying to view any diff

grossag
July 31, 2008
What's the URL of the page containing the problem?
http://reviewboard.eng.vmware.com/r/36076/diff/#index_header (although
James didn't see this)

What steps will reproduce the problem?
1. I just open the page.  It happens 100% of the time.

What is the expected output? What do you see instead?


What operating system are you using? What browser?
A newly-installed XP 32-bit system with Firefox 3.0.1.  I tried to restart
Firefox but it didn't fix it.  Oddly enough, IE 7 is reading it correctly.

Please provide any additional information below.

--- Title section ---

MultipleObjectsReturned at /r/36076/diff/
get() returned more than one Review -- it returned 2! Lookup parameters
were {'base_reply_to__isnull': True, 'review_request': <ReviewRequest:
Display a better error message if Recording fails.>, 'user': <User:
grossag>, 'public': False}
Request Method: 	GET
Request URL: 	http://reviewboard.eng.vmware.com/r/36076/diff/
Exception Type: 	MultipleObjectsReturned
Exception Value: 	get() returned more than one Review -- it returned 2!
Lookup parameters were {'base_reply_to__isnull': True, 'review_request':
<ReviewRequest: Display a better error message if Recording fails.>,
'user': <User: grossag>, 'public': False}
Exception Location: 
/usr//lib/python2.5/site-packages/django/db/models/query.py in get, line 265
Python Executable: 	/usr/bin/python
Python Version: 	2.5.1
Python Path: 	['/root', '/root/reviewboard',
'/usr/lib/python2.5/site-packages/setuptools-0.6c3-py2.5.egg',
'/usr/lib/python2.5/site-packages/flup-0.5-py2.5.egg',
'/usr/lib/python2.5/site-packages/Pygments-0.9dev-py2.5.egg',
'/usr/lib/python2.5/site-packages/JCC-1.6-py2.5-linux-i686.egg',
'/usr/lib/python2.5/site-packages/lucene-2.2.0_607331-py2.5-linux-i686.egg', '/usr/lib/python25.zip',
'/usr/lib/python2.5/lib-dynload', '/usr/lib/python2.5/site-packages/PIL',
'/usr/lib/python2.5/site-packages', '/usr/lib/python2.5',
'/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk',
'/usr/local/lib/python2.5/site-packages', '/var/lib/python-support/python2.5']
Server time: 	Thu, 24 Jul 2008 19:34:52 -0700

--- Traceback ---

Environment:

Request Method: GET
Request URL: http://reviewboard.eng.vmware.com/r/36076/diff/
Django Version: 0.97-pre-SVN-unknown
Python Version: 2.5.1
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.markup',
 'django.contrib.sites',
 'django.contrib.sessions',
 'djblets.datagrid',
 'djblets.util',
 'djblets.webapi',
 'reviewboard.accounts',
 'reviewboard.admin',
 'reviewboard.diffviewer',
 'reviewboard.iphone',
 'reviewboard.reports',
 'reviewboard.reviews',
 'reviewboard.scmtools',
 'reviewboard.webapi']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.middleware.doc.XViewMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Traceback:
File "/usr//lib/python2.5/site-packages/django/core/handlers/base.py" in
get_response
  82.                 response = callback(request, *callback_args,
**callback_kwargs)
File "/root/reviewboard/accounts/decorators.py" in _check
  24.             return view_func(*args, **kwargs)
File "/root/reviewboard/reviews/views.py" in diff
  273.                                     base_reply_to__isnull=True)
File "/root/reviewboard/djblets/util/misc.py" in get_object_or_none
  63.         return manager.get(*args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/db/models/manager.py" in get
  69.         return self.get_query_set().get(*args, **kwargs)
File "/usr//lib/python2.5/site-packages/django/db/models/query.py" in get
  265.             raise self.model.MultipleObjectsReturned, "get()
returned more than one %s -- it returned %s! Lookup parameters were %s" %
(self.model._meta.object_name, len(obj_list), kwargs)

Exception Type: MultipleObjectsReturned at /r/36076/diff/
Exception Value: get() returned more than one Review -- it returned 2!
Lookup parameters were {'base_reply_to__isnull': True, 'review_request':
<ReviewRequest: Display a better error message if Recording fails.>,
'user': <User: grossag>, 'public': False}

--- Request information ---

Request information
GET

No GET data
POST

No POST data
COOKIES
Variable 	Value
sessionid 	
'8e5d0499b3e69925fe88626710319345'
META
Variable 	Value
DOCUMENT_ROOT 	
'/root/reviewboard/htdocs/'
GATEWAY_INTERFACE 	
'CGI/1.1'
HTTP_ACCEPT 	
'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_CHARSET 	
'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING 	
'gzip,deflate'
HTTP_ACCEPT_LANGUAGE 	
'en-us,en;q=0.5'
HTTP_CONNECTION 	
'keep-alive'
HTTP_COOKIE 	
'sessionid=8e5d0499b3e69925fe88626710319345'
HTTP_HOST 	
'reviewboard.eng.vmware.com'
HTTP_KEEP_ALIVE 	
'300'
HTTP_USER_AGENT 	
'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1)
Gecko/2008070208 Firefox/3.0.1'
PATH 	
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games'
PATH_INFO 	
'/r/36076/diff/'
PATH_TRANSLATED 	
'/root/reviewboard/htdocs/reviewboard.fcgi/r/36076/diff/'
QUERY_STRING 	
''
REMOTE_ADDR 	
'10.114.12.196'
REMOTE_PORT 	
'3073'
REQUEST_METHOD 	
'GET'
REQUEST_URI 	
'/r/36076/diff/'
SCRIPT_FILENAME 	
'/root/reviewboard/htdocs/reviewboard.fcgi'
SCRIPT_NAME 	
''
SCRIPT_URI 	
'http://reviewboard.eng.vmware.com/r/36076/diff/'
SCRIPT_URL 	
'/r/36076/diff/'
SERVER_ADDR 	
'10.18.66.1'
SERVER_ADMIN 	
'[no address given]'
SERVER_NAME 	
'reviewboard.eng.vmware.com'
SERVER_PORT 	
'80'
SERVER_PROTOCOL 	
'HTTP/1.1'
SERVER_SIGNATURE 	
'<address>Apache/2.2.3 (Ubuntu) mod_fastcgi/2.4.2 mod_python/3.2.10
Python/2.5.1c1 Server at reviewboard.eng.vmware.com Port 80</address>\n'
SERVER_SOFTWARE 	
'Apache/2.2.3 (Ubuntu) mod_fastcgi/2.4.2 mod_python/3.2.10 Python/2.5.1c1'
wsgi.errors 	
<flup.server.fcgi_base.TeeOutputStream object at 0x8852a0c>
wsgi.input 	
<flup.server.fcgi_base.InputStream object at 0x87e8e0c>
wsgi.multiprocess 	
True
wsgi.multithread 	
False
wsgi.run_once 	
False
wsgi.url_scheme 	
'http'
wsgi.version 	
(1, 0)
Settings
Using settings module reviewboard.settings
Setting 	Value
ABSOLUTE_URL_OVERRIDES 	
{}
ADMINS 	
(('David Trowbridge', 'davidt@vmware.com'), ('Christian Hammond',
'christian@vmware.com'))
ADMIN_FOR 	
()
ADMIN_MEDIA_PREFIX 	
'/media/admin/'
ALLOWED_INCLUDE_ROOTS 	
()
APPEND_SLASH 	
True
AUTHENTICATION_BACKENDS 	
('reviewboard.accounts.backends.NISBackend',
'django.contrib.auth.backends.ModelBackend')
AUTH_PROFILE_MODULE 	
'accounts.Profile'
BANNED_IPS 	
()
BUGTRACKER_URL 	
'http://bugzilla.eng.vmware.com/show_bug.cgi?id=%s'
BUILTIN_AUTH 	
False
CACHE_BACKEND 	
'memcached://127.0.0.1:11211/'
CACHE_EXPIRATION_TIME 	
2592000
CACHE_MIDDLEWARE_KEY_PREFIX 	
''
CACHE_MIDDLEWARE_SECONDS 	
600
COMMENTS_ALLOW_PROFANITIES 	
False
COMMENTS_BANNED_USERS_GROUP 	
None
COMMENTS_FIRST_FEW 	
0
COMMENTS_MODERATORS_GROUP 	
None
COMMENTS_SKETCHY_USERS_GROUP 	
None
DATABASE_ENGINE 	
'mysql'
DATABASE_HOST 	
''
DATABASE_NAME 	
'reviewboard'
DATABASE_OPTIONS 	
{}
DATABASE_PASSWORD 	
'********************'
DATABASE_PORT 	
''
DATABASE_USER 	
'root'
DATETIME_FORMAT 	
'N j, Y, P'
DATE_FORMAT 	
'N j, Y'
DEBUG 	
True
DEFAULT_CHARSET 	
'utf-8'
DEFAULT_CONTENT_TYPE 	
'text/html'
DEFAULT_FROM_EMAIL 	
'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE 	
''
DEFAULT_REPOSITORY_PATH 	
None
DEFAULT_TABLESPACE 	
''
DIFFVIEWER_PAGINATE_BY 	
30
DIFFVIEWER_PAGINATE_ORPHANS 	
5
DIFF_CONTEXT_COLLAPSE_THRESHOLD 	
13
DIFF_CONTEXT_NUM_LINES 	
5
DIFF_INCLUDE_SPACE_PATTERNS 	
[]
DIFF_SYNTAX_HIGHLIGHTING 	
True
DISALLOWED_USER_AGENTS 	
()
DOMAIN_METHOD 	
'http'
EMAIL_HOST 	
'smtp.vmware.com'
EMAIL_HOST_PASSWORD 	
'********************'
EMAIL_HOST_USER 	
''
EMAIL_PORT 	
25
EMAIL_SUBJECT_PREFIX 	
'[Django] '
EMAIL_USE_TLS 	
False
ENABLE_SEARCH 	
True
FILE_CHARSET 	
'utf-8'
FIXTURE_DIRS 	
()
HTDOCS_ROOT 	
'/root/reviewboard/htdocs'
IGNORABLE_404_ENDS 	
('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php')
IGNORABLE_404_STARTS 	
('/cgi-bin/', '/_vti_bin', '/_vti_inf')
INSTALLED_APPS 	
['django.contrib.admin', 'django.contrib.auth',
'django.contrib.contenttypes', 'django.contrib.markup',
'django.contrib.sites', 'django.contrib.sessions', 'djblets.datagrid',
'djblets.util', 'djblets.webapi', 'reviewboard.accounts',
'reviewboard.admin', 'reviewboard.diffviewer', 'reviewboard.iphone',
'reviewboard.reports', 'reviewboard.reviews', 'reviewboard.scmtools',
'reviewboard.webapi']
INTERNAL_IPS 	
()
JING_PATH 	
'/usr/bin/jing'
LANGUAGES 	
(('ar', 'Arabic'), ('bn', 'Bengali'), ('bg', 'Bulgarian'), ('ca',
'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de',
'German'), ('el', 'Greek'), ('en', 'English'), ('es', 'Spanish'), ('es-ar',
'Argentinean Spanish'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi',
'Finnish'), ('fr', 'French'), ('ga', 'Irish'), ('gl', 'Galician'), ('hu',
'Hungarian'), ('he', 'Hebrew'), ('hr', 'Croatian'), ('is', 'Icelandic'),
('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('ko',
'Korean'), ('km', 'Khmer'), ('kn', 'Kannada'), ('lv', 'Latvian'), ('mk',
'Macedonian'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('pl', 'Polish'),
('pt', 'Portugese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'),
('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sr',
'Serbian'), ('sv', 'Swedish'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tr',
'Turkish'), ('uk', 'Ukrainian'), ('zh-cn', 'Simplified Chinese'), ('zh-tw',
'Traditional Chinese'))
LANGUAGES_BIDI 	
('he', 'ar', 'fa')
LANGUAGE_CODE 	
'en-us'
LANGUAGE_COOKIE_NAME 	
'django_language'
LOCALE_PATHS 	
()
LOGIN_REDIRECT_URL 	
'/accounts/profile/'
LOGIN_URL 	
'/account/login'
LOGOUT_URL 	
'/accounts/logout/'
MANAGERS 	
('Example Joe', 'admin@example.com')
MEDIA_ROOT 	
'/root/reviewboard/htdocs/media'
MEDIA_URL 	
'/media/'
MIDDLEWARE_CLASSES 	
('django.middleware.common.CommonMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware')
MONTH_DAY_FORMAT 	
'F j'
NIS_EMAIL_DOMAIN 	
'vmware.com'
PREPEND_WWW 	
False
PROFANITIES_LIST 	
'********************'
REQUIRE_SITEWIDE_LOGIN 	
False
REVIEWBOARD_ROOT 	
'/root/reviewboard'
ROOT_URLCONF 	
'djblets.util.rooturl'
SCMTOOL_BACKEND 	
'reviewboard.scmtools.perforce_vmware.VMwarePerforceTool'
SCMTOOL_REPOPATH 	
''
SEARCH_INDEX 	
'/root/reviewboard/search-index'
SECRET_KEY 	
'********************'
SEND_BROKEN_LINK_EMAILS 	
False
SEND_REVIEW_MAIL 	
True
SERVER_EMAIL 	
'root@localhost'
SESSION_COOKIE_AGE 	
1209600
SESSION_COOKIE_DOMAIN 	
None
SESSION_COOKIE_NAME 	
'sessionid'
SESSION_COOKIE_PATH 	
'/'
SESSION_COOKIE_SECURE 	
False
SESSION_ENGINE 	
'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE 	
False
SESSION_FILE_PATH 	
None
SESSION_SAVE_EVERY_REQUEST 	
False
SETTINGS_MODULE 	
'reviewboard.settings'
SITE_ID 	
1
SITE_ROOT 	
'/'
SITE_ROOT_URLCONF 	
'reviewboard.urls'
TEMPLATE_CONTEXT_PROCESSORS 	
('django.core.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.request',
'djblets.util.context_processors.settingsVars',
'djblets.util.context_processors.siteRoot')
TEMPLATE_DEBUG 	
True
TEMPLATE_DIRS 	
('/root/reviewboard/templates',)
TEMPLATE_LOADERS 	
('django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source')
TEMPLATE_STRING_IF_INVALID 	
''
TEST_DATABASE_CHARSET 	
None
TEST_DATABASE_COLLATION 	
None
TEST_DATABASE_NAME 	
None
TEST_RUNNER 	
'reviewboard.test.runner'
TIME_FORMAT 	
'P'
TIME_ZONE 	
'US/Pacific'
TRANSACTIONS_MANAGED 	
False
URL_VALIDATOR_USER_AGENT 	
u'Django/0.97-pre-SVN-unknown (http://www.djangoproject.com)'
USE_ETAGS 	
False
USE_I18N 	
True
WEB_API_ENCODERS 	
('djblets.webapi.core.BasicAPIEncoder',
'reviewboard.webapi.json.ReviewBoardAPIEncoder')
grossag
#1 grossag
I just found that this happens when I use IE 7 also.  But the weird thing is that it
only happens when I am logged in as myself.  If I am not logged in, I can view the
diff just fine.
chipx86
#2 chipx86
Odd that I just got the e-mail for this, but I think we fixed this for you a few days
ago. Come bug me if I'm wrong (I fixed a handful of these when the server went down).
  • +Fixed
  • +VMware
grossag
#3 grossag
Yeah, you fixed it for me.  Thanks for the help.