You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by km...@rockwellcollins.com on 2010/11/10 15:01:08 UTC

Manually removing corrupted TXNs

I finally wrote a simple script to remove dead transactions older than 1 
week.  It worked
great, but there appears to be a few old TXNs that are somehow 
corrupted/malformed.

Any issues with just going into the fsfs db/transactions directory and 
removing
the offending named directory manually?

Using fsfs svn 1.6.12 and mod_dav_svn on windows.  (Some of
these transactions were probably created with older versions.)

All 21k revisions verify fine, but svnlook does report an error:

H:\svn\repos>svnadmin lstxns the_repo
77-1

H:\svn\repos>svnlook info the_repo -t 77-1
svnlook: Malformed file


H:\svn\repos>dir 787_displays_repo\db\transactions\77-1.txn
 Directory of H:\svn\repos\the_repo\db\transactions\77-1.txn

05/21/2008  10:59 AM    <DIR>          .
05/21/2008  10:59 AM    <DIR>          ..
05/21/2008  10:59 AM                 0 changes
05/21/2008  10:59 AM                 4 next-ids
05/21/2008  10:59 AM               153 node.0.0
05/21/2008  10:59 AM                 0 props
05/21/2008  10:59 AM                 0 rev
05/21/2008  10:59 AM                 0 rev-lock
               6 File(s)            157 bytes
               2 Dir(s)  64,575,000,576 bytes free

H:\svn\repos>type the_repo\db\transactions\77-1.txn\next-ids
0 0

H:\svn\repos>type the_repo\db\transactions\77-1.txn\node.0.0
id: 0.0.t77-1
type: dir
pred: 0.0.r77/37863
count: 78
text: 77 37752 98 98 55b9c9a8be05671d26f80ae39de656c0
cpath: /
copyroot: 0 /
is-fresh-txn-root: y

I have some other repos with transactions with similar errors
and also other ones with slightly different errors.

The repos themselves verify, dump, and load fine, the
data itself is stored on an enterprise SAN.  No filesystem
corruption found.

The other errors:

svnlook: Can't open file 
'H:\svn\repos\the_repo2\db\transactions\2700-2.txn\pr
ops': The system cannot find the file specified.

H:\svn\repos>dir the_repo2\db\transactions\2700-2.txn
 Directory of H:\svn\repos\the_repo2\db\transactions\2700-2.txn

11/27/2007  02:08 AM    <DIR>          .
11/27/2007  02:08 AM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  64,568,352,768 bytes free


svnlook: Corrupt node-revision '0.0.t33407-bp8'
svnlook: Missing id field in node-rev

H:\svn\repos>dir the_repo3\db\transactions\33407-bp8.txn
 Directory of H:\svn\repos\the_repo3\db\transactions\33407-bp8.txn

11/06/2009  12:46 PM    <DIR>          .
11/06/2009  12:46 PM    <DIR>          ..
11/06/2009  12:46 PM                 0 changes
11/06/2009  12:46 PM                 4 next-ids
11/06/2009  12:46 PM               182 node.0.0
11/06/2009  12:46 PM               216 props
               4 File(s)            402 bytes
               2 Dir(s)  64,568,352,768 bytes free

(next-ids and node.0.0 just contain nulls.  props contains the actual 
property data.)

thanks!
Kevin R.

Re: Manually removing corrupted TXNs

Posted by km...@rockwellcollins.com.
Daniel Shahaf <d....@daniel.shahaf.name> wrote on 11/10/2010 10:35:16 AM:

> > I finally wrote a simple script to remove dead transactions older than 
1 
> > week.  It worked
> > great, but there appears to be a few old TXNs that are somehow 
> > corrupted/malformed.
> > 
> > Any issues with just going into the fsfs db/transactions directory and 

> > removing
> > the offending named directory manually?
> > 
> 
> I'm not sure.  Does 'svnadmin rmtxns' not work?

Good question.  My script was failing due to svnlook, but
it appears svnadmin rmxtns also fails.

H:\svn\repos>svnadmin rmtxns the_repo 77-1
svnadmin: Malformed file

