Bert Huijben wrote on Thu, Mar 28, 2013 at 13:39:36 +0100:
> 
> 
> > -----Original Message-----
> > From: Daniel Shahaf [mailto:danie...@elego.de]
> > Sent: donderdag 28 maart 2013 13:22
> > To: Bert Huijben
> > Cc: dev@subversion.apache.org
> > Subject: Re: svn commit: r1462054 - in /subversion/branches/verify-at-
> > commit/subversion: include/svn_fs.h libsvn_fs/fs-loader.c libsvn_fs/fs-
> > loader.h
> > 
> > Bert Huijben wrote on Thu, Mar 28, 2013 at 12:52:51 +0100:
> > >
> > >
> > > > -----Original Message-----
> > > > From: danie...@apache.org [mailto:danie...@apache.org]
> > > > Sent: donderdag 28 maart 2013 12:37
> > > > To: comm...@subversion.apache.org
> > > > Subject: svn commit: r1462054 - in /subversion/branches/verify-at-
> > > > commit/subversion: include/svn_fs.h libsvn_fs/fs-loader.c
> libsvn_fs/fs-
> > > > loader.h
> > > >
> > > > Author: danielsh
> > > > Date: Thu Mar 28 11:36:50 2013
> > > > New Revision: 1462054
> > > >
> > > > URL: http://svn.apache.org/r1462054
> > > > Log:
> > > > On the verify-at-commit branch, add a backend-independent
> > > > implementation:
> > > > a db/fs.conf file.
> > > >
> > > > * subversion/include/svn_fs.h
> > > >   (SVN_FS_CONFIG_SECTION_MISC,
> > > > (SVN_FS_CONFIG_OPTION_VERIFY_AT_COMMIT):
> > > >     New macros.
> > > >
> > > > * subversion/libsvn_fs/fs-loader.h
> > > >   (svn_fs_t.verify_at_commit): New struct member.
> > > >
> > > > * subversion/libsvn_fs/fs-loader.c
> > > >   (svn_config.h): Include.
> > > >   (CONFIG_FILENAME): New macro.
> > > >   (write_config): New helper, based on the eponymous helper in FSFS
> > (rather
> > > >     than on write_fs_type()).
> > > >   (svn_fs_create): Call write_config().
> > > >   (fs_new): Initialise new struct member.
> > > >   (svn_fs_open): Read config.
> > > >   (svn_fs_commit_txn): Use the config.
> > >
> > > Summarizing what was said on #svn-dev
> > >
> > > I think we should make this a fsfs only feature that uses the existing
> > fsfs.conf file.
> > >
> > > The option doesn't appear to make much sense for the now mostly
> > > deprecated for new development BDB filesystem and the new work of
> > > stefan2 might give new ideas. Besides if a filesystem needs a
> > > verification step to be stable that should be part of the design.
> > > Subversion shouldn't start assuming that filesystems are likely to
> > > break down. (What would that tell us about the stability of previous
> > > versions of Subversion?)
> > >
> > 
> > Bugs happen, this is one way to catch them.  Compare r1086222, which is
> > basically a special-case of this work.
> > 
> > > The reading of one file for each access to the repository is a more
> > > than measurable slowdown when profiling operations. (Reading fsfs.conf
> > > over and over again is one of the most expensive things apache worker
> > > processes do when I profiled them. I think stefan2 optimized some of
> > > this away)
> > >
> > 
> > OK, we can move this particular config knob to be provided at runtime by
> > whoever creates the svn_fs_t.
> > 
> > > Opening a file is expensive on Windows and probably on any other
> > > system that always uses locking for file accesss and/or on-demand
> > > virus scanners and also on network drives.
> > >
> > 
> > Don't virus-scan repository config files.  (Why would you want to do
> > that?  Do you fear svn would try to execute the config option's value?)
> 
> These scanners scan everything; any file access.
> 
> Which might just be for looking that the file is uninteresting, but to get
> to that point they already opened the file and read the header. (Equivalent
> to what libmagic does)
> 
> In many companies everything must be scanned and in most companies that use
> virusscanners on Windows the average user is not even allowed to configure
> skipping specific directories.
> 

Who cares about the average user?  This is server code.

> And users are certainly not going to configure a specific new in Subversion
> 1.8 file to be ignored. That doesn't scale. (And .conf is not a standard
> windows extension that would be pre-configured)
> 
> The skip handling may introduce bugs, so in many virusscanners the skip
> handling is done in the scanner process and not in the kernel module that
> hands the file to the scanner. So you already have the penalty of at least
> two interprocess communication cycles.
> 

Right, because for some unexplainable reason you chose to run a virus
scanner on a server box.  That's about as questionable to me as running
'verify' during the commit process seems to be to you. :-)

> > >
> <snip>
> 
>       Bert
> 

Reply via email to