Ionut Nistor schrieb am Fri, Nov 23, 2001 at 11:51:36PM +0200:
* Could anyone please take a look over this mail again ?
* 
* I really do not know what's causing the problem but it seems kind of
* strange and it keeps appearing from time to time.
[...]
* > 
* > At first everything worked fine. However, when I tried to move some
* > mails (and some mail folders) using Netscape - the imap connection
* > dropped. I could not connect to it with the same user until I restarted
* > the server.
* > After examining the logs the following thing showed up:
* > 
----------------------------------------------------------------------------------------------------
* > 
* > Nov  2 21:35:28 barracuda imapd[23988]: error opening
* > '/data/cyrus/imap/user/i/ionut.sub/cyrus.seen': Not a directory
* > 
----------------------------------------------------------------------------------------------------
* > 
* > (ionut is the username).
* > 
* > I've looked through the code (unfirtunatelly I have version 2.0.16 of
* > the source) and the following thing from imap/seen_db.c looked strange:
* > 
* > -- line 206 --
* > ----------------------------------------------------
* >     if (fd == -1 && errno == ENOENT) {
* >         /* no old-style seen file for this database */
* >         *seenuidsptr = xstrdup("");
* >         return 0;
* >     } else if (fd == -1) {
* >         syslog(LOG_ERR, "error opening '%s': %m", fnamebuf);
* >         return IMAP_IOERROR;
* >     }
[...]

This code in itself is not strange.  But it seems to me as if the pathnames
supplied to it are.  On my system running 2.0.16, I experience the files like
this:

  (to follow your namespace)

 /data/cyrus/imap/user/i/ionut.sub  <- this is a file
 /data/cyrus/imap/user/i/ionut.seen <- this is a file as well

So there are two alternatives explaining your problem: 

 a. your structures are somewhat messed up and cyrus tries to access things
    at wrong places

 b. cyrus was somewhat messed up in 2.0.9 and they fixed things up to 2.0.16.


Just my 0.2,


Birger

* > ----------------------------------------------------
* > 
* > once again I'm new to cyrus so I'm not familiar with its history. I
* > think though that this is is some backward compatibility check for the
* > \seen flags database for the mailbox - in the changelog of cyrus-imapd
* > it said the location of this db location was changed and the code
* > ensures the migration to the new format.
* > 
* > This code checks for  the existence of cyrus.seen and if it does not
* > exist it just assumes no old version (as far as I can see).
* > Unfortunatelly, the error returned by the system is not ENOENT as one
* > would expect but instead it is ENOTDIR (cause the ionut.sub is a file
* > not a directory); thus, this piece of code returns IMAP_IOERROR and the
* > thread seems to hang (I did not look further into it). That user (in
* > this case 'ionut') cannot connect to the server until the server is
* > restarted.
* > 
* > 
* > Am I missing something here ?
* > 
* > 
* > Ionut
* > [EMAIL PROTECTED]
* > 
* 

-- 

- Birger

Reply via email to