#1816 ClientError: Malformed file on turbogears1 svn repo

v1.0.0
closed
Wolf
sf-2 (994)
SCM
nobody
2015-08-20
2011-03-25
No

http://www.raditha.com/blog/archives/668.html indicates "Malformed file" can be a problem with specific revprops in the repo.

If we're confident it's a problem with external data, we should figure out how to handle the error more gracefully (catch & log the exception; save whatever is possible with the rest of the commit data?)

Module allura.model.repository:288 in refresh
<<                  continue
                   ci.set_context(self)
                   self._impl.refresh_commit(ci, seen_object_ids)
                   if (i+1) % self.BATCH_SIZE == 0:
                       log.info('...... flushing %d commits (%d total)',
>>  self._impl.refresh_commit(ci, seen_object_ids)
Module forgesvn.model.svn:220 in refresh_commit
<<              revision_start=rev,
                   limit=1,
                   discover_changed_paths=True)[0]
               # Save commit metadata
               ci.committed = Object(
>>  discover_changed_paths=True)[0]
ClientError: Malformed file
app: u'code'
exchange: 'audit'
key: u'repo.refresh'
message:
"""{'mount_point': u'code',
 'project_id': ObjectId('4d752ea9b9363c1d27000897'),
 'user_id': None}"""

project: u'turbogears1'
user: u'*anonymous'

Discussion

  • Wolf - 2011-03-28
    • status: open --> in-progress
    • assigned_to: Wolf
     
  • Wolf - 2011-03-28
    • status: in-progress --> code-review
    • assigned_to: Wolf --> Rick Copéland
     
  • Wolf - 2011-03-28

    "fix" (as per instructions) on forge wo/1816

    I tested with an svnsync'ed copy of the failing repo and was unable to reproduce the error (which is no longer happening by the way), but this code at least didn't make anything worse.

     
  • Rick Copeland - 2011-03-28
    • status: code-review --> in-progress
     
  • Rick Copeland - 2011-03-28

    can we use log.exception() rather than log.info() so we at least get a traceback in the logs?

    • assigned_to: Rick Copéland --> Wolf
     
  • Anonymous - 2011-03-28

    Originally by: *anonymous

    If we want to keep the log level at INFO (probably), log.info('........' , exc_info=True) should do it

     
  • Dave Brondsema

    Dave Brondsema - 2011-03-28

    ping to update solr

     
  • Wolf - 2011-03-29
    • status: in-progress --> closed
     

Log in to post a comment.