[Bug 1059085] Re: recovery silently deletes data in large files.

Adam Buchbinder adam.buchbinder at gmail.com
Sun Sep 30 15:02:02 UTC 2012


** Branch linked: lp:~adam-buchbinder/ubuntu/lucid/vim/vim-large-file-
recovery

** Summary changed:

- recovery silently deletes data in large files.
+ Lucid: recovery silently deletes data in large files.

** Description changed:

  This is present in vim 2:7.2.330-1ubuntu3, in Lucid. It was fixed
- upstream in 7.3.216. To replicate the bug (taken from
+ upstream in 7.3.216, which is in Precise and newer. To replicate the bug
+ (taken from
  https://groups.google.com/d/topic/vim_use/CNuBWi0763I/discussion):
- 
  
  [Summary]
  
  The recovery process silently deletes part of the file it's run on, when
  the file is large enough (40,000 lines seems to trigger it).
- 
  
  [Impact]
  
  The recovery process, while it may not recover all of the user's changes
  since the process was killed, is expected to at least not destroy random
  chunks of data in the middle of a large file. This bug has bitten me at
  least twice--silently!--before I found out what was going on.
- 
  
  [Test Case]
  
  1. Run 'vi test.txt'.
  2. Type '78a-' [ESC], then 'yy', '39999p', then ':wq', to create a 40,000-line test file.
  3. Run 'cp test.txt test.bak'.
  4. Run 'vi test.txt'.
  5. Type 'Ox' to make a small change to the file.
  6. From another terminal window, run 'ps x|grep [t]est.txt' to find the PID of the running vim process.
  7. Run 'kill $PID' to terminate the process.
  8. Run 'vi test.txt', and type 'r' to attempt recovery, then ':wq' to save the recovered contents.
  9. Run 'wc -l test.txt test.bak'.
  
  Expected output:
  $ wc -l test.txt test.bak
-   40001 test.txt
-   40000 test.bak
+   40001 test.txt
+   40000 test.bak
  
  Actual output:
  $ wc -l test.txt test.bak
-   38629 test.txt
-   40000 test.bak
- 
+   38629 test.txt
+   40000 test.bak
  
  [Regression Potential]
  
  Small. The patch I'm backporting
  (https://groups.google.com/d/topic/vim_dev/lTos-bGcNgU/discussion) in is
  part of the new 7.3 series, and vim has a large test suite; I'm porting
  and checking the patch as-is, including its tests. If this breaks the
  recovery process, the regression tests will catch it.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to vim in Ubuntu.
https://bugs.launchpad.net/bugs/1059085

Title:
  Lucid: recovery silently deletes data in large files.

Status in “vim” package in Ubuntu:
  Triaged

Bug description:
  This is present in vim 2:7.2.330-1ubuntu3, in Lucid. It was fixed
  upstream in 7.3.216, which is in Precise and newer. To replicate the
  bug (taken from
  https://groups.google.com/d/topic/vim_use/CNuBWi0763I/discussion):

  [Summary]

  The recovery process silently deletes part of the file it's run on,
  when the file is large enough (40,000 lines seems to trigger it).

  [Impact]

  The recovery process, while it may not recover all of the user's
  changes since the process was killed, is expected to at least not
  destroy random chunks of data in the middle of a large file. This bug
  has bitten me at least twice--silently!--before I found out what was
  going on.

  [Test Case]

  1. Run 'vi test.txt'.
  2. Type '78a-' [ESC], then 'yy', '39999p', then ':wq', to create a 40,000-line test file.
  3. Run 'cp test.txt test.bak'.
  4. Run 'vi test.txt'.
  5. Type 'Ox' to make a small change to the file.
  6. From another terminal window, run 'ps x|grep [t]est.txt' to find the PID of the running vim process.
  7. Run 'kill $PID' to terminate the process.
  8. Run 'vi test.txt', and type 'r' to attempt recovery, then ':wq' to save the recovered contents.
  9. Run 'wc -l test.txt test.bak'.

  Expected output:
  $ wc -l test.txt test.bak
    40001 test.txt
    40000 test.bak

  Actual output:
  $ wc -l test.txt test.bak
    38629 test.txt
    40000 test.bak

  [Regression Potential]

  Small. The patch I'm backporting
  (https://groups.google.com/d/topic/vim_dev/lTos-bGcNgU/discussion) in
  is part of the new 7.3 series, and vim has a large test suite; I'm
  porting and checking the patch as-is, including its tests. If this
  breaks the recovery process, the regression tests will catch it.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/vim/+bug/1059085/+subscriptions




More information about the foundations-bugs mailing list