nmh-workers
[Top] [All Lists]

Re: [Nmh-workers] Truncated Email.

2016-03-06 11:50:11
Hi Ken,

The scan listing for 'inc' is being generated as it's reading the
spool file.  So the ONLY way for you to get two scans is for you do
actually incorporate the mail twice.  The spool is locked, yes ... but
I see from the code it's unlocked before it gets truncated

Is it?  I didn't notice that in 1.6.

(that seems like a bug to me, and that might be the cause of other
problems).

But ... because the folder was read at startup both times, it thought
that the start of new messages was at the same point.  So the second
inc put the messages in the same files as the first inc.

Sounds plasible...  I haven't delved deep enough, but wouldn't the creat
of [9704, 9712] have failed if the files already existed?

Fixing this might be tough ... I don't know how locking behaves when
you truncate a file

Well, the locks are advisory only, so I don't think the kernel's locking
code cares what happens to the file, e.g. writing to it, or truncating
it.

(although I see that it uses creat() to truncate a file, rather than
ftruncate(); that seems weird to me?).

And it's a bug it closes creat's FD, freeing the lock.

I'd like to point out that it has never been safe to run two inc's at
the same time, so it's not surprising that this caused problems.

Ouch!  I've just skimmed inc(1) and see no sign of that restriction?  I
think I'll make a ~/bin/inc that uses flock(1).

Cheers, Ralph.

_______________________________________________
Nmh-workers mailing list
Nmh-workers(_at_)nongnu(_dot_)org
https://lists.nongnu.org/mailman/listinfo/nmh-workers

<Prev in Thread] Current Thread [Next in Thread>