Issue1280

Title Commit happens partially when out of disk space
Priority bug Status chatting
Superseder Nosy List cgray4, mpm, pmezard, tonfa
Assigned To Topics

Created on 2008-08-29.16:51:09 by cgray4, last changed 2008-09-05.20:04:47 by mpm.

Messages
msg6956 (view) Author: mpm Date: 2008-09-05.20:04:47
This says the damage occurred in changeset 11 (of 40)?

Normal behavior for errors encountered on commit is to roll back the transaction
in question. It's not clear from your report that that didn't in fact happen and
that the damage didn't actually occur much earlier.
msg6870 (view) Author: cgray4 Date: 2008-08-29.23:37:33
Unfortunately, I don't have a traceback for the commit.  As I remember, the
output simply said something like "Write failed (quota exceeded)" without a
python traceback.

The output of hg verify:

checking changesets                                                            
                                                                             
checking manifests                                                             
                                                                             
crosschecking files in changesets and manifests                                
                                                                             
checking files                                                                 
                                                                             
 thesis-presentation.pdf@?: data length off by -1408545 bytes                  
                                                                             
 thesis-presentation.pdf@11: unpacking bb24330358a1: Error -5 while
decompressing data                                                             
         
 thesis-presentation.xml@?: data length off by -1591509 bytes                  
                                                                             
 thesis-presentation.xml@11: unpacking 80ced2679c5d: integrity check failed on
data/thesis-presentation.xml.d:9                                              
21 files, 12 changesets, 40 total revisions                                    
                                                                             
4 integrity errors encountered!                                                
                                                                             
(first damaged changeset appears to be 11)
msg6867 (view) Author: tonfa Date: 2008-08-29.17:08:44
and can you run 'hg verify' and report the result ?

thanks
msg6866 (view) Author: tonfa Date: 2008-08-29.17:08:02
do you have a traceback for the commit ?
msg6865 (view) Author: cgray4 Date: 2008-08-29.16:51:09
I tried to run commit today and went over my quota.  I ran the status command in
the directory to see if there was anything that needed to be done about that
after I had freed up some space.  The status seemed fine.  However, when I tried
to clone the directory, I got the following backtrace.

** unknown exception encountered, details follow                               
                                                                             
** report bug details to http://www.selenic.com/mercurial/bts                  
                                                                             
** or mercurial@selenic.com           
** Mercurial Distributed SCM (version 28054773438c)                            
                                                                             
Traceback (most recent call last):                                             
                                                                             
  File "/scratch/bin/hg", line 14, in <module>                                 
                                                                             
    mercurial.dispatch.run()                                                   
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/dispatch.py",
line 20, in run                                                         
    sys.exit(dispatch(sys.argv[1:]))                                           
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/dispatch.py",
line 29, in dispatch                                                    
    return _runcatch(u, args)                                                  
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/dispatch.py",
line 45, in _runcatch                                                   
    return _dispatch(ui, args)                                                 
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/dispatch.py",
line 348, in _dispatch                                                  
    ret = _runcommand(ui, options, cmd, d)                                     
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/dispatch.py",
line 401, in _runcommand                                                
    return checkargs()                                                         
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/dispatch.py",
line 357, in checkargs                                                  
    return cmdfunc()                                                           
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/dispatch.py",
line 342, in <lambda>                                                   
    d = lambda: func(ui, *args, **cmdoptions)                                  
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/commands.py",
line 419, in clone                                                      
    update=not opts['noupdate'])                                               
                                                                             
  File "/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/hg.py",
line 238, in clone                                                            
    _update(dest_repo, checkout)                                               
                                                                             
  File "/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/hg.py",
line 252, in _update                                                          
    def _update(repo, node): return update(repo, node)                         
                                                                             
  File "/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/hg.py",
line 257, in update                                                           
    stats = _merge.update(repo, node, False, False, None)                      
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/merge.py", line
657, in update                                                        
    stats = applyupdates(repo, action, wc, p2)                                 
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/merge.py", line
516, in applyupdates                                                  
    t = mctx.filectx(f).data()                                                 
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/context.py",
line 243, in data                                                        
    def data(self): return self._filelog.read(self._filenode)                  
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/filelog.py",
line 31, in read                                                         
    t = self.revision(node)                                                    
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/revlog.py", line
947, in revision                                                     
    bins = [self.chunk(r, df) for r in xrange(base + 1, rev + 1)]              
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/revlog.py", line
900, in chunk                                                        
    return decompress(c)                                                       
                                                                             
  File
"/scratch/stow/mercurial//lib/python2.5/site-packages/mercurial/revlog.py", line
97, in decompress                                                    
    return _decompress(bin)                                                    
                                                                             
zlib.error: Error -5 while decompressing data                                  
                                                                             


I apologize if this is a know issue; I don't follow hg development.  My feeling,
however, is that the commit should have been backed out when writing the file
failed because the disk seemed full.
History
Date User Action Args
2008-09-05 20:04:47mpmsetnosy: + mpm
messages: + msg6956
2008-09-02 06:27:27pmezardsetnosy: + pmezard
2008-08-29 23:37:34cgray4setmessages: + msg6870
2008-08-29 17:08:44tonfasetmessages: + msg6867
2008-08-29 17:08:02tonfasetstatus: unread -> chatting
nosy: + tonfa
messages: + msg6866
2008-08-29 16:51:09cgray4create