Bug #2789
Erreur à la validation, lors de l'édition d'une demande.
Statut:
Fermé
Priorité:
Haut
Assigné à:
-
Version cible:
-
Début:
22 avril 2013
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Planning:
Description
Lorsque l'on active la fonctionnalité d'édition du formulaire dans un workflow. La réouverture du formulaire fonctionne, mais plante lors de la validation des modifications.
bug reproduit sur ma version de test :$
Exception: type = '<type 'exceptions.KeyError'>', value = '<htmltext 'magictoken'>' Stack trace (most recent call first): File "/usr/lib/pymodules/python2.6/wcs/forms/root.ptl", line 372, in page 370 371 if page_no > 0: > 372 magictoken = get_request().form['magictoken'] 373 self.feed_current_data(magictoken) 374 locals: log_detail = None self = <modules.formpage.AlternateFormPage object at 0x31c3cd0> displayed_fields = [] _q_output = <TemplateIO object at 0x377a310> session = <BasicSession at 23c9190: ae51738170998185> editing = <Test-Commentaire id:8> page_no = 1 page_change = True File "/usr/lib/pymodules/python2.6/wcs/forms/root.ptl", line 649, in _q_index 647 648 else: > 649 return self.page(page_no, editing = editing) 650 651 if step == 1: locals: existing_formdata = {'11': 'test', '3_display': '2', '13': <PicklableUpload at 2cbc4d0: doc.pdf>, '12': <PicklableUpload at 2cbc758: doc.pdf>, '10': '2', '3': '2', '1': 'test', '10_display': '2'} next_page = <wcs.fields.PageField instance at 0x2c04c20> form = <wcs.qommon.form.Form object at 0x2bd2850> log_detail = None magictoken = None step = 0 session = <BasicSession at 23c9190: ae51738170998185> form_data = {'11': 'test', '3_display': '2', '13': <PicklableUpload at 2c04f80: doc.pdf>, '12': <PicklableUpload at 2c04e60: doc.pdf>, '10': '2', '10_display': '2', '1': 'test', '3': '2'} useragent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31' editing = <Test-Commentaire id:8> data = {'11': 'test', '3_display': '2', '13': <PicklableUpload at 2c04f80: doc.pdf>, '12': <PicklableUpload at 2c04e60: doc.pdf>, '10': '2', '3': '2', '1': 'test', '10_display': '2'} self = <modules.formpage.AlternateFormPage object at 0x31c3cd0> page_no = 1 File "/usr/lib/pymodules/python2.6/wcs/forms/root.ptl", line 1238, in wfedit 1236 get_response().breadcrumb.append( ('%s/' % self.filled.id, str(self.filled.id)) ) 1237 get_response().breadcrumb.append( ('wfedit', _('Edit')) ) > 1238 return f._q_index(editing = self.filled) 1239 1240 raise errors.AccessForbiddenError() locals: item = <wcs.workflows.EditableWorkflowStatusItem instance at 0x1a38098> self = <wcs.forms.root.PublicFormStatusPage object at 0x37f2cd0> wf_status = <wcs.workflows.WorkflowStatus instance at 0x28e52d8> f = <modules.formpage.AlternateFormPage object at 0x31c3cd0> File "/usr/lib/pymodules/python2.6/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 = 'wfedit' self = <wcs.forms.root.PublicFormStatusPage object at 0x37f2cd0> obj = <bound method PublicFormStatusPage.wfedit of <wcs.forms.root.PublicFormStatusPage object at 0x37f2cd0>> name = 'wfedit' path = [] File "/usr/lib/pymodules/python2.6/wcs/forms/common.ptl", line 416, in _q_traverse 414 get_response().breadcrumb.append( 415 (str(self.filled.id) + '/',str(self.filled.id))) > 416 return super(FormStatusPage, self)._q_traverse(path) locals: path = ['wfedit'] self = <wcs.forms.root.PublicFormStatusPage object at 0x37f2cd0> File "/usr/lib/pymodules/python2.6/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 = '8' self = <modules.formpage.AlternateFormPage object at 0x36b1b10> obj = <wcs.forms.root.PublicFormStatusPage object at 0x37f2cd0> name = None path = ['wfedit'] File "/usr/lib/pymodules/python2.6/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 = 'test-commentaire' self = <modules.root.FormsRootDirectory object at 0x36b19d0> obj = <modules.formpage.AlternateFormPage object at 0x36b1b10> name = None path = ['8', 'wfedit'] File "/usr/lib/pymodules/python2.6/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 = ['test-commentaire', '8', 'wfedit'] self = <modules.root.FormsRootDirectory object at 0x36b19d0> File "/usr/lib/pymodules/python2.6/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 = 'etat-civil' self = <modules.root.AlternateRootDirectory object at 0x2f2e590> obj = <modules.root.FormsRootDirectory object at 0x36b19d0> name = None path = ['test-commentaire', '8', 'wfedit'] File "/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/modules/root.ptl", line 787, in _q_traverse 785 return redirect('%s%s/%s' % (base_url, f.category.url_name, uri_rest)) 786 > 787 raise e 788 789 locals: path = ['etat-civil', 'test-commentaire', '8', 'wfedit'] self = <modules.root.AlternateRootDirectory object at 0x2f2e590> session = <BasicSession at 23c9190: ae51738170998185> response = <qommon.http_response.HTTPResponse instance at 0x2b87dd0> File "/usr/lib/pymodules/python2.6/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: path = '/etat-civil/test-commentaire/8/wfedit' self = <publisher.WcsPublisher instance at 0x1a77d88> request = <qommon.http_request.HTTPRequest instance at 0x2b87488> components = ['etat-civil', 'test-commentaire', '8', 'wfedit'] File "/usr/lib/pymodules/python2.6/wcs/qommon/publisher.py", line 492, in try_publish 490 for extra_source in self.extra_sources: 491 self.substitutions.feed(extra_source(self, request)) > 492 return Publisher.try_publish(self, request) 493 494 def get_site_language(self): locals: pystatsd = <module 'qommon.vendor.pystatsd' from '/usr/lib/pymodules/python2.6/wcs/qommon/vendor/pystatsd.py'> request = <qommon.http_request.HTTPRequest instance at 0x2b87488> script_name = '' extra_source = <class 'modules.abelium_domino_vars.DominoVariables'> canonical_hostname = 'victor.au-quotidien.com' self = <publisher.WcsPublisher instance at 0x1a77d88> File "/usr/lib/pymodules/python2.6/wcs/publisher.py", line 140, in try_publish 138 if request.get_header('X_WCS_IFRAME_MODE', '') in ('true', 'yes'): 139 request.response.iframe_mode = True > 140 return QommonPublisher.try_publish(self, request) 141 142 set_publisher_class(WcsPublisher) locals: self = <publisher.WcsPublisher instance at 0x1a77d88> request = <qommon.http_request.HTTPRequest instance at 0x2b87488> File "/usr/lib/pymodules/python2.6/quixote/publish.py", line 281, in process_request 279 except: 280 # Some other exception, generate error messages to the logs, etc. > 281 output = self.finish_failed_request() 282 output = self.filter_output(request, output) 283 self.logger.log_request(request, start_time) locals: start_time = 1366643783.1000669 request = <qommon.http_request.HTTPRequest instance at 0x2b87488> self = <publisher.WcsPublisher instance at 0x1a77d88> File "/usr/lib/pymodules/python2.6/wcs/qommon/publisher.py", line 785, in process 783 try: 784 request = HTTPRequest(stdin, env) > 785 self.response = self.process_request(request) 786 except Exception, e: 787 file('/tmp/errors', 'a+').write('%s\n' % repr(e)) locals: self = <publisher.WcsPublisher instance at 0x1a77d88> stdin = <open file '<socket>', mode 'r' at 0x2b82e40> request = <qommon.http_request.HTTPRequest instance at 0x2b87488> env = {'HTTP_X_AU_QUOTIDIEN_LOCKED': 'False', 'HTTP_REFERER': 'https://victor.au-quotidien.com/etat-civil/test-commentaire/8/wfedit', 'SERVER_SOFTWARE': 'Apache/2.2.16 (Debian)', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'POST', 'PATH_INFO': '/etat-civil/test-commentaire/8/wfedit', 'HTTP_ORIGIN': 'https://victor.au-quotidien.com', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'SSL_TLS_SNI': 'victor.au-quotidien.com', 'CONTENT_LENGTH': '1452', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'wcs-0afe89="823261ee2d8f629b"; wcs-90b7e5="ae51738170998185"', 'SERVER_NAME': 'victor.au-quotidien.com', 'REMOTE_ADDR': '78.237.140.232', 'SERVER_PORT': '443', 'SERVER_ADDR': '81.93.255.232', 'DOCUMENT_ROOT': '/usr/share/wcs/web/', 'SCGI': '1', 'SERVER_ADMIN': 'webmaster@au-quotidien.com', 'SCRIPT_URI': 'https://victor.au-quotidien.com/etat-civil/test-commentaire/8/wfedit', 'REMOTE_USER': '29', 'HTTP_HOST': 'victor.au-quotidien.com', 'SCRIPT_URL': '/etat-civil/test-commentaire/8/wfedit', 'HTTPS': 'on', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundary8EM2u2eG88jIGAjZ', 'HTTP_CONTENT_LENGTH': '1452', 'REQUEST_URI': '/etat-civil/test-commentaire/8/wfedit', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'REMOTE_PORT': '54633', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4', 'CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundary8EM2u2eG88jIGAjZ', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch'} File "/usr/lib/pymodules/python2.6/quixote/server/scgi_server.py", line 27, in handle_connection 25 env['PATH_INFO'] = path[len(prefix):] + env.get('PATH_INFO', '') 26 > 27 response = self.publisher.process(input, env) 28 try: 29 response.write(output) locals: output = <open file '<socket>', mode 'w' at 0x2b82c90> self = <qommon.scgi_server.QommonHandler instance at 0x2561a70> conn = <socket object, fd=11, family=2, type=1, protocol=0> env = {'HTTP_X_AU_QUOTIDIEN_LOCKED': 'False', 'HTTP_REFERER': 'https://victor.au-quotidien.com/etat-civil/test-commentaire/8/wfedit', 'SERVER_SOFTWARE': 'Apache/2.2.16 (Debian)', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'POST', 'PATH_INFO': '/etat-civil/test-commentaire/8/wfedit', 'HTTP_ORIGIN': 'https://victor.au-quotidien.com', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'SSL_TLS_SNI': 'victor.au-quotidien.com', 'CONTENT_LENGTH': '1452', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'wcs-0afe89="823261ee2d8f629b"; wcs-90b7e5="ae51738170998185"', 'SERVER_NAME': 'victor.au-quotidien.com', 'REMOTE_ADDR': '78.237.140.232', 'SERVER_PORT': '443', 'SERVER_ADDR': '81.93.255.232', 'DOCUMENT_ROOT': '/usr/share/wcs/web/', 'SCGI': '1', 'SERVER_ADMIN': 'webmaster@au-quotidien.com', 'SCRIPT_URI': 'https://victor.au-quotidien.com/etat-civil/test-commentaire/8/wfedit', 'REMOTE_USER': '29', 'HTTP_HOST': 'victor.au-quotidien.com', 'SCRIPT_URL': '/etat-civil/test-commentaire/8/wfedit', 'HTTPS': 'on', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundary8EM2u2eG88jIGAjZ', 'HTTP_CONTENT_LENGTH': '1452', 'REQUEST_URI': '/etat-civil/test-commentaire/8/wfedit', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'REMOTE_PORT': '54633', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4', 'CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundary8EM2u2eG88jIGAjZ', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch'} input = <open file '<socket>', mode 'r' at 0x2b82e40> File "/usr/lib/pymodules/python2.6/wcs/qommon/scgi_server.py", line 39, in handle_connection 37 def handle_connection(self, conn): 38 self.number_of_connection_handled = self.number_of_connection_handled + 1 > 39 quixote.server.scgi_server.QuixoteHandler.handle_connection(self, conn) 40 # input, output and conn are closed, long running jobs could be done 41 # here. locals: self = <qommon.scgi_server.QommonHandler instance at 0x2561a70> conn = <socket object, fd=11, family=2, type=1, protocol=0> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 71, in serve 69 conn.setblocking(1) 70 os.close(fd) > 71 self.handle_connection(conn) 72 73 locals: self = <qommon.scgi_server.QommonHandler instance at 0x2561a70> fd = 6 conn = <socket object, fd=11, family=2, type=1, protocol=0> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 194, in spawn_child 192 # the connection in the child 193 os.close(child_fd) > 194 self.handler_class(parent_fd).serve() 195 sys.exit(0) 196 else: locals: self = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> pid = 0 flags = 2 child_fd = 6 parent_fd = 5 conn = <socket._socketobject object at 0x2c150c0> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 308, in delegate_request 306 # start more children if we haven't met max_children limit 307 if len(self.children) < self.max_children: > 308 self.spawn_child(conn) 309 310 # Start blocking inside select. We might have reached locals: e = [] w = [] self = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> r = [6, 7, 8, 9, 10] timeout = 0 child_fd = 6 ready_byte = '' conn = <socket._socketobject object at 0x2c150c0> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 327, in serve_on_socket 325 try: 326 conn, addr = self.socket.accept() > 327 self.delegate_request(conn) 328 conn.close() 329 except socket.error, e: locals: s = <socket._socketobject object at 0x2c15050> addr = ('127.0.0.1', 54754) conn = <socket._socketobject object at 0x2c150c0> self = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 336, in serve 334 335 def serve(self): > 336 self.serve_on_socket(self.get_listening_socket()) 337 338 locals: self = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> File "/usr/lib/pymodules/python2.6/wcs/qommon/scgi_server.py", line 78, in run 76 s = SCGIServer(create_handler, host=host, port=port, 77 max_children=max_children) > 78 s.serve() 79 80 locals: create_handler = <function create_handler at 0x1da5488> handler_connection_limit = -1 max_children = 5 create_publisher = <bound method classobj.create_publisher of <class publisher.WcsPublisher at 0x2421890>> host = 'localhost' script_name = None s = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> spawn_cron = True port = 3001 File "/usr/lib/pymodules/python2.6/wcs/ctl/start.py", line 67, in execute 65 66 try: > 67 run_function(publisher.WcsPublisher.create_publisher, **run_kwargs) 68 except socket.error, e: 69 if e[0] == 98: locals: publisher = <module 'publisher' from '/usr/lib/pymodules/python2.6/wcs/publisher.py'> self = <wcs.ctl.start.CmdStart instance at 0x1d96098> args = [] sub_options = <Values at 0x1a3c9e0: {'http': False, 'silent': False, 'app_dir': None, 'extra': ['/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/'], 'max_children': None, 'handler_connection_limit': None, 'script_name': None, 'data_dir': None, 'port': 3001}> run_function = <function run at 0x20bce60> base_options = <Values at 0x1d96e18: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}> run_kwargs = {'port': 3001, 'spawn_cron': True} File "/usr/lib/pymodules/python2.6/wcs/qommon/ctl.py", line 65, in run 63 if sub_options.data_dir: 64 self.config.set("main", "data_dir", sub_options.data_dir) > 65 return self.execute(base_options, sub_options, args) 66 67 def parse_args(self, args): locals: sub_options = <Values at 0x1a3c9e0: {'http': False, 'silent': False, 'app_dir': None, 'extra': ['/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/'], 'max_children': None, 'handler_connection_limit': None, 'script_name': None, 'data_dir': None, 'port': 3001}> args = [] base_options = <Values at 0x1d96e18: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}> self = <wcs.ctl.start.CmdStart instance at 0x1d96098> File "/usr/lib/pymodules/python2.6/wcs/qommon/ctl.py", line 140, in run 138 command_class = qommon._commands[command] 139 cmd = command_class() > 140 return cmd.run(args, options) 141 locals: cmd = <wcs.ctl.start.CmdStart instance at 0x1d96098> args = ['--extra', '/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/'] self = <wcs.qommon.ctl.Ctl instance at 0x1d96d40> command_class = <class wcs.ctl.start.CmdStart at 0x203aef0> command = 'start' cmd_prefix = 'wcs.ctl' options = <Values at 0x1d96e18: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}> File "/usr/sbin/wcsctl", line 8, in <module> 6 7 ctl = wcs.qommon.ctl.Ctl(cmd_prefixes=['wcs.ctl']) > 8 ctl.run(sys.argv[1:]) 9 locals: wcs = <module 'wcs' from '/usr/lib/pymodules/python2.6/wcs/__init__.pyc'> __builtins__ = <module '__builtin__' (built-in)> __file__ = '/usr/sbin/wcsctl' __package__ = None sys = <module 'sys' (built-in)> ctl = <wcs.qommon.ctl.Ctl instance at 0x1d96d40> __name__ = '__main__' __doc__ = None Form: f1 'test' f10 '2' f11 'test' f12$existing-file-token 'afc48103957fde36' f12$file '' f12$orexisting 'yes' f13$existing-file-token '20de13e5f24b69c7' f13$file '' f13$orexisting 'yes' f3 '2' page '0' step '0' submit 'Suivant' Cookies: wcs-0afe89 '823261ee2d8f629b' wcs-90b7e5 'ae51738170998185' Environment: CONTENT_LENGTH '1452' CONTENT_TYPE 'multipart/form-data; boundary=----WebKitFormBoundary8EM2u2eG88jIGAjZ' DOCUMENT_ROOT '/usr/share/wcs/web/' HTTPS 'on' HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.3' HTTP_ACCEPT_ENCODING 'gzip,deflate,sdch' HTTP_ACCEPT_LANGUAGE 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4' HTTP_CACHE_CONTROL 'max-age=0' HTTP_CONNECTION 'keep-alive' HTTP_CONTENT_LENGTH '1452' HTTP_CONTENT_TYPE 'multipart/form-data; boundary=----WebKitFormBoundary8EM2u2eG88jIGAjZ' HTTP_COOKIE 'wcs-0afe89="823261ee2d8f629b"; wcs-90b7e5="ae51738170998185"' HTTP_HOST 'victor.au-quotidien.com' HTTP_ORIGIN 'https://victor.au-quotidien.com' HTTP_REFERER 'https://victor.au-quotidien.com/etat-civil/test-commentaire/8/wfedit' HTTP_USER_AGENT 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31' HTTP_X_AU_QUOTIDIEN_LOCKED 'False' PATH_INFO '/etat-civil/test-commentaire/8/wfedit' QUERY_STRING '' REMOTE_ADDR '78.237.140.232' REMOTE_PORT '54633' REMOTE_USER '29' REQUEST_METHOD 'POST' REQUEST_URI '/etat-civil/test-commentaire/8/wfedit' SCGI '1' SCRIPT_NAME '' SCRIPT_URI 'https://victor.au-quotidien.com/etat-civil/test-commentaire/8/wfedit' SCRIPT_URL '/etat-civil/test-commentaire/8/wfedit' SERVER_ADDR '81.93.255.232' SERVER_ADMIN 'webmaster@au-quotidien.com' SERVER_NAME 'victor.au-quotidien.com' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SOFTWARE 'Apache/2.2.16 (Debian)' SSL_TLS_SNI 'victor.au-quotidien.com'
Fichiers
Historique
Mis à jour par Frédéric Péters il y a environ 11 ans
Ok, après plusieurs tests chez moi je note que le bug concerne les formulaires multipages (pas eu de soucis sur un formulaire avec une seule page).
Mis à jour par Frédéric Péters il y a environ 11 ans
- Fichier 0001-forms-fix-edition-of-current-formdata-2789.patch 0001-forms-fix-edition-of-current-formdata-2789.patch ajouté
- Statut changé de Nouveau à Solution déployée
Mis à jour par Victor Claudet il y a environ 11 ans
- Statut changé de Fermé à En cours
J'ai toutjours un message d'erreur
sur : https://victor.au-quotidien.com/etat-civil/test-commentaire/9/wfedit
Exception: type = '<type 'exceptions.KeyError'>', value = '<htmltext 'magictoken'>' Stack trace (most recent call first): File "/usr/lib/pymodules/python2.6/wcs/forms/root.ptl", line 372, in page 370 371 if page_no > 0: > 372 magictoken = get_request().form['magictoken'] 373 self.feed_current_data(magictoken) 374 locals: log_detail = None self = <modules.formpage.AlternateFormPage object at 0x578d150> displayed_fields = [] _q_output = <TemplateIO object at 0x377a310> session = <BasicSession at 37f2190: db9acb33f4d7ef1b> editing = <Test-Commentaire id:9> page_no = 1 page_change = True File "/usr/lib/pymodules/python2.6/wcs/forms/root.ptl", line 649, in _q_index 647 else: 648 return self.page(page_no, editing = editing) > 649 650 if step == 1: 651 form.add_submit('previous') locals: existing_formdata = {'11': None, '3_display': '1', '13': <PicklableUpload at 1dbaf38: 0001-register-display-an-indicator-of-password-strength-2.patch>, '12': <PicklableUpload at 2ccc0e0: 0001-form-fix-display-of-table-with-rows-widget-value-in-.patch>, '10': '1', '10_display': '1', '1': '12', '3': '1'} next_page = <wcs.fields.PageField instance at 0x22c0b00> form = <wcs.qommon.form.Form object at 0x31c3c10> log_detail = None magictoken = None step = 0 session = <BasicSession at 37f2190: db9acb33f4d7ef1b> form_data = {'11': 'test 4', '3_display': '1', '13': <PicklableUpload at 22c0290: doc.pdf>, '12': <PicklableUpload at 22c0758: doc.pdf>, '10': '1', '10_display': '1', '1': '12', '3': '1'} useragent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31' editing = <Test-Commentaire id:9> data = {'11': 'test 4', '3_display': '1', '13': <PicklableUpload at 22c0290: doc.pdf>, '12': <PicklableUpload at 22c0758: doc.pdf>, '10': '1', '3': '1', '1': '12', '10_display': '1'} self = <modules.formpage.AlternateFormPage object at 0x578d150> page_no = 1 File "/usr/lib/pymodules/python2.6/wcs/forms/root.ptl", line 1238, in wfedit 1236 get_response().breadcrumb.append( ('wfedit', _('Edit')) ) 1237 return f._q_index(editing = self.filled) > 1238 1239 raise errors.AccessForbiddenError() 1240 locals: item = <wcs.workflows.EditableWorkflowStatusItem instance at 0x2c95710> self = <wcs.forms.root.PublicFormStatusPage object at 0x2584d90> wf_status = <wcs.workflows.WorkflowStatus instance at 0x23b0ab8> f = <modules.formpage.AlternateFormPage object at 0x578d150> File "/usr/lib/pymodules/python2.6/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 = 'wfedit' self = <wcs.forms.root.PublicFormStatusPage object at 0x2584d90> obj = <bound method PublicFormStatusPage.wfedit of <wcs.forms.root.PublicFormStatusPage object at 0x2584d90>> name = 'wfedit' path = [] File "/usr/lib/pymodules/python2.6/wcs/forms/common.ptl", line 416, in _q_traverse 414 get_response().breadcrumb.append( 415 (str(self.filled.id) + '/',str(self.filled.id))) > 416 return super(FormStatusPage, self)._q_traverse(path) locals: path = ['wfedit'] self = <wcs.forms.root.PublicFormStatusPage object at 0x2584d90> File "/usr/lib/pymodules/python2.6/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 = '9' self = <modules.formpage.AlternateFormPage object at 0x2584cd0> obj = <wcs.forms.root.PublicFormStatusPage object at 0x2584d90> name = None path = ['wfedit'] File "/usr/lib/pymodules/python2.6/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 = 'test-commentaire' self = <modules.root.FormsRootDirectory object at 0x3eb8f50> obj = <modules.formpage.AlternateFormPage object at 0x2584cd0> name = None path = ['9', 'wfedit'] File "/usr/lib/pymodules/python2.6/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 = ['test-commentaire', '9', 'wfedit'] self = <modules.root.FormsRootDirectory object at 0x3eb8f50> File "/usr/lib/pymodules/python2.6/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 = 'etat-civil' self = <modules.root.AlternateRootDirectory object at 0x2f2e590> obj = <modules.root.FormsRootDirectory object at 0x3eb8f50> name = None path = ['test-commentaire', '9', 'wfedit'] File "/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/modules/root.ptl", line 787, in _q_traverse 785 return redirect('%s%s/%s' % (base_url, f.category.url_name, uri_rest)) 786 > 787 raise e 788 789 locals: path = ['etat-civil', 'test-commentaire', '9', 'wfedit'] self = <modules.root.AlternateRootDirectory object at 0x2f2e590> session = <BasicSession at 37f2190: db9acb33f4d7ef1b> response = <qommon.http_response.HTTPResponse instance at 0x25b0638> File "/usr/lib/pymodules/python2.6/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: path = '/etat-civil/test-commentaire/9/wfedit' self = <publisher.WcsPublisher instance at 0x1a77d88> request = <qommon.http_request.HTTPRequest instance at 0x25b0ef0> components = ['etat-civil', 'test-commentaire', '9', 'wfedit'] File "/usr/lib/pymodules/python2.6/wcs/qommon/publisher.py", line 492, in try_publish 490 for extra_source in self.extra_sources: 491 self.substitutions.feed(extra_source(self, request)) > 492 return Publisher.try_publish(self, request) 493 494 def get_site_language(self): locals: pystatsd = <module 'qommon.vendor.pystatsd' from '/usr/lib/pymodules/python2.6/wcs/qommon/vendor/pystatsd.py'> request = <qommon.http_request.HTTPRequest instance at 0x25b0ef0> script_name = '' extra_source = <class 'modules.abelium_domino_vars.DominoVariables'> canonical_hostname = 'victor.au-quotidien.com' self = <publisher.WcsPublisher instance at 0x1a77d88> File "/usr/lib/pymodules/python2.6/wcs/publisher.py", line 140, in try_publish 138 if request.get_header('X_WCS_IFRAME_MODE', '') in ('true', 'yes'): 139 request.response.iframe_mode = True > 140 return QommonPublisher.try_publish(self, request) 141 142 set_publisher_class(WcsPublisher) locals: self = <publisher.WcsPublisher instance at 0x1a77d88> request = <qommon.http_request.HTTPRequest instance at 0x25b0ef0> File "/usr/lib/pymodules/python2.6/quixote/publish.py", line 281, in process_request 279 except: 280 # Some other exception, generate error messages to the logs, etc. > 281 output = self.finish_failed_request() 282 output = self.filter_output(request, output) 283 self.logger.log_request(request, start_time) locals: start_time = 1366702955.7253909 request = <qommon.http_request.HTTPRequest instance at 0x25b0ef0> self = <publisher.WcsPublisher instance at 0x1a77d88> File "/usr/lib/pymodules/python2.6/wcs/qommon/publisher.py", line 785, in process 783 request = HTTPRequest(stdin, env) 784 self.response = self.process_request(request) > 785 return self.response 786 787 _app_logger = None locals: self = <publisher.WcsPublisher instance at 0x1a77d88> stdin = <open file '<socket>', mode 'r' at 0x28b9f60> request = <qommon.http_request.HTTPRequest instance at 0x25b0ef0> env = {'HTTP_X_AU_QUOTIDIEN_LOCKED': 'False', 'HTTP_REFERER': 'https://victor.au-quotidien.com/etat-civil/test-commentaire/9/wfedit', 'SERVER_SOFTWARE': 'Apache/2.2.16 (Debian)', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'POST', 'PATH_INFO': '/etat-civil/test-commentaire/9/wfedit', 'HTTP_ORIGIN': 'https://victor.au-quotidien.com', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'SSL_TLS_SNI': 'victor.au-quotidien.com', 'CONTENT_LENGTH': '14499', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'wcs-90b7e5="db9acb33f4d7ef1b"', 'SERVER_NAME': 'victor.au-quotidien.com', 'REMOTE_ADDR': '78.237.140.232', 'SERVER_PORT': '443', 'SERVER_ADDR': '81.93.255.232', 'DOCUMENT_ROOT': '/usr/share/wcs/web/', 'SCGI': '1', 'SERVER_ADMIN': 'webmaster@au-quotidien.com', 'SCRIPT_URI': 'https://victor.au-quotidien.com/etat-civil/test-commentaire/9/wfedit', 'REMOTE_USER': '29', 'HTTP_HOST': 'victor.au-quotidien.com', 'SCRIPT_URL': '/etat-civil/test-commentaire/9/wfedit', 'HTTPS': 'on', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundaryxE76SoSyJpd0ZTeB', 'HTTP_CONTENT_LENGTH': '14499', 'REQUEST_URI': '/etat-civil/test-commentaire/9/wfedit', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'REMOTE_PORT': '59444', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4', 'CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundaryxE76SoSyJpd0ZTeB', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch'} File "/usr/lib/pymodules/python2.6/quixote/server/scgi_server.py", line 27, in handle_connection 25 env['PATH_INFO'] = path[len(prefix):] + env.get('PATH_INFO', '') 26 > 27 response = self.publisher.process(input, env) 28 try: 29 response.write(output) locals: output = <open file '<socket>', mode 'w' at 0x2ef6390> self = <qommon.scgi_server.QommonHandler instance at 0x2561a70> conn = <socket object, fd=11, family=2, type=1, protocol=0> env = {'HTTP_X_AU_QUOTIDIEN_LOCKED': 'False', 'HTTP_REFERER': 'https://victor.au-quotidien.com/etat-civil/test-commentaire/9/wfedit', 'SERVER_SOFTWARE': 'Apache/2.2.16 (Debian)', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'POST', 'PATH_INFO': '/etat-civil/test-commentaire/9/wfedit', 'HTTP_ORIGIN': 'https://victor.au-quotidien.com', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'SSL_TLS_SNI': 'victor.au-quotidien.com', 'CONTENT_LENGTH': '14499', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'wcs-90b7e5="db9acb33f4d7ef1b"', 'SERVER_NAME': 'victor.au-quotidien.com', 'REMOTE_ADDR': '78.237.140.232', 'SERVER_PORT': '443', 'SERVER_ADDR': '81.93.255.232', 'DOCUMENT_ROOT': '/usr/share/wcs/web/', 'SCGI': '1', 'SERVER_ADMIN': 'webmaster@au-quotidien.com', 'SCRIPT_URI': 'https://victor.au-quotidien.com/etat-civil/test-commentaire/9/wfedit', 'REMOTE_USER': '29', 'HTTP_HOST': 'victor.au-quotidien.com', 'SCRIPT_URL': '/etat-civil/test-commentaire/9/wfedit', 'HTTPS': 'on', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundaryxE76SoSyJpd0ZTeB', 'HTTP_CONTENT_LENGTH': '14499', 'REQUEST_URI': '/etat-civil/test-commentaire/9/wfedit', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'REMOTE_PORT': '59444', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4', 'CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundaryxE76SoSyJpd0ZTeB', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch'} input = <open file '<socket>', mode 'r' at 0x28b9f60> File "/usr/lib/pymodules/python2.6/wcs/qommon/scgi_server.py", line 39, in handle_connection 37 def handle_connection(self, conn): 38 self.number_of_connection_handled = self.number_of_connection_handled + 1 > 39 quixote.server.scgi_server.QuixoteHandler.handle_connection(self, conn) 40 # input, output and conn are closed, long running jobs could be done 41 # here. locals: self = <qommon.scgi_server.QommonHandler instance at 0x2561a70> conn = <socket object, fd=11, family=2, type=1, protocol=0> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 71, in serve 69 conn.setblocking(1) 70 os.close(fd) > 71 self.handle_connection(conn) 72 73 locals: self = <qommon.scgi_server.QommonHandler instance at 0x2561a70> fd = 6 conn = <socket object, fd=11, family=2, type=1, protocol=0> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 194, in spawn_child 192 # the connection in the child 193 os.close(child_fd) > 194 self.handler_class(parent_fd).serve() 195 sys.exit(0) 196 else: locals: self = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> pid = 0 flags = 2 child_fd = 6 parent_fd = 5 conn = <socket._socketobject object at 0x2c150c0> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 308, in delegate_request 306 # start more children if we haven't met max_children limit 307 if len(self.children) < self.max_children: > 308 self.spawn_child(conn) 309 310 # Start blocking inside select. We might have reached locals: e = [] w = [] self = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> r = [6, 7, 8, 9, 10] timeout = 0 child_fd = 6 ready_byte = '' conn = <socket._socketobject object at 0x2c150c0> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 327, in serve_on_socket 325 try: 326 conn, addr = self.socket.accept() > 327 self.delegate_request(conn) 328 conn.close() 329 except socket.error, e: locals: s = <socket._socketobject object at 0x2c15050> addr = ('127.0.0.1', 54754) conn = <socket._socketobject object at 0x2c150c0> self = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 336, in serve 334 335 def serve(self): > 336 self.serve_on_socket(self.get_listening_socket()) 337 338 locals: self = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> File "/usr/lib/pymodules/python2.6/wcs/qommon/scgi_server.py", line 78, in run 76 s = SCGIServer(create_handler, host=host, port=port, 77 max_children=max_children) > 78 s.serve() 79 80 locals: create_handler = <function create_handler at 0x1da5488> handler_connection_limit = -1 max_children = 5 create_publisher = <bound method classobj.create_publisher of <class publisher.WcsPublisher at 0x2421890>> host = 'localhost' script_name = None s = <qommon.scgi_server.SCGIServer instance at 0x1a3c560> spawn_cron = True port = 3001 File "/usr/lib/pymodules/python2.6/wcs/ctl/start.py", line 67, in execute 65 66 try: > 67 run_function(publisher.WcsPublisher.create_publisher, **run_kwargs) 68 except socket.error, e: 69 if e[0] == 98: locals: publisher = <module 'publisher' from '/usr/lib/pymodules/python2.6/wcs/publisher.py'> self = <wcs.ctl.start.CmdStart instance at 0x1d96098> args = [] sub_options = <Values at 0x1a3c9e0: {'http': False, 'silent': False, 'app_dir': None, 'extra': ['/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/'], 'max_children': None, 'handler_connection_limit': None, 'script_name': None, 'data_dir': None, 'port': 3001}> run_function = <function run at 0x20bce60> base_options = <Values at 0x1d96e18: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}> run_kwargs = {'port': 3001, 'spawn_cron': True} File "/usr/lib/pymodules/python2.6/wcs/qommon/ctl.py", line 65, in run 63 if sub_options.data_dir: 64 self.config.set("main", "data_dir", sub_options.data_dir) > 65 return self.execute(base_options, sub_options, args) 66 67 def parse_args(self, args): locals: sub_options = <Values at 0x1a3c9e0: {'http': False, 'silent': False, 'app_dir': None, 'extra': ['/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/'], 'max_children': None, 'handler_connection_limit': None, 'script_name': None, 'data_dir': None, 'port': 3001}> args = [] base_options = <Values at 0x1d96e18: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}> self = <wcs.ctl.start.CmdStart instance at 0x1d96098> File "/usr/lib/pymodules/python2.6/wcs/qommon/ctl.py", line 140, in run 138 command_class = qommon._commands[command] 139 cmd = command_class() > 140 return cmd.run(args, options) 141 locals: cmd = <wcs.ctl.start.CmdStart instance at 0x1d96098> args = ['--extra', '/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/'] self = <wcs.qommon.ctl.Ctl instance at 0x1d96d40> command_class = <class wcs.ctl.start.CmdStart at 0x203aef0> command = 'start' cmd_prefix = 'wcs.ctl' options = <Values at 0x1d96e18: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}> File "/usr/sbin/wcsctl", line 8, in <module> 6 7 ctl = wcs.qommon.ctl.Ctl(cmd_prefixes=['wcs.ctl']) > 8 ctl.run(sys.argv[1:]) 9 locals: wcs = <module 'wcs' from '/usr/lib/pymodules/python2.6/wcs/__init__.pyc'> __builtins__ = <module '__builtin__' (built-in)> __file__ = '/usr/sbin/wcsctl' __package__ = None sys = <module 'sys' (built-in)> ctl = <wcs.qommon.ctl.Ctl instance at 0x1d96d40> __name__ = '__main__' __doc__ = None Form: f1 '12' f10 '1' f11 'test 4' f12$existing-file-token 'fe5385273577da39' f12$file '' f12$orexisting 'yes' f13$file <PicklableUpload at 244c638: doc.pdf> f3 '1' page '0' step '0' submit 'Suivant' Cookies: wcs-90b7e5 'db9acb33f4d7ef1b' Environment: CONTENT_LENGTH '14499' CONTENT_TYPE 'multipart/form-data; boundary=----WebKitFormBoundaryxE76SoSyJpd0ZTeB' DOCUMENT_ROOT '/usr/share/wcs/web/' HTTPS 'on' HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.3' HTTP_ACCEPT_ENCODING 'gzip,deflate,sdch' HTTP_ACCEPT_LANGUAGE 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4' HTTP_CACHE_CONTROL 'max-age=0' HTTP_CONNECTION 'keep-alive' HTTP_CONTENT_LENGTH '14499' HTTP_CONTENT_TYPE 'multipart/form-data; boundary=----WebKitFormBoundaryxE76SoSyJpd0ZTeB' HTTP_COOKIE 'wcs-90b7e5="db9acb33f4d7ef1b"' HTTP_HOST 'victor.au-quotidien.com' HTTP_ORIGIN 'https://victor.au-quotidien.com' HTTP_REFERER 'https://victor.au-quotidien.com/etat-civil/test-commentaire/9/wfedit' HTTP_USER_AGENT 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31' HTTP_X_AU_QUOTIDIEN_LOCKED 'False' PATH_INFO '/etat-civil/test-commentaire/9/wfedit' QUERY_STRING '' REMOTE_ADDR '78.237.140.232' REMOTE_PORT '59444' REMOTE_USER '29' REQUEST_METHOD 'POST' REQUEST_URI '/etat-civil/test-commentaire/9/wfedit' SCGI '1' SCRIPT_NAME '' SCRIPT_URI 'https://victor.au-quotidien.com/etat-civil/test-commentaire/9/wfedit' SCRIPT_URL '/etat-civil/test-commentaire/9/wfedit' SERVER_ADDR '81.93.255.232' SERVER_ADMIN 'webmaster@au-quotidien.com' SERVER_NAME 'victor.au-quotidien.com' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SOFTWARE 'Apache/2.2.16 (Debian)' SSL_TLS_SNI 'victor.au-quotidien.com'
Mis à jour par Thomas Noël il y a environ 11 ans
oublié de faire le restart après l'upgrade ; please retry...
Mis à jour par Thomas Noël il y a environ 11 ans
- Statut changé de En cours à Fermé
Cette trace n'est pas revenue, je ferme.