Bug 1334405
| Summary: | python-django-horizon-2015.1.3-2.el7ost breaks portal after forced inactivity logout | ||
|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Andreas Karis <akaris> |
| Component: | python-django-openstack-auth | Assignee: | Itxaka <iserrano> |
| Status: | CLOSED ERRATA | QA Contact: | |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 7.0 (Kilo) | CC: | aortega, athomas, jliberma, mrunge, srevivo |
| Target Milestone: | ga | Keywords: | ZStream |
| Target Release: | 7.0 (Kilo) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | python-django-openstack-auth-1.2.0-7, python-django-horizon-2015.1.3-3 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-06-01 12:28:53 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Andreas Karis
2016-05-09 14:19:54 UTC
Hi, I looked at https://bugzilla.redhat.com/show_bug.cgi?id=1218894 and don't really understand the last part about failed qa for python-django-horizon-2015.1.3-2.el7ost Is it possible that this version of openstack auth fixed the issue? "python-django-openstack-auth-1.2.0-6.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report" FYI, I openend this BZ in order to continue work on this issue, instead of 1326146 Regards, Andreas "Itxaka 2016-05-09 10:40:21 EDT Thanks Andreas. That package is for fedora only, I submited the backports downstream to our RHOS package and Im in the middle of testing them. Unfortunately I have no idea what the other bug report (https://bugzilla.redhat.com/show_bug.cgi?id=1218894) stands with the failed QA, but that should not affect the patches to RHOS. Thanks for opening the other bug, will link all patches to that one." ============================== So I guess that these backports are what you mentioned earlier: "There is 3 patches involved that could fix this issue: Replace default user model PK: https://review.openstack.org/#/c/222478/ doa does not work with mysql (introduced by the patch above): https://review.openstack.org/#/c/228024/ This one is a simple change to the default local_settings.py.example, so its not really needed as a patch as it can be applied manually to the local_settings.py configuration Use the User model from d-o-a: https://review.openstack.org/#/c/222480/" So I should try these by manually fixing the code at the customer's site? That will be easy, I just want to make sure. Just reproduced the issue in a lab. This issue is not tied to the openstack dashboard session timeout. In fact, I lowered it to 1 minute, and it correctly logged me out and I could log back in. This seems to happen whenever keystone tokens time out, so by default, after 1 hour. ValidationError at /auth/login/ [u"'9be4dcc52817d746b629178bea8fc58bb0804dd8431fbca004242a8c10f2d284' value must be an integer."] Request Method: POST Request URL: http://10.0.0.4/dashboard/auth/login/ Django Version: 1.8.7 Exception Type: ValidationError Exception Value: [u"'9be4dcc52817d746b629178bea8fc58bb0804dd8431fbca004242a8c10f2d284' value must be an integer."] Exception Location: /usr/lib/python2.7/site-packages/django/db/models/fields/__init__.py in to_python, line 969 Python Executable: /usr/bin/python Python Version: 2.7.5 Python Path: ['/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../..', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages', '/usr/share/openstack-dashboard/openstack_dashboard'] Server time: Tue, 10 May 2016 18:54:06 +0000 Traceback Switch to copy-and-paste view /usr/lib/python2.7/site-packages/django/core/handlers/base.py in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) ... ▶ Local vars /usr/lib/python2.7/site-packages/django/views/decorators/debug.py in sensitive_post_parameters_wrapper return view(request, *args, **kwargs) ... ▶ Local vars /usr/lib/python2.7/site-packages/django/utils/decorators.py in _wrapped_view response = view_func(request, *args, **kwargs) ... ▶ Local vars /usr/lib/python2.7/site-packages/django/views/decorators/cache.py in _wrapped_view_func response = view_func(request, *args, **kwargs) ... ▶ Local vars /usr/lib/python2.7/site-packages/openstack_auth/views.py in login **kwargs) ... ▶ Local vars /usr/lib/python2.7/site-packages/django/views/decorators/debug.py in sensitive_post_parameters_wrapper return view(request, *args, **kwargs) ... ▶ Local vars /usr/lib/python2.7/site-packages/django/utils/decorators.py in _wrapped_view response = view_func(request, *args, **kwargs) ... ▶ Local vars /usr/lib/python2.7/site-packages/django/views/decorators/cache.py in _wrapped_view_func response = view_func(request, *args, **kwargs) ... ▶ Local vars /usr/lib/python2.7/site-packages/django/contrib/auth/views.py in login auth_login(request, form.get_user()) ... ▶ Local vars /usr/lib/python2.7/site-packages/django/contrib/auth/__init__.py in login if _get_user_session_key(request) != user.pk or ( ... ▶ Local vars /usr/lib/python2.7/site-packages/django/contrib/auth/__init__.py in _get_user_session_key return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY]) ... ▶ Local vars /usr/lib/python2.7/site-packages/django/db/models/fields/__init__.py in to_python params={'value': value}, ... ▶ Local vars Request information GET No GET data POST Variable Value fake_email u'********************' username u'********************' domain u'********************' fake_password u'********************' region u'********************' next u'********************' csrfmiddlewaretoken u'********************' password u'********************' FILES No FILES data COOKIES Variable Value csrftoken '63wBdBPBF5F8ZxyFsIk6gR9d13iNxzAS' login_region 'http://172.16.2.5:5000/v2.0' sessionid 'mg9ihjech864b6uzldwgfrdmgmfox0qu' META Variable Value mod_wsgi.listener_port '80' HTTP_COOKIE 'csrftoken=63wBdBPBF5F8ZxyFsIk6gR9d13iNxzAS; login_region="http://172.16.2.5:5000/v2.0"; sessionid=mg9ihjech864b6uzldwgfrdmgmfox0qu' mod_wsgi.listener_host '172.16.2.7' CONTEXT_DOCUMENT_ROOT '/var/www/' SERVER_SOFTWARE 'Apache/2.4.6 (Red Hat Enterprise Linux)' SCRIPT_NAME u'/dashboard' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' SERVER_SIGNATURE '' REQUEST_METHOD 'POST' PATH_INFO u'/auth/login/' SERVER_PROTOCOL 'HTTP/1.1' QUERY_STRING '' CONTENT_LENGTH '214' HTTP_USER_AGENT 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0' HTTP_REFERER 'http://10.0.0.4/dashboard/auth/login/?next=/dashboard/admin/aggregates/' SERVER_NAME '10.0.0.4' REMOTE_ADDR '172.16.2.9' mod_wsgi.queue_start '1462906443275930' mod_wsgi.request_handler 'wsgi-script' wsgi.url_scheme 'http' PATH_TRANSLATED '/var/www/auth/login/' SERVER_PORT '80' wsgi.multiprocess True mod_wsgi.input_chunked '0' SERVER_ADDR '172.16.2.7' DOCUMENT_ROOT '/var/www/' mod_wsgi.process_group 'dashboard' SCRIPT_FILENAME '/usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi' SERVER_ADMIN '[no address given]' wsgi.input <mod_wsgi.Input object at 0x7f43440a5ef0> HTTP_HOST '10.0.0.4' CONTEXT_PREFIX '' wsgi.multithread True mod_wsgi.callable_object 'application' REQUEST_URI '/dashboard/auth/login/' HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' wsgi.version (1, 0) GATEWAY_INTERFACE 'CGI/1.1' wsgi.run_once False wsgi.errors <mod_wsgi.Log object at 0x7f43440a5e30> REMOTE_PORT '54665' HTTP_ACCEPT_LANGUAGE 'en-US,en;q=0.5' REQUEST_SCHEME 'http' mod_wsgi.version (3, 4) CONTENT_TYPE 'application/x-www-form-urlencoded' mod_wsgi.application_group 'overcloud-controller-1.localdomain|/dashboard' mod_wsgi.script_reloading '1' wsgi.file_wrapper '' CSRF_COOKIE u'63wBdBPBF5F8ZxyFsIk6gR9d13iNxzAS' HTTP_ACCEPT_ENCODING 'gzip, deflate' Settings Using settings module openstack_dashboard.settings Setting Value COMPRESS_URL '/dashboard/static/' POLICY_FILES_PATH '/etc/openstack-dashboard' ADD_INSTALLED_APPS [] SECURE_SSL_REDIRECT False COMPRESS_TEMPLATE_FILTER_CONTEXT {u'STATIC_URL': '/dashboard/static/'} SECURE_BROWSER_XSS_FILTER False COMPRESS_DATA_URI_MAX_SIZE 1024 SITE_BRANDING 'OpenStack Dashboard' CSRF_COOKIE_SECURE False LANGUAGE_CODE 'en' ROOT_URLCONF 'openstack_dashboard.urls' MANAGERS () COMPRESS_CSS_HASHING_METHOD 'hash' SESSION_EXPIRE_AT_BROWSER_CLOSE True SILENCED_SYSTEM_CHECKS [] DEFAULT_CHARSET 'utf-8' IGNORABLE_404_URLS () SESSION_SERIALIZER 'django.contrib.sessions.serializers.PickleSerializer' STATIC_ROOT '/usr/share/openstack-dashboard/static' COMPRESS_CLOSURE_COMPILER_ARGUMENTS u'' COMPRESS_OUTPUT_DIR 'dashboard' USE_THOUSAND_SEPARATOR False COMPRESS_OFFLINE_MANIFEST u'manifest.json' ALLOWED_HOSTS ['*'] MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage' COMPRESS_YUI_JS_ARGUMENTS u'' SERVER_EMAIL 'root@localhost' SECURE_HSTS_SECONDS 0 STATICFILES_FINDERS ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder') SESSION_CACHE_ALIAS 'default' COMPRESS_CSSTIDY_ARGUMENTS u'--template=highest' SESSION_COOKIE_DOMAIN None SESSION_COOKIE_NAME 'sessionid' COMPRESS_YUGLIFY_JS_ARGUMENTS u'--terminal' TIME_INPUT_FORMATS ('%H:%M:%S', '%H:%M:%S.%f', '%H:%M') SECURE_REDIRECT_EXEMPT [] DATABASES {} EMAIL_SSL_KEYFILE u'********************' FILE_UPLOAD_DIRECTORY_PERMISSIONS None COMPRESS_YUI_BINARY u'java -jar yuicompressor.jar' FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_HANDLERS ('django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler') DEFAULT_CONTENT_TYPE 'text/html' COMPRESS_CSS_COMPRESSOR u'compressor.css.CssCompressor' APPEND_SLASH True FIRST_DAY_OF_WEEK 0 DATABASE_ROUTERS [] EMAIL_USE_SSL False OPENSTACK_NEUTRON_NETWORK {'enable_distributed_router': False, 'enable_firewall': False, 'enable_ha_router': False, 'enable_lb': False, 'enable_quotas': True, 'enable_security_group': True, 'enable_vpn': False} YEAR_MONTH_FORMAT 'F Y' COMPRESS_OFFLINE_TIMEOUT 31536000 STATICFILES_STORAGE 'django.contrib.staticfiles.storage.StaticFilesStorage' CACHES {'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': ['172.16.2.8:11211', '172.16.2.7:11211', '172.16.2.9:11211']}} SESSION_COOKIE_PATH '/' HORIZON_IMAGES_ALLOW_UPLOAD True COMPRESS_PARSER 'compressor.parser.HtmlParser' COMPRESS_CACHE_BACKEND u'default' SECURE_CONTENT_TYPE_NOSNIFF False MIDDLEWARE_CLASSES ('django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'horizon.middleware.HorizonMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware') USE_I18N True THOUSAND_SEPARATOR ',' SECRET_KEY u'********************' LANGUAGE_COOKIE_NAME 'horizon_language' DEFAULT_INDEX_TABLESPACE '' BIN_DIR '/usr/bin' LOGGING_CONFIG 'logging.config.dictConfig' SIGNING_BACKEND 'django.core.signing.TimestampSigner' OPENSTACK_API_VERSIONS u'********************' TEMPLATE_LOADERS ('django.template.loaders.app_directories.Loader', 'horizon.loaders.TemplateLoader') WSGI_APPLICATION None TEMPLATE_DEBUG True X_FRAME_OPTIONS 'SAMEORIGIN' CSRF_COOKIE_NAME 'csrftoken' POLICY_FILES {'compute': 'nova_policy.json', 'identity': 'keystone_policy.json', 'image': 'glance_policy.json', 'network': 'neutron_policy.json', 'orchestration': 'heat_policy.json', 'telemetry': 'ceilometer_policy.json', 'volume': 'cinder_policy.json'} FORCE_SCRIPT_NAME None USE_X_FORWARDED_HOST False EMAIL_TIMEOUT None SECURE_SSL_HOST None COMPRESS_CSSTIDY_BINARY u'csstidy' SESSION_COOKIE_SECURE False COMPRESS_DEBUG_TOGGLE None WEBROOT '/dashboard/' COMPRESS_VERBOSE False CSRF_COOKIE_DOMAIN None FILE_CHARSET 'utf-8' DEBUG True LANGUAGE_COOKIE_DOMAIN None COMPRESS_JS_FILTERS [u'compressor.filters.jsmin.JSMinFilter'] DEFAULT_FILE_STORAGE 'django.core.files.storage.FileSystemStorage' INSTALLED_APPS ['openstack_dashboard.dashboards.project', 'openstack_dashboard.dashboards.admin', 'openstack_dashboard.dashboards.identity', 'openstack_dashboard.dashboards.settings', 'openstack_dashboard.dashboards.redhat_access_plugin_openstack', 'openstack_dashboard.dashboards.theme', 'openstack_dashboard', 'django.contrib.contenttypes', 'django.contrib.auth', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django_pyscss', 'openstack_dashboard.django_pyscss_fix', 'compressor', 'horizon', 'openstack_auth'] LANGUAGES_BIDI ('he', 'ar', 'fa', 'ur') USE_L10N True COMPRESS_YUI_CSS_ARGUMENTS u'' SECURE_HSTS_INCLUDE_SUBDOMAINS False STATICFILES_DIRS [('horizon/lib/angular', '/usr/share/javascript/angular'), ('horizon/lib/angular', '/usr/share/javascript/angular_bootstrap'), ('horizon/lib/angular', '/usr/share/javascript/angular_lrdragndrop'), ('horizon/lib/angular', '/usr/share/javascript/angular_smart_table'), ('horizon/lib/bootstrap_datepicker', '/usr/share/javascript/bootstrap_datepicker'), ('bootstrap', '/usr/share/javascript/bootstrap_scss'), ('horizon/lib', '/usr/share/javascript/d3'), ('horizon/lib', '/usr/share/javascript/hogan'), ('horizon/lib/font-awesome', '/usr/lib/python2.7/site-packages/xstatic/pkg/font_awesome/data'), ('horizon/lib/jasmine', '/usr/share/javascript/jasmine'), ('horizon/lib/jquery', '/usr/lib/python2.7/site-packages/xstatic/pkg/jquery/data'), ('horizon/lib/jquery', '/usr/share/javascript/jquery_migrate'), ('horizon/lib/jquery', '/usr/share/javascript/jquery_quicksearch'), ('horizon/lib/jquery', '/usr/share/javascript/jquery_tablesorter'), ('horizon/lib/jsencrypt', '/usr/share/javascript/jsencrypt'), ('horizon/lib/magic_search', '/usr/share/javascript/magic_search'), ('horizon/lib/qunit', '/usr/share/javascript/qunit'), ('horizon/lib', '/usr/share/javascript/rickshaw'), ('horizon/lib', '/usr/share/javascript/spin'), ('horizon/lib', '/usr/share/javascript/termjs'), ('horizon/lib/jquery-ui', '/usr/share/javascript/jquery_ui'), ('custom', '/usr/share/openstack-dashboard/openstack_dashboard/static/themes/default')] CUSTOM_THEME '/usr/share/openstack-dashboard/openstack_dashboard/static/themes/default' SECURE_PROXY_SSL_HEADER None LOCAL_PATH '/usr/share/openstack-dashboard/openstack_dashboard/local' LANGUAGE_COOKIE_AGE None SESSION_COOKIE_HTTPONLY True DEBUG_PROPAGATE_EXCEPTIONS False INTERNAL_IPS () MONTH_DAY_FORMAT 'F j' OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT u'********************' LOGIN_URL '/dashboard/auth/login/' POLICY_CHECK_FUNCTION <function check at 0x7f4341af91b8> OPENSTACK_KEYSTONE_URL u'********************' SECURITY_GROUP_RULES {'all_icmp': {'from_port': '-1', 'ip_protocol': 'icmp', 'name': 'ALL ICMP', 'to_port': '-1'}, 'all_tcp': {'from_port': '1', 'ip_protocol': 'tcp', 'name': 'ALL TCP', 'to_port': '65535'}, 'all_udp': {'from_port': '1', 'ip_protocol': 'udp', 'name': 'ALL UDP', 'to_port': '65535'}, 'dns': {'from_port': '53', 'ip_protocol': 'tcp', 'name': 'DNS', 'to_port': '53'}, 'http': {'from_port': '80', 'ip_protocol': 'tcp', 'name': 'HTTP', 'to_port': '80'}, 'https': {'from_port': '443', 'ip_protocol': 'tcp', 'name': 'HTTPS', 'to_port': '443'}, 'imap': {'from_port': '143', 'ip_protocol': 'tcp', 'name': 'IMAP', 'to_port': '143'}, 'imaps': {'from_port': '993', 'ip_protocol': 'tcp', 'name': 'IMAPS', 'to_port': '993'}, 'ldap': {'from_port': '389', 'ip_protocol': 'tcp', 'name': 'LDAP', 'to_port': '389'}, 'ms_sql': {'from_port': '1433', 'ip_protocol': 'tcp', 'name': 'MS SQL', 'to_port': '1433'}, 'mysql': {'from_port': '3306', 'ip_protocol': 'tcp', 'name': 'MYSQL', 'to_port': '3306'}, 'pop3': {'from_port': '110', 'ip_protocol': 'tcp', 'name': 'POP3', 'to_port': '110'}, 'pop3s': {'from_port': '995', 'ip_protocol': 'tcp', 'name': 'POP3S', 'to_port': '995'}, 'rdp': {'from_port': '3389', 'ip_protocol': 'tcp', 'name': 'RDP', 'to_port': '3389'}, 'smtp': {'from_port': '25', 'ip_protocol': 'tcp', 'name': 'SMTP', 'to_port': '25'}, 'smtps': {'from_port': '465', 'ip_protocol': 'tcp', 'name': 'SMTPS', 'to_port': '465'}, 'ssh': {'from_port': '22', 'ip_protocol': 'tcp', 'name': 'SSH', 'to_port': '22'}} TIME_FORMAT 'P' TOKEN_TIMEOUT_MARGIN u'********************' COMPRESS_STORAGE u'compressor.storage.CompressorFileStorage' HORIZON_CONFIG {'ajax_queue_limit': 10, 'angular_modules': ['hz.dashboard'], 'auto_fade_alerts': {'delay': 3000, 'fade_duration': 1500, 'types': ['alert-success', 'alert-info']}, 'dashboards': ('project', 'admin', 'settings', 'identity', 'redhat_access_plugin_openstack', 'theme'), 'default_dashboard': 'project', 'exceptions': {'not_found': (<class 'keystoneclient.openstack.common.apiclient.exceptions.NotFound'>, <class 'cinderclient.exceptions.NotFound'>, <class 'novaclient.exceptions.NotFound'>, <class 'glanceclient.exc.NotFound'>, <class 'neutronclient.common.exceptions.NotFound'>, <class 'heatclient.exc.HTTPNotFound'>, <class 'troveclient.openstack.common.apiclient.exceptions.NotFound'>), 'recoverable': (<class 'keystoneclient.openstack.common.apiclient.exceptions.ClientException'>, <class 'keystoneclient.openstack.common.apiclient.exceptions.AuthorizationFailure'>, <class 'keystoneclient.openstack.common.apiclient.exceptions.Forbidden'>, <class 'cinderclient.exceptions.ClientException'>, <class 'cinderclient.exceptions.ConnectionError'>, <class 'cinderclient.exceptions.Forbidden'>, <class 'novaclient.exceptions.ClientException'>, <class 'novaclient.exceptions.Forbidden'>, <class 'glanceclient.exc.ClientException'>, <class 'neutronclient.common.exceptions.Forbidden'>, <class 'neutronclient.common.exceptions.NeutronClientException'>, <class 'swiftclient.exceptions.ClientException'>, <class 'heatclient.exc.HTTPForbidden'>, <class 'heatclient.exc.HTTPException'>, <class 'troveclient.openstack.common.apiclient.exceptions.ClientException'>, <class 'saharaclient.api.base.APIException'>, <class 'requests.exceptions.RequestException'>), 'unauthorized': (<class 'keystoneclient.openstack.common.apiclient.exceptions.Unauthorized'>, <class 'cinderclient.exceptions.Unauthorized'>, <class 'novaclient.exceptions.Unauthorized'>, <class 'glanceclient.exc.Unauthorized'>, <class 'neutronclient.common.exceptions.Unauthorized'>, <class 'heatclient.exc.HTTPUnauthorized'>, <class 'troveclient.openstack.common.apiclient.exceptions.Unauthorized'>)}, 'help_url': 'https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/7/index.html', 'js_files': ['dashboard/dashboard.module.js', 'dashboard/workflow/workflow.js', 'dashboard/cloud-services/cloud-services.js', 'dashboard/launch-instance/launch-instance.js', 'dashboard/launch-instance/launch-instance.model.js', 'dashboard/launch-instance/source/source.js', 'dashboard/launch-instance/flavor/flavor.js', 'dashboard/launch-instance/flavor/select-flavor-table.js', 'dashboard/launch-instance/network/network.js', 'dashboard/launch-instance/security-groups/security-groups.js', 'dashboard/launch-instance/keypair/keypair.js', 'dashboard/launch-instance/configuration/configuration.js', 'dashboard/launch-instance/configuration/load-edit.js'], 'js_spec_files': ['dashboard/dashboard.module.spec.js', 'dashboard/workflow/workflow.spec.js', 'dashboard/cloud-services/cloud-services.spec.js', 'dashboard/launch-instance/launch-instance.spec.js', 'dashboard/launch-instance/launch-instance.model.spec.js', 'dashboard/launch-instance/source/source.spec.js', 'dashboard/launch-instance/flavor/flavor.spec.js', 'dashboard/launch-instance/network/network.spec.js', 'dashboard/launch-instance/security-groups/security-groups.spec.js', 'dashboard/launch-instance/keypair/keypair.spec.js', 'dashboard/launch-instance/configuration/configuration.spec.js'], 'panel_customization': [], 'user_home': 'openstack_dashboard.views.get_user_home'} AUTH_USER_MODEL 'auth.User' DATE_INPUT_FORMATS ('%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y') COMPRESS_CSS_FILTERS ('compressor.filters.css_default.CssAbsoluteFilter',) AUTHENTICATION_BACKENDS ('openstack_auth.backend.KeystoneBackend',) EMAIL_HOST_PASSWORD u'********************' COMPRESS_REBUILD_TIMEOUT 2592000 PASSWORD_RESET_TIMEOUT_DAYS u'********************' SESSION_FILE_PATH None CACHE_MIDDLEWARE_ALIAS 'default' ROOT_PATH '/usr/share/openstack-dashboard/openstack_dashboard' SESSION_SAVE_EVERY_REQUEST False NUMBER_GROUPING 0 SESSION_ENGINE 'django.contrib.sessions.backends.cache' COMPRESS_YUGLIFY_BINARY u'yuglify' CSRF_FAILURE_VIEW 'django.views.csrf.csrf_failure' CSRF_COOKIE_PATH '/' COMPRESS_CACHE_KEY_FUNCTION u'********************' LOGIN_REDIRECT_URL '/dashboard' DECIMAL_SEPARATOR '.' COMPRESS_PRECOMPILERS (('text/less', 'lesscpy {infile}'), ('text/scss', 'django_pyscss.compressor.DjangoScssFilter')) COMPRESS_MTIME_DELAY 10 LOCALE_PATHS () TEMPLATE_STRING_IF_INVALID '' AUTHENTICATION_URLS ['openstack_auth.urls'] LOGOUT_URL '/dashboard/auth/logout/' EMAIL_USE_TLS False TEMPLATE_DIRS ('/usr/share/openstack-dashboard/openstack_dashboard/templates',) FIXTURE_DIRS () EMAIL_HOST 'localhost' DATE_FORMAT 'N j, Y' SESSION_COOKIE_MAX_SIZE 4093 MEDIA_ROOT '/usr/share/openstack-dashboard/media' DEFAULT_EXCEPTION_REPORTER_FILTER 'horizon.exceptions.HorizonReporterFilter' ADMINS () SESSION_TIMEOUT 1800 FORMAT_MODULE_PATH None DEFAULT_FROM_EMAIL 'webmaster@localhost' COMPRESS_ROOT '/usr/share/openstack-dashboard/static' OPENSTACK_KEYSTONE_DEFAULT_DOMAIN u'********************' MEDIA_URL '/dashboard/media/' DATETIME_FORMAT 'N j, Y, P' EMAIL_SUBJECT_PREFIX '[Django] ' OPENSTACK_KEYSTONE_BACKEND u'********************' API_RESULT_PAGE_SIZE u'********************' OPENSTACK_KEYSTONE_DEFAULT_ROLE u'********************' COMPRESS_JS_COMPRESSOR u'compressor.js.JsCompressor' DISALLOWED_USER_AGENTS () ALLOWED_INCLUDE_ROOTS () COMPRESS_MINT_DELAY 30 LOGGING {'disable_existing_loggers': False, 'formatters': {'normal': {'format': 'dashboard-%(name)s: %(levelname)s %(message)s'}, 'verbose': {'format': '%(asctime)s %(process)d %(levelname)s %(name)s %(message)s'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'level': 'INFO'}, 'file': {'class': 'logging.FileHandler', 'filename': '/var/log/horizon/horizon.log', 'formatter': 'verbose', 'level': 'INFO'}, 'null': {'class': 'django.utils.log.NullHandler', 'level': 'DEBUG'}, 'syslog': {'address': '/dev/log', 'class': 'logging.handlers.SysLogHandler', 'facility': 'local1', 'formatter': 'normal', 'level': 'INFO'}}, 'loggers': {'ceilometerclient': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'cinderclient': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'django': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'propagate': False}, 'glanceclient': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'heatclient': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'horizon': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'keystoneclient': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'neutronclient': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'nose.plugins.manager': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'novaclient': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'openstack_auth': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'openstack_dashboard': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'requests': {'handlers': ['null'], 'propagate': False}, 'swiftclient': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}, 'troveclient': {'handlers': ['file'], 'level': 'INFO', 'propagate': False}}, 'version': 1} PREPEND_WWW False SHORT_DATE_FORMAT 'm/d/Y' TEMPLATES [] TEST_RUNNER 'django_nose.NoseTestSuiteRunner' COMPRESS_ENABLED True OPENSTACK_HYPERVISOR_FEATURES {'can_set_mount_point': True, 'can_set_password': False} CACHE_MIDDLEWARE_KEY_PREFIX u'********************' COMPRESS_OFFLINE True TIME_ZONE 'UTC' COMPRESS_OFFLINE_CONTEXT {'HORIZON_CONFIG': {'ajax_queue_limit': 10, 'angular_modules': ['hz.dashboard'], 'auto_fade_alerts': {'delay': 3000, 'fade_duration': 1500, 'types': ['alert-success', 'alert-info']}, 'dashboards': ('project', 'admin', 'settings', 'identity', 'redhat_access_plugin_openstack', 'theme'), 'default_dashboard': 'project', 'exceptions': {'not_found': (<class 'keystoneclient.openstack.common.apiclient.exceptions.NotFound'>, <class 'cinderclient.exceptions.NotFound'>, <class 'novaclient.exceptions.NotFound'>, <class 'glanceclient.exc.NotFound'>, <class 'neutronclient.common.exceptions.NotFound'>, <class 'heatclient.exc.HTTPNotFound'>, <class 'troveclient.openstack.common.apiclient.exceptions.NotFound'>), 'recoverable': (<class 'keystoneclient.openstack.common.apiclient.exceptions.ClientException'>, <class 'keystoneclient.openstack.common.apiclient.exceptions.AuthorizationFailure'>, <class 'keystoneclient.openstack.common.apiclient.exceptions.Forbidden'>, <class 'cinderclient.exceptions.ClientException'>, <class 'cinderclient.exceptions.ConnectionError'>, <class 'cinderclient.exceptions.Forbidden'>, <class 'novaclient.exceptions.ClientException'>, <class 'novaclient.exceptions.Forbidden'>, <class 'glanceclient.exc.ClientException'>, <class 'neutronclient.common.exceptions.Forbidden'>, <class 'neutronclient.common.exceptions.NeutronClientException'>, <class 'swiftclient.exceptions.ClientException'>, <class 'heatclient.exc.HTTPForbidden'>, <class 'heatclient.exc.HTTPException'>, <class 'troveclient.openstack.common.apiclient.exceptions.ClientException'>, <class 'saharaclient.api.base.APIException'>, <class 'requests.exceptions.RequestException'>), 'unauthorized': (<class 'keystoneclient.openstack.common.apiclient.exceptions.Unauthorized'>, <class 'cinderclient.exceptions.Unauthorized'>, <class 'novaclient.exceptions.Unauthorized'>, <class 'glanceclient.exc.Unauthorized'>, <class 'neutronclient.common.exceptions.Unauthorized'>, <class 'heatclient.exc.HTTPUnauthorized'>, <class 'troveclient.openstack.common.apiclient.exceptions.Unauthorized'>)}, 'help_url': 'https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/7/index.html', 'js_files': ['dashboard/dashboard.module.js', 'dashboard/workflow/workflow.js', 'dashboard/cloud-services/cloud-services.js', 'dashboard/launch-instance/launch-instance.js', 'dashboard/launch-instance/launch-instance.model.js', 'dashboard/launch-instance/source/source.js', 'dashboard/launch-instance/flavor/flavor.js', 'dashboard/launch-instance/flavor/select-flavor-table.js', 'dashboard/launch-instance/network/network.js', 'dashboard/launch-instance/security-groups/security-groups.js', 'dashboard/launch-instance/keypair/keypair.js', 'dashboard/launch-instance/configuration/configuration.js', 'dashboard/launch-instance/configuration/load-edit.js'], 'js_spec_files': ['dashboard/dashboard.module.spec.js', 'dashboard/workflow/workflow.spec.js', 'dashboard/cloud-services/cloud-services.spec.js', 'dashboard/launch-instance/launch-instance.spec.js', 'dashboard/launch-instance/launch-instance.model.spec.js', 'dashboard/launch-instance/source/source.spec.js', 'dashboard/launch-instance/flavor/flavor.spec.js', 'dashboard/launch-instance/network/network.spec.js', 'dashboard/launch-instance/security-groups/security-groups.spec.js', 'dashboard/launch-instance/keypair/keypair.spec.js', 'dashboard/launch-instance/configuration/configuration.spec.js'], 'panel_customization': [], 'user_home': 'openstack_dashboard.views.get_user_home'}, 'STATIC_URL': '/dashboard/static/', 'WEBROOT': '/dashboard/'} COMPRESS_YUGLIFY_CSS_ARGUMENTS u'--terminal' EMAIL_BACKEND 'django.core.mail.backends.console.EmailBackend' COMPRESS_JINJA2_GET_ENVIRONMENT <function JINJA2_GET_ENVIRONMENT at 0x7f4340602938> DEFAULT_TABLESPACE '' TEMPLATE_CONTEXT_PROCESSORS ('django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.request', 'django.core.context_processors.media', 'django.core.context_processors.static', 'django.contrib.messages.context_processors.messages', 'horizon.context_processors.horizon', 'openstack_dashboard.context_processors.openstack') OPENSTACK_IMAGE_BACKEND {'image_formats': [('', <django.utils.functional.__proxy__ object at 0x7f43418f6cd0>), ('aki', <django.utils.functional.__proxy__ object at 0x7f43418f6d10>), ('ami', <django.utils.functional.__proxy__ object at 0x7f43418f6d50>), ('ari', <django.utils.functional.__proxy__ object at 0x7f43418f6d90>), ('iso', <django.utils.functional.__proxy__ object at 0x7f43418f6dd0>), ('ova', <django.utils.functional.__proxy__ object at 0x7f43418f6e10>), ('qcow2', <django.utils.functional.__proxy__ object at 0x7f43418f6e50>), ('raw', <django.utils.functional.__proxy__ object at 0x7f43418f6e90>), ('vdi', <django.utils.functional.__proxy__ object at 0x7f43418f6ed0>), ('vhd', <django.utils.functional.__proxy__ object at 0x7f43418f6f10>), ('vmdk', <django.utils.functional.__proxy__ object at 0x7f43418f6f50>)]} MIGRATION_MODULES {} SESSION_COOKIE_AGE 1209600 SETTINGS_MODULE 'openstack_dashboard.settings' USE_ETAGS False LANGUAGES (('de', 'German'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('es', 'Spanish'), ('fr', 'French'), ('ja', 'Japanese'), ('ko', 'Korean (Korea)'), ('pl', 'Polish'), ('pt-br', 'Portuguese (Brazil)'), ('ru', 'Russian'), ('zh-cn', 'Simplified Chinese'), ('zh-tw', 'Chinese (Taiwan)')) COMPRESS_CLOSURE_COMPILER_BINARY u'java -jar compiler.jar' FILE_UPLOAD_TEMP_DIR '/tmp' CSRF_COOKIE_AGE 31449600 STATIC_URL '/dashboard/static/' EMAIL_PORT 25 USE_TZ True SHORT_DATETIME_FORMAT 'm/d/Y P' TEST_NON_SERIALIZED_APPS [] PASSWORD_HASHERS u'********************' FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 ABSOLUTE_URL_OVERRIDES {} LANGUAGE_COOKIE_PATH '/' CUSTOM_THEME_PATH 'static/themes/default' CACHE_MIDDLEWARE_SECONDS 600 EMAIL_SSL_CERTFILE None CSRF_COOKIE_HTTPONLY False DATETIME_INPUT_FORMATS ('%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y') API_RESULT_LIMIT u'********************' EMAIL_HOST_USER '' OPENSTACK_CINDER_FEATURES {'enable_backup': False} You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. Hi, I applied the following patches manually in my lab: https://review.openstack.org/#/c/222478/ https://review.openstack.org/#/c/228024/ https://review.openstack.org/#/c/222480/ Now waiting for the timeout and checking if this happens again. in 60 - 90 minutes. If this happens again, then I will lower the keystone token timeouts to see if I can reproduce it faster. Andreas I applied the following patches manually in my lab: https://review.openstack.org/#/c/222478/ https://review.openstack.org/#/c/228024/ https://review.openstack.org/#/c/222480/ I waited for 1 hour, and hit the horizon, but not the keystone bug. I then waited for another 30 minutes, and this still looks good, with horizon logging me out, but still no signs of this issue. I will wait for another hour and will see how it goes then. However, I think that the 3 above patches fix our issue. Is it possible to create an RPM of these 3 patches, applied to: python-django-openstack-auth-1.2.0-5.el7ost.noarch Thanks! Andreas Hello, I attached the files which I applied on-site manually. Can you please create an RPM for this issue ASAP so that we can bring the customer's system into a clean state? Thanks, Andreas Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2016:1197 |