Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

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-authAssignee: 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: gaKeywords: 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
Description of problem:
Customer patched OSP Director 7.3 / OSP 7.0.4 with python-django-horizon-2015.1.3-2.el7ost in order to fix some issues with horizon (https://bugzilla.redhat.com/show_bug.cgi?id=1326146)

Since the update, after a forced logout due to inactivity, the user cannot login again until he clears his browser cache.

It seems that when the user gets automatically logged out, all subsequent logins to horizon fail. In order to fix this issue, the user needs to clear his cache. This issue seems to be 100% reproducible on all browsers as long as one waits for the auto-logout. We verified this on Safari on a MAC.

Here is the stack trace:
I've "tailf" while reloading the page /var/log/horizon/horizon.log and found the error 

[root@overcloud-controller-0 horizon]# tailf horizon.log
2016-05-06 14:55:18,388 25371 INFO openstack_auth.forms Login successful for user "redhat-user".
2016-05-06 14:55:18,389 25371 ERROR django.request Internal Server Error: /dashboard/auth/login/
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.7/site-packages/django/views/decorators/debug.py", line 76, in sensitive_post_parameters_wrapper
    return view(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line 110, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/openstack_auth/views.py", line 111, in login
    **kwargs)
  File "/usr/lib/python2.7/site-packages/django/views/decorators/debug.py", line 76, in sensitive_post_parameters_wrapper
    return view(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line 110, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/contrib/auth/views.py", line 51, in login
    auth_login(request, form.get_user())
  File "/usr/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 102, in login
    if _get_user_session_key(request) != user.pk or (
  File "/usr/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 59, in _get_user_session_key
    return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY])
  File "/usr/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 969, in to_python
    params={'value': value},
ValidationError: [u"'f6575606c0c4443ba76212ee405a673c' value must be an integer."]

Which is logical when looking at 
File "/usr/lib/python2.7/site-packages/django/db/models/fields/__init__.py",
(...)
    def to_python(self, value):
        if value is None:
            return value
        try:
            return int(value)
        except (TypeError, ValueError):
            raise exceptions.ValidationError(
                self.error_messages['invalid'],
                code='invalid',
                params={'value': value},
            )

This needs an integer, and a UUID fails in here.

Looking at the packages which are involved:
[root@overcloud-controller-0 ~]# rpm -qf  /usr/lib/python2.7/site-packages/django/db/models/fields/__init__.py
python-django-1.8.7-1.el7.noarch
[root@overcloud-controller-0 ~]# rpm -qf /usr/lib/python2.7/site-packages/django/contrib/auth/__init__.py
python-django-1.8.7-1.el7.noarch
[root@overcloud-controller-0 ~]# rpm -qf /usr/lib/python2.7/site-packages/django/views/decorators/cache.py
python-django-1.8.7-1.el7.noarch
[root@overcloud-controller-0 ~]# rpm -qf /usr/lib/python2.7/site-packages/openstack_auth/views.py
python-django-openstack-auth-1.2.0-5.el7ost.noarch

Comment 1 Andreas Karis 2016-05-09 14:29:48 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

Comment 2 Andreas Karis 2016-05-09 14:43:40 UTC
"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.

Comment 4 Andreas Karis 2016-05-10 18:57:41 UTC
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.

Comment 5 Andreas Karis 2016-05-10 21:38:56 UTC
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

Comment 6 Andreas Karis 2016-05-10 23:37:46 UTC
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

Comment 8 Andreas Karis 2016-05-11 20:39:13 UTC
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

Comment 19 errata-xmlrpc 2016-06-01 12:28:53 UTC
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