Projet

Général

Profil

Development #32225

Erreur sur la vue globale sur la plate-forme de validation

Ajouté par Pierre Cros il y a environ 5 ans. Mis à jour il y a environ 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
12 avril 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

Description

https://demarches-validation.test.entrouvert.org/backoffice/management/listing
Me donne une trace :

Exception:
type = '<class 'psycopg2.ProgrammingError'>', value = 'relation "wcs_all_forms" does not exist
LINE 1: SELECT count(*) FROM wcs_all_forms WHERE status != 'draft' A...
^
'

Stack trace (most recent call first):
File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 905, in count
903 sql_statement += ' WHERE ' + ' AND '.join(where_clauses)
904 conn, cur = get_connection_and_cursor()

905 cur.execute(sql_statement, parameters)

906 count = cur.fetchone()[0]
907 conn.commit() locals:
clause = [<qommon.storage.NotEqual object at 0x7ff39d6024d0>, <qommon.storage.Equal object at 0x7ff39c955c90>, <qommon.storage.Intersects object at 0x7ff39d6a9390>]
cls = <class 'wcs.sql.AnyFormData'>
conn = <connection object at 0x7ff39c5494b0; dsn: 'dbname=wcs_demarches_validation_test_entrouvert_org user=wcs password=xxxxxxxxxxxxxxxx host=test.saas.entrouvert.org.clusters.entrouvert.org port=5432', closed: 0>
cur = <cursor object at 0x7ff39ca7bed8; closed: 0>
func_clause = None
parameters = {'c140684579439344': False, 'c140684508646592': 'draft', 'c140684296828400': ['logged-users', '86b0ce3e5d3242a09c1e47f3da85556f', '89cb20fca18440e982a87148534fba3c', '53c6f4ed40dc44049123f287bd54d420', '350aaf5a854048afa81ea6aaa911269c', '602ae757705348d1b947dbc98d683058', '763675fc73e741bfb86276bba85875e8', 'c8f0950706e44debbc6c69d95ca5152f', '2b99efe08ac7426cac729ea209746cd5', 'da094aae5b564e50960fb419a9ddef48', 'd2788d7bb35142029ca4bc8deaf9a0ac']}
sql_statement = 'SELECT count(*) FROM wcs_all_forms WHERE status != s AND is_at_endpoint = %(c140684579439344)s AND actions_roles_array &x%x s'
where_clauses = ['status != %(c140684508646592)s', 'is_at_endpoint = %(c140684579439344)s', 'actions_roles_array &x%x
%(c140684296828400)s'] File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 348, in f
346 except psycopg2.Error:
347 get_connection().rollback()

348 raise

349 return f
350 locals:
args = (<class 'wcs.sql.AnyFormData'>, [<qommon.storage.NotEqual object at 0x7ff39d6024d0>, <qommon.storage.Equal object at 0x7ff39c955c90>, <qommon.storage.Intersects object at 0x7ff39d6a9390>])
func = <function count at 0x7ff39dade6e0>
kwargs = {} File "/usr/lib/python2.7/dist-packages/wcs/backoffice/management.py", line 843, in listing
841
842 criterias = self.get_global_listing_criterias()

843 total_count = sql.AnyFormData.count(criterias)

844 if offset > total_count:
845 get_request().form['offset'] = '0' locals:
criterias = [<qommon.storage.NotEqual object at 0x7ff39d6024d0>, <qommon.storage.Equal object at 0x7ff39c955c90>, <qommon.storage.Intersects object at 0x7ff39d6a9390>]
limit = 20
offset = 0
order_by = '-receipt_time'
self = <wcs.backoffice.management.ManagementDirectory object at 0x7ff3a74fdbd0>
sql = <module 'wcs.sql' from '/usr/lib/python2.7/dist-packages/wcs/sql.pyc'> File "/usr/lib/python2.7/dist-packages/quixote/directory.py", line 67, in q_traverse
65 raise TraversalError
66 elif hasattr(obj, '
_call__'):

67 return obj()

68 else:
69 return obj locals:
component = 'listing'
name = 'listing'
obj = <bound method ManagementDirectory.listing of <wcs.backoffice.management.ManagementDirectory object at 0x7ff3a74fdbd0>>
path = []
self = <wcs.backoffice.management.ManagementDirectory object at 0x7ff3a74fdbd0> File "/usr/lib/python2.7/dist-packages/wcs/backoffice/management.py", line 453, in _q_traverse
451 def _q_traverse(self, path):
452 get_response().breadcrumb.append(('management/', _('Management')))

453 return super(ManagementDirectory, self)._q_traverse(path)

454
455 def _q_index(self): locals:
path = ['listing']
self = <wcs.backoffice.management.ManagementDirectory object at 0x7ff3a74fdbd0> File "/usr/lib/python2.7/dist-packages/quixote/directory.py", line 63, in _q_traverse
61 if path:
62 if hasattr(obj, '_q_traverse'):

63 return obj._q_traverse(path)

64 else:
65 raise TraversalError locals:
component = 'management'
name = None
obj = <wcs.backoffice.management.ManagementDirectory object at 0x7ff3a74fdbd0>
path = ['listing']
self = <auquotidien.modules.backoffice.BackofficeRootDirectory object at 0x7ff39d78d7d0> File "/usr/lib/python2.7/dist-packages/quixote/directory.py", line 91, in _q_traverse
89 def _q_traverse(self, path):
90 self._q_access()

91 return super(AccessControlled, self)._q_traverse(path)

92
93 locals:
path = ['management', 'listing']
self = <auquotidien.modules.backoffice.BackofficeRootDirectory object at 0x7ff39d78d7d0> File "/usr/lib/python2.7/dist-packages/wcs/backoffice/root.py", line 79, in _q_traverse
77 pass
78 get_response().add_javascript(['jquery.js', 'qommon.js', 'gadjo.js'])

79 return super(RootDirectory, self)._q_traverse(path)

80
81 @classmethod locals:
path = ['management', 'listing']
self = <auquotidien.modules.backoffice.BackofficeRootDirectory object at 0x7ff39d78d7d0> File "/usr/lib/python2.7/dist-packages/quixote/directory.py", line 63, in _q_traverse
61 if path:
62 if hasattr(obj, '_q_traverse'):

63 return obj._q_traverse(path)

64 else:
65 raise TraversalError locals:
component = 'backoffice'
name = 'backoffice'
obj = <auquotidien.modules.backoffice.BackofficeRootDirectory object at 0x7ff39d78d7d0>
path = ['management', 'listing']
self = <auquotidien.modules.root.AlternateRootDirectory object at 0x7ff3a47342d0> File "/usr/lib/python2.7/dist-packages/auquotidien/modules/root.py", line 845, in _q_traverse
843 return redirect('%s%s/%s' % (base_url, f.category.url_name, uri_rest))
844

845 raise e

846
847 locals:
path = ['backoffice', 'management', 'listing']
response = <wcs.qommon.http_response.HTTPResponse instance at 0x7ff39caab4d0>
self = <auquotidien.modules.root.AlternateRootDirectory object at 0x7ff3a47342d0> File "/usr/lib/python2.7/dist-packages/quixote/publish.py", line 253, in try_publish
251 permanent=True)
252 components = path[1:].split('/')

253 output = self.root_directory._q_traverse(components)

254 # The callable ran OK, commit any changes to the session
255 self.finish_successful_request() locals:
components = ['backoffice', 'management', 'listing']
path = '/backoffice/management/listing'
request = <wcs.compat.CompatHTTPRequest instance at 0x7ff39cd3bcf8>
self = <wcs.compat.CompatWcsPublisher object at 0x7ff3a4734310> File "/usr/lib/python2.7/dist-packages/wcs/views.py", line 42, in get_context_data
40 get_publisher().session_manager.finish_successful_request()
41 self.quixote_response = get_request().response

42 context.update(template.get_decorate_vars(body, get_response(), generate_breadcrumb=True))

43
44 return context locals:
context = {u'view': <wcs.views.Backoffice object at 0x7ff39ca4f950>}
kwargs = {}
self = <wcs.views.Backoffice object at 0x7ff39ca4f950> File "/usr/lib/python2.7/dist-packages/wcs/compat.py", line 57, in get
55 self.quixote_response = get_request().response
56 except Exception as exc:

57 context = {'body': get_publisher().finish_failed_request()}

58 self.quixote_response = get_request().response
59 locals:
args = ()
exc = ProgrammingError('relation "wcs_all_forms" does not exist\nLINE 1: SELECT count(*) FROM wcs_all_forms WHERE status != \'draft\' A...\n ^\n',)
kwargs = {}
request = <WSGIRequest: GET '/backoffice/management/listing'>
self = <wcs.views.Backoffice object at 0x7ff39ca4f950> File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 88, in dispatch
86 else:
87 handler = self.http_method_not_allowed

88 return handler(request, *args, **kwargs)

89
90 def http_method_not_allowed(self, request, *args, **kwargs): locals:
args = ()
handler = <bound method Backoffice.get of <wcs.views.Backoffice object at 0x7ff39ca4f950>>
kwargs = {}
request = <WSGIRequest: GET '/backoffice/management/listing'>
self = <wcs.views.Backoffice object at 0x7ff39ca4f950> File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 68, in view
66 self.args = args
67 self.kwargs = kwargs

68 return self.dispatch(request, *args, **kwargs)

69 view.view_class = cls
70 view.view_initkwargs = initkwargs locals:
args = ()
cls = <class 'wcs.views.Backoffice'>
initkwargs = {}
kwargs = {}
request = <WSGIRequest: GET '/backoffice/management/listing'>
self = <wcs.views.Backoffice object at 0x7ff39ca4f950> File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 185, in _get_response
183 wrapped_callback = self.make_view_atomic(callback)
184 try:

185 response = wrapped_callback(request, *callback_args, **callback_kwargs)

186 except Exception as e:
187 response = self.process_exception_by_middleware(e, request) locals:
callback = <function Backoffice at 0x7ff39d7da0c8>
callback_args = ()
callback_kwargs = {}
middleware_method = <bound method PrometheusStatsMiddleware.process_view of <hobo.middleware.stats.PrometheusStatsMiddleware object at 0x7ff3a4f77790>>
request = <WSGIRequest: GET '/backoffice/management/listing'>
resolver = <RegexURLResolver 'wcs.urls' (None:None) ^/>
resolver_match = ResolverMatch(func=wcs.views.Backoffice, args=(), kwargs={}, url_name=None, app_names=[], namespaces=[])
response = None
self = <django.core.handlers.wsgi.WSGIHandler object at 0x7ff3aa3ba490>
wrapped_callback = <function Backoffice at 0x7ff39d7da0c8> File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
247
248 if response is None:

249 response = self._get_response(request)

250 return response locals:
middleware_method = <bound method PrometheusStatsMiddleware.process_request of <hobo.middleware.stats.PrometheusStatsMiddleware object at 0x7ff3a4f77790>>
request = <WSGIRequest: GET '/backoffice/management/listing'>
response = None
self = <django.core.handlers.wsgi.WSGIHandler object at 0x7ff3aa3ba490> File "/usr/lib/python2.7/dist-packages/django/core/handlers/exception.py", line 41, in inner
39 def inner(request):
40 try:

41 response = get_response(request)

42 except Exception as exc:
43 response = response_for_exception(request, exc) locals:
get_response = <bound method WSGIHandler._legacy_get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7ff3aa3ba490>>
request = <WSGIRequest: GET '/backoffice/management/listing'> File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 124, in get_response
122 set_urlconf(settings.ROOT_URLCONF)
123

124 response = self._middleware_chain(request)

125
126 # This block is only needed for legacy MIDDLEWARE_CLASSES; if locals:
request = <WSGIRequest: GET '/backoffice/management/listing'>
self = <django.core.handlers.wsgi.WSGIHandler object at 0x7ff3aa3ba490> File "/usr/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 157, in call
155 signals.request_started.send(sender=self.__class__, environ=environ)
156 request = self.request_class(environ)

157 response = self.get_response(request)

158
159 response._handler_class = self.__class__ locals:
environ = {'HTTP_REFERER': 'https://demarches-validation.test.entrouvert.org/backoffice/workflows/42/global-actions/1/', 'SERVER_PROTOCOL': 'HTTP/1.0', 'uwsgi.version': '2.0.14-debian', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/backoffice/management/listing', 'HTTP_X_FORWARDED_SSL': 'on', 'QUERY_STRING': '', 'HTTP_X_REAL_IP': '94.224.199.171', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0', 'HTTP_CONNECTION': 'close', 'HTTP_COOKIE': 'wcs-8c8f12="9f2fd12a82fef228"; publik_portal_agent_url=https%3A%2F%2Fagents-validation.test.entrouvert.org%2F; publik_portal_agent_title=Portail%20Agent; A2_OPENED_SESSION=1', 'SERVER_NAME': 'wcs', 'REMOTE_ADDR': '94.224.199.171', 'HTTP_X_FORWARDED_PROTOCOL': 'ssl', 'wsgi.url_scheme': 'https', 'SERVER_PORT': '80', 'uwsgi.node': 'wcs', 'HTTP_X_FORWARDED_PROTO': 'https', 'wsgi.input': <uwsgi._Input object at 0x7ff39c7b65b8>, 'HTTP_DNT': '1', 'HTTP_HOST': 'demarches-validation.test.entrouvert.org', 'wsgi.multithread': False, 'HTTP_UPGRADE_INSECURE_REQUESTS': '1', 'REQUEST_URI': '/backoffice/management/listing', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'wsgi.version': (1, 0), 'HTTP_X_FORWARDED_FOR': '94.224.199.171, 94.224.199.171', 'wsgi.errors': <open file 'wsgi_errors', mode 'w' at 0x7ff3a4fca6f0>, 'wsgi.multiprocess': True, 'HTTP_ACCEPT_LANGUAGE': 'fr,fr-FR;q=0.8,en;q=0.5,en-US;q=0.3', 'wsgi.run_once': False, 'wsgi.file_wrapper': <built-in function uwsgi_sendfile>, 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br'}
request = <WSGIRequest: GET '/backoffice/management/listing'>
self = <django.core.handlers.wsgi.WSGIHandler object at 0x7ff3aa3ba490>
start_response = <built-in function uwsgi_spit>

Cookies:
A2_OPENED_SESSION '1'
publik_portal_agent_title 'Portail%20Agent'
publik_portal_agent_url 'https%3A%2F%2Fagents-validation.test.entrouvert.org%2F'
wcs-8c8f12 '9f2fd12a82fef228'

Environment:
HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_ENCODING 'gzip, deflate, br'
HTTP_ACCEPT_LANGUAGE 'fr,fr-FR;q=0.8,en;q=0.5,en-US;q=0.3'
HTTP_CONNECTION 'close'
HTTP_COOKIE 'wcs-8c8f12="9f2fd12a82fef228"; publik_portal_agent_url=https%3A%2F%2Fagents-validation.test.entrouvert.org%2F; publik_portal_agent_title=Portail%20Agent; A2_OPENED_SESSION=1'
HTTP_DNT '1'
HTTP_HOST 'demarches-validation.test.entrouvert.org'
HTTP_REFERER 'https://demarches-validation.test.entrouvert.org/backoffice/workflows/42/global-actions/1/'
HTTP_UPGRADE_INSECURE_REQUESTS '1'
HTTP_USER_AGENT 'Mozilla/5.0 (X11; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0'
HTTP_X_FORWARDED_FOR '94.224.199.171, 94.224.199.171'
HTTP_X_FORWARDED_PROTO 'https'
HTTP_X_FORWARDED_PROTOCOL 'ssl'
HTTP_X_FORWARDED_SSL 'on'
HTTP_X_REAL_IP '94.224.199.171'
PATH_INFO '/backoffice/management/listing'
QUERY_STRING ''
REMOTE_ADDR '94.224.199.171'
REMOTE_USER '2'
REQUEST_METHOD 'GET'
REQUEST_URI '/backoffice/management/listing'
SCRIPT_NAME ''
SERVER_NAME 'wcs'
SERVER_PORT '80'
SERVER_PROTOCOL 'HTTP/1.0'
uwsgi.node 'wcs'
uwsgi.version '2.0.14-debian'
wsgi.errors <open file 'wsgi_errors', mode 'w' at 0x7ff3a4fca6f0>
wsgi.file_wrapper <built-in function uwsgi_sendfile>
wsgi.input <uwsgi._Input object at 0x7ff39c7b65b8>
wsgi.multiprocess True
wsgi.multithread False
wsgi.run_once False
wsgi.url_scheme 'https'
wsgi.version (1, 0)

Historique

#1

Mis à jour par Frédéric Péters il y a environ 5 ans

  • Statut changé de Nouveau à Solution déployée

Faire une modif à une démarche et ça revient (je viens de le faire).

S'il y a une description précise permettant ensuite de reproduire, super.

Sinon, il y a espoir de correction générique dans #32191.

Formats disponibles : Atom PDF