I'm guessing two things here.  It is probably safe to
just remove the dir, and that rmtxns probably should
be changed to not require a transaction be valid
before removing it...

Kevin R.

Re: Manually removing corrupted TXNs

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
kmradke@rockwellcollins.com wrote on Wed, Nov 10, 2010 at 09:01:08 -0600:
> I finally wrote a simple script to remove dead transactions older than 1 
> week.  It worked
> great, but there appears to be a few old TXNs that are somehow 
> corrupted/malformed.
> 
> Any issues with just going into the fsfs db/transactions directory and 
> removing
> the offending named directory manually?
> 

I'm not sure.  Does 'svnadmin rmtxns' not work?

> Using fsfs svn 1.6.12 and mod_dav_svn on windows.  (Some of
> these transactions were probably created with older versions.)
> 
> All 21k revisions verify fine, but svnlook does report an error:
> 
> H:\svn\repos>svnadmin lstxns the_repo
> 77-1
> 
> H:\svn\repos>svnlook info the_repo -t 77-1
> svnlook: Malformed file
> 
> 
> H:\svn\repos>dir 787_displays_repo\db\transactions\77-1.txn
>  Directory of H:\svn\repos\the_repo\db\transactions\77-1.txn
> 
> 05/21/2008  10:59 AM    <DIR>          .
> 05/21/2008  10:59 AM    <DIR>          ..
> 05/21/2008  10:59 AM                 0 changes
> 05/21/2008  10:59 AM                 4 next-ids
> 05/21/2008  10:59 AM               153 node.0.0
> 05/21/2008  10:59 AM                 0 props
> 05/21/2008  10:59 AM                 0 rev
> 05/21/2008  10:59 AM                 0 rev-lock
>                6 File(s)            157 bytes
>                2 Dir(s)  64,575,000,576 bytes free
> 
> H:\svn\repos>type the_repo\db\transactions\77-1.txn\next-ids
> 0 0
> 
> H:\svn\repos>type the_repo\db\transactions\77-1.txn\node.0.0
> id: 0.0.t77-1
> type: dir
> pred: 0.0.r77/37863
> count: 78
> text: 77 37752 98 98 55b9c9a8be05671d26f80ae39de656c0
> cpath: /
> copyroot: 0 /
> is-fresh-txn-root: y
> 
> I have some other repos with transactions with similar errors
> and also other ones with slightly different errors.
> 
> The repos themselves verify, dump, and load fine, the
> data itself is stored on an enterprise SAN.  No filesystem
> corruption found.
> 
> The other errors:
> 
> svnlook: Can't open file 
> 'H:\svn\repos\the_repo2\db\transactions\2700-2.txn\pr
> ops': The system cannot find the file specified.
> 
> H:\svn\repos>dir the_repo2\db\transactions\2700-2.txn
>  Directory of H:\svn\repos\the_repo2\db\transactions\2700-2.txn
> 
> 11/27/2007  02:08 AM    <DIR>          .
> 11/27/2007  02:08 AM    <DIR>          ..
>                0 File(s)              0 bytes
>                2 Dir(s)  64,568,352,768 bytes free
> 
> 
> svnlook: Corrupt node-revision '0.0.t33407-bp8'
> svnlook: Missing id field in node-rev
> 
> H:\svn\repos>dir the_repo3\db\transactions\33407-bp8.txn
>  Directory of H:\svn\repos\the_repo3\db\transactions\33407-bp8.txn
> 
> 11/06/2009  12:46 PM    <DIR>          .
> 11/06/2009  12:46 PM    <DIR>          ..
> 11/06/2009  12:46 PM                 0 changes
> 11/06/2009  12:46 PM                 4 next-ids
> 11/06/2009  12:46 PM               182 node.0.0
> 11/06/2009  12:46 PM               216 props
>                4 File(s)            402 bytes
>                2 Dir(s)  64,568,352,768 bytes free
> 
> (next-ids and node.0.0 just contain nulls.  props contains the actual 
> property data.)
> 
> thanks!
> Kevin R.