#849: BibEdit: exception encountered when using "back" browser button
----------------------+----------------------
 Reporter:  jcaffaro  |      Owner:  jmartinm
     Type:  defect    |     Status:  new
 Priority:  major     |  Milestone:
Component:  BibEdit   |    Version:
 Keywords:            |
----------------------+----------------------
 (see exception)

 {{{
 ** Traceback details

 Traceback (most recent call last):
   File "/usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler_wsgi.py", line 433, in application
     ret = invenio_handler(req)
   File "/usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler.py", line 358, in _profiler
     return _handler(req)
   File "/usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler.py", line 400, in _handler
     return root._traverse(req, path, False, guest_p)
   File "/usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler.py", line 235, in _traverse
     return obj._traverse(req, path, do_head, guest_p)
   File "/usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler.py", line 248, in _traverse
     result = _check_result(req, obj(req, form))
   File "/usr/lib64/python2.4/site-
 packages/invenio/bibedit_webinterface.py", line 141, in index
     json_data))
   File "/usr/lib64/python2.4/site-packages/invenio/bibedit_engine.py",
 line 323, in perform_request_ajax
     data))
   File "/usr/lib64/python2.4/site-packages/invenio/bibedit_engine.py",
 line 736, in perform_request_record
     if cache_exists(recid, uid) and get_cache_mtime(recid, uid) == \
 KeyError: 'cacheMTime'

 ** Stack frame details

 Frame application in /usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler_wsgi.py at line 450
 -------------------------------------------------------------------------------
        447             else:
        448                 req.flush()
        449         except:
 ---->  450             register_exception(req=req, alert_admin=True)
        451             if not req.response_sent_p:
        452                 req.status = HTTP_INTERNAL_SERVER_ERROR
        453                 req.headers_out['content-type'] = 'text/html'
 -------------------------------------------------------------------------------
               start_response =  '<built-in method start_response of
 mod_wsgi.Adapter object at 0x2aaabc988a80>'
                      environ =  '{\'mod_wsgi.listener_port\': \'443\',
 \'HTTP_REFERER\': \'https://cdsweb.cern.ch/record/edit/?ln=en\',
 \'mod_wsgi.listener_host\': \'\', \'SERVER_SOFTWARE\': \'Apache\',
 \'SCRIPT_NAME\': \'\', \'mod_wsgi.handler_script\': \'\',
 \'SERVER_SIGNATURE\': \'\', \'REQUEST_METHOD\': \'POST\',
 \'HTTP_KEEP_ALIVE\': \'115\', \'SERVER_PROTOCOL\': \'HTTP/1.1\',
 \'QUERY_STRING\': \'\', \'CONTENT_LENGTH\': \'98\',
 \'HTTP_ACCEPT_CHARSET\': \'ISO-8859-1,utf-8;q=0.7,*;q=0.7\',
 \'HTTP_USER_AGENT\': \'Mozilla/5.0  [...]
                          req =
 '<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
 0x2aaac6bd3590>'
             possible_handler =  'None'
              possible_module =  'None'

 Frame _profiler in /usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler.py at line 358
 -------------------------------------------------------------------------------
        355                     raise Exception('Debugging requested, but
 no debugger registered: "%s"' % args['debug'])
        356             return _handler(req)
        357         else:
 ---->  358             return _handler(req)
        359
        360     def _handler(req):
        361         """ This handler is invoked by mod_python with the
 apache request."""
 -------------------------------------------------------------------------------
                     _handler =  '<function _handler at 0x2aaab4f0ade8>'
                         args =  '{}'
                          req =
 '<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
 0x2aaac6bd3590>'

 Frame _handler in /usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler.py at line 442
 -------------------------------------------------------------------------------
        439
        440             ## as suggested in
        441             ## <http://www.python.org/doc/2.3.5/lib/module-
 gc.html>
 ---->  442             del gc.garbage[:]
        443
        444     return _profiler
        445
 -------------------------------------------------------------------------------
              allowed_methods =  "('GET', 'POST', 'HEAD', 'OPTIONS')"
                      guest_p =  '0'
                          req =
 '<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
 0x2aaac6bd3590>'
                          uri =  "'/record/edit/'"
                         path =  "['record', 'edit', '']"
                         root =
 '<invenio.webinterface_layout.WebInterfaceInvenio object at
 0x2aaab4f0b450>'

 Frame _traverse in /usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler.py at line 235
 -------------------------------------------------------------------------------
        232         # renderer. We even pass it the parsed form arguments.
        233         if path:
        234             if hasattr(obj, '_traverse'):
 ---->  235                 return obj._traverse(req, path, do_head,
 guest_p)
        236             else:
        237                 raise apache.SERVER_RETURN,
 apache.HTTP_NOT_FOUND
        238
 -------------------------------------------------------------------------------
                          obj =
 '<invenio.bibedit_webinterface.WebInterfaceEditPages object at
 0x2aaabd297990>'
                         name =  'None'
                      guest_p =  '0'
                          req =
 '<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
 0x2aaac6bd3590>'
                    component =  "'record'"
                      do_head =  'False'
                         path =  "['']"
                         self =
 '<invenio.webinterface_layout.WebInterfaceInvenio object at
 0x2aaab4f0b450>'

 Frame _traverse in /usr/lib64/python2.4/site-
 packages/invenio/webinterface_handler.py at line 248
 -------------------------------------------------------------------------------
        245                 req.uri not in CFG_NO_LANG_RECOGNITION_URIS:
        246             ln = get_preferred_user_language(req)
        247             form.add_field('ln', ln)
 ---->  248         result = _check_result(req, obj(req, form))
        249         return result
        250
        251     def __call__(self, req, form):
 -------------------------------------------------------------------------------
                          obj =  '<bound method WebInterfaceEditPages.index
 of <invenio.bibedit_webinterface.WebInterfaceEditPages object at
 0x2aaabd297990>>'
                         name =  "'index'"
                         form =  '{\'ln\': [Field(\'ln\', \'en\')],
 \'jsondata\': [Field(\'jsondata\',
 \'{"recID":1396254,"requestType":"deleteRecordCache","ID":21}\')]}'
                           ln =  "'en'"
                      guest_p =  '0'
                          req =
 '<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
 0x2aaac6bd3590>'
                    component =  "''"
                      do_head =  'False'
                         path =  '[]'
                         self =
 '<invenio.bibedit_webinterface.WebInterfaceEditPages object at
 0x2aaabd297990>'

 Frame index in /usr/lib64/python2.4/site-
 packages/invenio/bibedit_webinterface.py at line 141
 -------------------------------------------------------------------------------
        138         else:
        139             # Handle AJAX request.
        140             json_response.update(perform_request_ajax(req,
 recid, uid,
 ---->  141
 json_data))
        142             return json.dumps(json_response)
        143
        144     def compare_revisions(self, req, form):
 -------------------------------------------------------------------------------
                json_response =  "{'resultCode': 0, 'recID': 1396254, 'ID':
 21}"
                 ajax_request =  'True'
                          uid =  '0'
                         form =  '{\'ln\': [Field(\'ln\', \'en\')],
 \'jsondata\': [Field(\'jsondata\',
 \'{"recID":1396254,"requestType":"deleteRecordCache","ID":21}\')]}'
                         argd =  "{'ln': 'en'}"
                         self =
 '<invenio.bibedit_webinterface.WebInterfaceEditPages object at
 0x2aaabd297990>'
                          req =
 '<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
 0x2aaac6bd3590>'
                    user_info =  "{'uid': 0, 'agent': 'Mozilla/5.0
 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.24) Gecko/20111103
 Firefox/3.6.24', 'uri': '/record/edit/?', 'precached_usegroups': True,
 'session': 'xyz', 'precached_useadmin': True,  [...]
                        recid =  '1396254'
                    json_data =  "{'requestType': 'deleteRecordCache',
 'recID': 1396254, 'ID': 21}"

 Frame perform_request_ajax in /usr/lib64/python2.4/site-
 packages/invenio/bibedit_engine.py at line 323
 -------------------------------------------------------------------------------
        320         'deleteRecord', 'deleteRecordCache',
 'prepareRecordMerge', 'revert'):
        321         # 'Major' record related requests.
        322         response.update(perform_request_record(req,
 request_type, recid, uid,
 ---->  323                                                data))
        324     elif request_type in ('addField', 'addSubfields', \
        325                           'addFieldsSubfieldsOnPositions',
 'modifyContent', \
        326                           'modifySubfieldTag',
 'modifyFieldTag', \
 -------------------------------------------------------------------------------
                          uid =  '0'
                           ln =  "'en'"
                          req =
 '<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
 0x2aaac6bd3590>'
                 request_type =  "'deleteRecordCache'"
                    undo_redo =  'None'
                        recid =  '1396254'
                       isBulk =  'False'
                         data =  "{'requestType': 'deleteRecordCache',
 'recID': 1396254, 'ID': 21}"
                     response =  '{}'

 Frame perform_request_record in /usr/lib64/python2.4/site-
 packages/invenio/bibedit_engine.py at line 736
 -------------------------------------------------------------------------------
        733     elif request_type == 'deleteRecordCache':
        734         # Delete the cache file. Ignore the request if the
 cache has been
        735         # modified in another editor.
 ---->  736         if cache_exists(recid, uid) and get_cache_mtime(recid,
 uid) == \
        737                 data['cacheMTime']:
        738             delete_cache_file(recid, uid)
        739         response['resultCode'] = 11
 -------------------------------------------------------------------------------
                          uid =  '0'
                           ln =  "'en'"
                          req =
 '<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
 0x2aaac6bd3590>'
                 request_type =  "'deleteRecordCache'"
                        recid =  '1396254'
                         data =  "{'requestType': 'deleteRecordCache',
 'recID': 1396254, 'ID': 21}"
                     response =  '{}'

 }}}

-- 
Ticket URL: <https://invenio-software.org/ticket/849>
Invenio <http://invenio-software.org>

Reply via email to