[Dovecot] Re: [dovecot-cvs] dovecot/src/lib fdpass.c,1.28,1.29
Will this perhaps fix these? imap-login: Jun 15 12:28:16 Panic: file ioloop.c: line 90: assertion failed: (i o->fd <= current_ioloop->highest_fd) dovecot: Jun 15 12:28:16 Error: child 17987 (login) killed with signal 6 imap-login: Jun 15 13:14:58 Panic: file ioloop.c: line 90: assertion failed: (i o->fd <= current_ioloop->highest_fd) dovecot: Jun 15 13:14:58 Error: child 13002 (login) killed with signal 6 On Tue, Jun 15, 2004 at 02:42:25AM +0300, cras@procontrol.fi wrote:
Update of /home/cvs/dovecot/src/lib In directory talvi:/tmp/cvs-serv11171
Modified Files: fdpass.c Log Message: Solaris fix by Tim Hurman
Index: fdpass.c =================================================================== RCS file: /home/cvs/dovecot/src/lib/fdpass.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- fdpass.c 1 Dec 2003 19:07:34 -0000 1.28 +++ fdpass.c 14 Jun 2004 23:42:23 -0000 1.29 @@ -31,12 +31,20 @@ #include
#ifndef CMSG_SPACE -# define CMSG_ALIGN(len) \ +# if defined(_CMSG_DATA_ALIGN) && defined(_CMSG_HDR_ALIGN) /* for Solaris */ +# define CMSG_ALIGN(len) _CMSG_DATA_ALIGN(len) +# define CMSG_SPACE(len) \ + (_CMSG_DATA_ALIGN(len) + _CMSG_HDR_ALIGN(sizeof(struct cmsghdr))) +# define CMSG_LEN(len) \ + (_CMSG_HDR_ALIGN(sizeof(struct cmsghdr)) + (len)) +# else +# define CMSG_ALIGN(len) \ (((len) + sizeof(size_t) - 1) & ~(sizeof(size_t) - 1)) -# define CMSG_SPACE(len) \ +# define CMSG_SPACE(len) \ (CMSG_ALIGN(len) + CMSG_ALIGN(sizeof(struct cmsghdr))) -# define CMSG_LEN(len) \ +# define CMSG_LEN(len) \ (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len)) +# endif #endif
#ifdef SCM_RIGHTS
-- .signature 0x14AA7941
On Tue, Jun 15, 2004 at 08:00:32AM +0300, Timo Sirainen wrote:
On 15.6.2004, at 07:50, Charlie Allom wrote:
Will this perhaps fix these?
imap-login: Jun 15 12:28:16 Panic: file ioloop.c: line 90: assertion failed: (i o->fd <= current_ioloop->highest_fd)
I don't think so. Does this happen every time when logging in? With Solaris?
no - never when originally opening a folder/logging in. It must only be when refreshing the status of the emails. Perhaps that is a mutt thing - logging in twice? Not sure - how can I help?
With Solaris only I've found.
C.
-- .signature 0x14AA7941
On 15.6.2004, at 08:08, Charlie Allom wrote:
imap-login: Jun 15 12:28:16 Panic: file ioloop.c: line 90: assertion failed: (i o->fd <= current_ioloop->highest_fd)
Hmm. Wonder why this hasn't happened more often. Good luck I guess. Pretty simple fix, I'll include with 0.99.10.6 too: diff -u -r1.20 ioloop.c --- ioloop.c 26 Aug 2003 21:18:16 -0000 1.20 +++ ioloop.c 19 Jun 2004 20:05:19 -0000 @@ -81,12 +81,12 @@ /* notify the real I/O handler */ io_loop_handle_remove(current_ioloop, io->fd, io->condition); + io->destroyed = TRUE; + io->fd = -1; + /* check if we removed the highest fd */ if (io->fd == current_ioloop->highest_fd) update_highest_fd(current_ioloop); - - io->destroyed = TRUE; - io->fd = -1; }
On 19.6.2004, at 22:58, Timo Sirainen wrote:
io->destroyed = TRUE;
io->fd = -1;
/* check if we removed the highest fd */ if (io->fd == current_ioloop->highest_fd) update_highest_fd(current_ioloop);
io->destroyed = TRUE;
}io->fd = -1;
Of course, this is wrong too :) Only the destroyed-line should have been moved..
participants (2)
-
Charlie Allom
-
Timo Sirainen