I think there was a bug on some platform or something where O_CREAT
would in fact fail if the file already existed, or overwrote it, I
forget which.  I'll look through the logs and see if I can find the
issue.  For now, since all we're talking about is a spurious error
message, I'm not too concerned.

C

On Tue, 2002-02-26 at 06:42, Theo Van Dinter wrote:
> On Tue, Feb 26, 2002 at 09:35:30AM -0500, Theo Van Dinter wrote:
> > On Tue, Feb 26, 2002 at 03:04:27AM -0800, Craig Hughes wrote:
> > > FYI, your code example is not even close to concurrency-safe.  If one
> > > instance checks (-f $path) and finds no file, then context switches, and
> > > instance #2 performs the same check, then both instances will try to
> > > create a new file, and you'll probably end up with some weird mangled DB
> > > file.
> > > 
> > > >          if ( -f $path ) {
> > > >            tie %{$self->{accum}},"AnyDBM_File",$path, O_RDWR,   #open rw w/lock
> > > >                          (oct ($main->{conf}->{auto_whitelist_file_mode}) & 
>0666)
> > > >                or die "Cannot open existing auto_whitelist_path $path: $!\n";
> > > >            
> > > >          } else {
> > > >            tie %{$self->{accum}},"AnyDBM_File",$path, O_RDWR|O_CREAT,   #open 
>rw w/lock
> > > >                          (oct ($main->{conf}->{auto_whitelist_file_mode}) & 
>0666)
> > > >                or die "Cannot open auto_whitelist_path $path for creation: 
>$!\n";
> > > >          }
> > 
> > Is there a reason you do a check for O_CREAT?  O_CREAT just says "create if
> > it doesn't already exist", it won't truncate the current data (that's
> > O_TRUNC).  I would elliminate this code and just have a single tie with
> > O_CREAT.
> 
> I just noticed the comment in the code about "with lock", which O_CREAT
> won't give you either.  You'd want to do this check if you're using
> O_CREAT|O_EXCL (which will error if the file already exists.)
> 
> -- 
> Randomly Generated Tagline:
> "No boom *today*.  Boom *tomorrow*.  There's always a boom tomorrow."
>                  - Ivanova from Babylon 5
> 
> _______________________________________________
> Spamassassin-talk mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/spamassassin-talk
> 
> 


_______________________________________________
Spamassassin-talk mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/spamassassin-talk

Reply via email to