Skip to content

Can't view testrun result #123

Closed
@otargowski

Description

@otargowski

The issue occurs when you view the submission related to a testrun.
Seems to be caused by checking whether the input file is a zip.
However, an internal server error is thrown regardless of the file format.

Traceback etc.
Environment:

Request Method: GET
Request URL: http://localhost:8000/c/example_contest/s/3/

Django Version: 3.2.16
Python Version: 3.7.16
Installed Applications:
('oioioi.contestlogo',
'oioioi.participants',
'oioioi.oi',
'oioioi.contestexcl',
'oioioi.testrun',
'oioioi.printing',
'oioioi.scoresreveal',
'oioioi.confirmations',
'oioioi.acm',
'oioioi.forum',
'oioioi.ctimes',
'oioioi.suspendjudge',
'oioioi.timeline',
'oioioi.balloons',
'oioioi.statistics',
'oioioi.publicsolutions',
'oioioi.testspackages',
'oioioi.globalmessage',
'debug_toolbar',
'oioioi.filetracker',
'oioioi.contests',
'oioioi.problems',
'oioioi.programs',
'oioioi.sinolpack',
'oioioi.questions',
'oioioi.rankings',
'oioioi.sioworkers',
'oioioi.analytics',
'oioioi.celery',
'oioioi.status',
'oioioi.su',
'oioioi.clock',
'oioioi.dashboard',
'oioioi.base',
'oioioi.maintenancemode',
'oioioi.evalmgr',
'oioioi.workers',
'oioioi.quizzes',
'oioioi._locale',
'djsupervisor',
'registration',
'django_extensions',
'compressor',
'dj_pagination',
'mptt',
'django.contrib.admin',
'django.contrib.admindocs',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.humanize',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.forms',
'django_otp',
'django_otp.plugins.otp_static',
'django_otp.plugins.otp_totp',
'two_factor',
'nested_admin',
'coreapi',
'rest_framework',
'rest_framework.authtoken',
'captcha',
'fontawesomefree')
Installed Middleware:
('debug_toolbar.middleware.DebugToolbarMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'oioioi.base.middleware.TimestampingMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_otp.middleware.OTPMiddleware',
'oioioi.base.middleware.AnnotateUserBackendMiddleware',
'oioioi.su.middleware.SuAuthenticationMiddleware',
'oioioi.su.middleware.SuFirstTimeRedirectionMiddleware',
'oioioi.base.middleware.UserInfoInErrorMessage',
'django.contrib.messages.middleware.MessageMiddleware',
'dj_pagination.middleware.PaginationMiddleware',
'oioioi.contests.middleware.CurrentContestMiddleware',
'oioioi.base.middleware.HttpResponseNotAllowedMiddleware',
'oioioi.base.middleware.CheckLoginMiddleware',
'oioioi.base.middleware.UserPreferencesMiddleware',
'oioioi.maintenancemode.middleware.MaintenanceModeMiddleware',
'oioioi.contestexcl.middleware.ExclusiveContestsMiddleware')

Traceback (most recent call last):
File "/home/oioioi/.local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/home/oioioi/.local/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.7/contextlib.py", line 74, in inner
return func(*args, **kwds)
File "/sio2/oioioi/oioioi/base/permissions.py", line 134, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/sio2/oioioi/oioioi/contests/views.py", line 343, in submission_view
header = controller.render_submission(request, submission)
File "/sio2/oioioi/oioioi/testrun/controllers.py", line 282, in render_submission
'input_is_zip': is_zipfile(sbm_testrun.input_file),
File "/usr/local/lib/python3.7/zipfile.py", line 201, in is_zipfile
result = _check_zipfile(fp=filename)
File "/usr/local/lib/python3.7/zipfile.py", line 187, in _check_zipfile
if _EndRecData(fp):
File "/usr/local/lib/python3.7/zipfile.py", line 259, in _EndRecData
fpin.seek(0, 2)
File "/home/oioioi/.local/lib/python3.7/site-packages/django/core/files/utils.py", line 46, in
seek = property(lambda self: self.file.seek)
File "/home/oioioi/.local/lib/python3.7/site-packages/django/core/files/utils.py", line 46, in
seek = property(lambda self: self.file.seek)

Exception Type: AttributeError at /c/example_contest/s/3/
Exception Value: '_FileLikeFromResponse' object has no attribute 'seek'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions