[spambayes-bugs] [ spambayes-Bugs-831864 ] sb_mboxtrain.py: flock vs. lockf

SourceForge.net noreply at sourceforge.net
Tue Oct 28 14:06:54 EST 2003


Bugs item #831864, was opened at 2003-10-28 11:06
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=498103&aid=831864&group_id=61702

Category: None
Group: Source code - CVS
Status: Open
Resolution: None
Priority: 5
Submitted By: Mike Klein (mklein9)
Assigned to: Nobody/Anonymous (nobody)
Summary: sb_mboxtrain.py: flock vs. lockf

Initial Comment:
sb_mboxtrain has an inconsistent use of flock and lockf: 
flock to set the mailbox file lock and lockf to unlock it.  
This causes on an older Linux system (RH 5.2) a fatal 
error in the lockf invocation.  The difference appears to 
be that flock can use fcntl if HAVE_FLOCK is undefined.  
lockf always uses C's flock, which may not be available.

% sb_mboxtrain.py -d .hammie.db -g imap-
mail/spamNo -s imap-mail/spamYes
Training ham (imap-mail/spamNo):
  Reading as Unix mbox
   180Traceback (most recent call last):
  File "/usr/local/bin/sb_mboxtrain.py", line 317, in ?
    main()
  File "/usr/local/bin/sb_mboxtrain.py", line 302, in main
    train(h, g, False, force, trainnew, removetrained)
  File "/usr/local/bin/sb_mboxtrain.py", line 230, in train
    mbox_train(h, path, is_spam, force)
  File "/usr/local/bin/sb_mboxtrain.py", line 181, in 
mbox_train
    fcntl.lockf(f, fcntl.LOCK_UN)
IOError: [Errno 16] Device or resource busy
% 

The fix is easy and seems to work fine: change the 
invocation of lockf to flock in sb_mboxtrain.py.

% diff -C2 sb_mboxtrain.py.orig sb_mboxtrain.py
*** sb_mboxtrain.py.orig        Tue Oct 28 11:05:47 
2003
--- sb_mboxtrain.py     Tue Oct 28 11:05:57 2003
***************
*** 179,183 ****
              raise
  
!     fcntl.lockf(f, fcntl.LOCK_UN)
      f.close()
      if loud:
--- 179,183 ----
              raise
  
!     fcntl.flock(f, fcntl.LOCK_UN)
      f.close()
      if loud:
% 



----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=498103&aid=831864&group_id=61702



More information about the Spambayes-bugs mailing list