Re: ANNOUNCE: balsa-1.1.7 release



On Mon, 16 July 12:13 Cristina Nunes wrote:
> Done that.
> It compiled.
> 
> Now - functionality
> 
> It seems to work fine until I try to get mail from my multiple accounts (I
> still use pop).
> At this point it stops and hangs.
> I've tried to trace it using strace <command>: this is the last few lines
> of the output.

<snip>

> ioctl(7, FIONREAD, [0])                 = 0
> gettimeofday({995272443, 411708}, NULL) = 0
> ioctl(7, FIONREAD, [0])                 = 0
> poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=7, events=POLLIN},
> {fd=8, events=POLLIN}], 4, 15906) = -1 EINTR (Interrupted system call)
> --- SIGRT_1 (Real-time signal 1) ---
> wait4(4896, NULL, __WCLONE, NULL)       = 4896
> _exit(0)                                = ?


That poll() returning EINTR worries me a bit.  The correct reaction to a system
call returning EINTR is usually to call it again.  This is a related problem
to the one in libESMTP which caused large messages to fail randomly (in that
case EINTR was handled properly but errno wasn't reset to 0).

I don't know where in Balsa's code the poll() is so I can't say much more just
now.  But I can say I have been bitten badly by this class of bug - made worse
by the fact I've been aware of the care that must be taken with system calls
returning EINTR for the last 15 years or more.

Brian Stafford

P.S.

libESMTP's README and ./configure --help both mention options needed for Balsa.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]