You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Insert Real Name <in...@yahoo.ca> on 2005/07/15 19:10:17 UTC

Help in diagnosing make fsfscheck

Hello,
I'm a complete SVN beginner.

I successfully compiled subversion-1.2.1 on my hosting provider's 
machine (a Linux host) with the options --without-berkeley-db 
--with-zlib --with-ssl and then executed 'make fsfscheck'.  All the 
tests passed, except the following:

FAIL:  diff_tests.py 15: repos-repos diff on item deleted from HEAD
FAIL:  diff_tests.py 19: diff between two file URLs (issue #1311)
FAIL:  diff_tests.py 23: diff a file within a renamed directory
FAIL:  diff_tests.py 24: diff a prop change on a dir named explicitly
FAIL:  diff_tests.py 25: ensure that diff won't show keywords
FAIL:  diff_tests.py 26: show diffs for binary files with --force
FAIL:  externals_tests.py 3: update to lose an external module
FAIL:  externals_tests.py 4: update change to an unmodified external module
FAIL:  externals_tests.py 5: update changes to a modified external module
FAIL:  externals_tests.py 6: update changes under an external module
FAIL:  externals_tests.py 7: commit and update additional externals
FAIL:  merge_tests.py 1: performing a merge, with mixed results
FAIL:  merge_tests.py 7: merge on deleted directory in target
FAIL:  merge_tests.py 9: merge operations using PREV revision

I'm not sure where to go from here: some of these seem like fairly 
serious failures--but I know very little of subversion so far, I'm 
reading the red-bean book and learning with my own Windows machine. I 
have posted the config.{log,nice,status} from my build are at 
http://lotbiniere.org/subversion along with the full tests.log

Can anyone give me any ideas on what might be wrong and how to diagnose 
it correctly?

-- 
Insert Real Name

insertrealname AT yahoo.ca

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Help in diagnosing make fsfscheck

Posted by Dirk Schenkewitz <sc...@docomolab-euro.com>.
Ben Collins-Sussman wrote:
> Looking at your tests.log, it seems that the test failures are  related 
> to situations whereby a file should be locally modified, but  subversion 
> isn't detecting the modification.
> 
> Are you perhaps running the tests on a FAT filesystem?  FAT has a 2- 
> second time resolution for timestamps, so it's possible that a script  
> can append to a file and then ask 'svn' to stat the file all within 2  
> seconds.  Subversion sees no change in timestamp, so it assumes that  
> the file hasn't changed.

:(
Sorry to nag again, but - knowing that FAT has 2s time resolution, the
algorithm you described somewhere else on the list:

 >>   stat working and textbase files.
 >>   if (mtimes of working and textbase are equal):
 >>        return NOT_CHANGED;
 >>   else if (filesizes of working and textbase are unequal):
 >>        return CHANGED;
 >>   else
 >>        compare the files byte-by-byte.  /* very slow */

is rather prone to give false negatives. And then: Better "very slow"
than wrong.

It is high time to have an alternative algorithm that can be selected
via an entry in the config file of a repository, so that people could
go for a really fast one on unix (as it is now) or a slower one on FAT.

The abovementioned algorithm is IMO buggy. It would be better to do:

   stat working and textbase files.
   if (mtimes of working and textbase are not equal):
        return CHANGED;
   else if (filesizes of working and textbase are unequal):
        return CHANGED;
   else
        return UNCHANGED;

That would be a bit better than it is now (less false negatives) and
would be even faster than now. And please note that you don't get any
false positives, because if a user just 'touch'ed a file, he probably
WANTS to bump up the revnum. If the actual data is not changed, so
what?! Xdiff will find out and make a very cheap new revnum.

But an industrial-strength algorithm has to be exactly as follows:

   stat working and textbase files.
   if (mtimes of working and textbase are not equal):
        return CHANGED;
   else if (filesizes of working and textbase are unequal):
        return CHANGED;
   else
        compare the files byte-by-byte.  /* very slow */

I admit that it is unlikely to hit the 2s-problem when only humans are
involved, but what if some script is used to checkout something, make
a small change and commit?

Best regards
   Dirk (now going into a holiday) :)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Help in diagnosing make fsfscheck

Posted by Insert Real Name <in...@yahoo.ca>.
Ben Collins-Sussman wrote:
> Looking at your tests.log, it seems that the test failures are  related 
> to situations whereby a file should be locally modified, but  subversion 
> isn't detecting the modification.
> 
> Are you perhaps running the tests on a FAT filesystem?  FAT has a 2- 
> second time resolution for timestamps, so it's possible that a script  
> can append to a file and then ask 'svn' to stat the file all within 2  
> seconds.  Subversion sees no change in timestamp, so it assumes that  
> the file hasn't changed.
> 
> 
> 
No, this is on a Linux x86 system (shared hosting machine). I won't be 
creating/using berkeley-db type repositories, just fsfs somewhere below 
my home directory on the web hoster.

In any event, I've now done this test at least 3 times:

rm -rf subversion-1.2.1
tar zxf subversion-1.2.1.tar.gz
cd subversion-1.2.1
./configure --prefix=/home/myhome/opt --without-berkeley-db --with-ssl 
--with-zlib
make
make fsfscheck

And each time the last make step gives different test failures!

But I had forgotten that the hosting company keeps home directories 
mounted via NFS--as soon as I did the same build procedure on the 
hosting machine in /usr/local/tmp (locally mounted ext3 filesystem), all 
tests passed O.K.

So, sorry to have bothered the mailing list with this, which is 
mentioned somewhere in the build instructions.

I notice that the FAQ addresses the problem of NFS Subversion fsfs 
repositories on Linux by suggesting that such NFS shares be mounted with 
  subtree checking disabled, something which I doubt I can convince the 
hosting company to try... is there any other way around this particular 
Linux/Subversion problem?


-- 
Insert Real Name

insertrealname AT yahoo.ca

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Help in diagnosing make fsfscheck

Posted by Ben Collins-Sussman <su...@collab.net>.
Looking at your tests.log, it seems that the test failures are  
related to situations whereby a file should be locally modified, but  
subversion isn't detecting the modification.

Are you perhaps running the tests on a FAT filesystem?  FAT has a 2- 
second time resolution for timestamps, so it's possible that a script  
can append to a file and then ask 'svn' to stat the file all within 2  
seconds.  Subversion sees no change in timestamp, so it assumes that  
the file hasn't changed.



On Jul 15, 2005, at 2:10 PM, Insert Real Name wrote:

> Hello,
> I'm a complete SVN beginner.
>
> I successfully compiled subversion-1.2.1 on my hosting provider's  
> machine (a Linux host) with the options --without-berkeley-db -- 
> with-zlib --with-ssl and then executed 'make fsfscheck'.  All the  
> tests passed, except the following:
>
> FAIL:  diff_tests.py 15: repos-repos diff on item deleted from HEAD
> FAIL:  diff_tests.py 19: diff between two file URLs (issue #1311)
> FAIL:  diff_tests.py 23: diff a file within a renamed directory
> FAIL:  diff_tests.py 24: diff a prop change on a dir named explicitly
> FAIL:  diff_tests.py 25: ensure that diff won't show keywords
> FAIL:  diff_tests.py 26: show diffs for binary files with --force
> FAIL:  externals_tests.py 3: update to lose an external module
> FAIL:  externals_tests.py 4: update change to an unmodified  
> external module
> FAIL:  externals_tests.py 5: update changes to a modified external  
> module
> FAIL:  externals_tests.py 6: update changes under an external module
> FAIL:  externals_tests.py 7: commit and update additional externals
> FAIL:  merge_tests.py 1: performing a merge, with mixed results
> FAIL:  merge_tests.py 7: merge on deleted directory in target
> FAIL:  merge_tests.py 9: merge operations using PREV revision
>
> I'm not sure where to go from here: some of these seem like fairly  
> serious failures--but I know very little of subversion so far, I'm  
> reading the red-bean book and learning with my own Windows machine.  
> I have posted the config.{log,nice,status} from my build are at  
> http://lotbiniere.org/subversion along with the full tests.log
>
> Can anyone give me any ideas on what might be wrong and how to  
> diagnose it correctly?
>
> -- 
> Insert Real Name
>
> insertrealname AT yahoo.ca
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org