Re: Ghost folders & imapd segfaults

2010-01-20 Thread Andrew Morgan
On Wed, 20 Jan 2010, Jukka Huhta wrote:

> We've had two tricky special cases of folders created by users.  The
> folder names contain an exclamation mark, which, I presume, isn't
> handled as it should be.
>
> The symptom is that the ghost folders get somehow created on a
> different host than the "real" mailbox.  That results in an annoying
> error from a quota listing script: "This mailbox hierarchy does not
> exist on a single backend server".
>
> The first one was like
>
>   user.username1.fdasf!
>
> which equals (according to cyradm) to fd...@user.username1 with
> permissions "anyone lrs".  I could just add deletion permission to an
> admin account and dm it.
>
> But the other one is trickier.  From mailbox list dump:
>
> user.username2   1 i16!nkpd username2   lrswipkxtecda   anyone  p
> user.username2.Drafts   1 i16!nkpd username2   lrswipkxtecda   anyone  p
> user.username2.Folder   1 i16!nkpd username2   lrswipkxtecda   anyone  p
> user.username2.Folder!  1 p01!default anyone  lrs
>
> "Folder" is a regular, working folder.  "i16" is the backend server of
> username2, "nkpd" is her partition, but p01 is a front end host, a
> proxy!  How could this happen?  Through some failed folder rename?
> How come there's "default" as partition?  I cannot reproduce this on
> purpose, but I cannot delete the "Folder! " folder (yes, there seems
> to be a space) either: imapd process segfaults when trying.  See:
>
> cyradm> lm user.username2.Folder
> user.username2.Folder (\HasNoChildren)
> cyradm> lm "user.username2.Folder! "
> @user.username2.Folder (\HasNoChildren)
> cyradm> lm " @user.username2.Folder"
> @user.username2.Folder (\HasNoChildren)
> cyradm> sam " @user.username2.Folder" admin all
> setaclmailbox: admin: lrswipkxtea:
> cyradm> lm " @user.username2.Folder"
>
> cyradm> lm " @user.username2.Folder"
> [returned to shell, cyradm dies]
>
> Maillog has this:
> Jan 20 15:58:57 pcn7 admin/master[11756]: process 9773 exited,
> signaled to death by 11
>
> And syslog:
> Jan 20 15:58:57 pcn7 kernel: imapd[9773]: segfault at 
> rip 0039746796f0 rsp 7fff0ba77da8 error 4
>
> According to gdb, imapd segfaults in strlen().  Of course I don't have
> debug symbols compiled in...
>
> Any hints?

I've seen this segfault happen to me in a similar situation where the 
mailbox was listed as created on the frontend.  Note - don't try to create 
a new top-level mailbox on a frontend server!  :)

Since it was my own fault, I just removed the offending mailbox and didn't 
worry about the segfault.

I think the question here is - does Cyrus allow a non-admin to create a 
new folder on whatever backend they want?  Only admins should be allowed 
to specify a partition.

> (I must admit that cyradm is connecting to another frontend than p01
> because I currently can't login to that one as admin without a
> service break (don't ask).)

I'm pretty sure you can only fix this by issuing "dm " on p01.

Andy

Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Ghost folders & imapd segfaults

2010-01-20 Thread Jukka Huhta

We've had two tricky special cases of folders created by users.  The
folder names contain an exclamation mark, which, I presume, isn't
handled as it should be.

The symptom is that the ghost folders get somehow created on a
different host than the "real" mailbox.  That results in an annoying
error from a quota listing script: "This mailbox hierarchy does not
exist on a single backend server".

The first one was like

user.username1.fdasf!

which equals (according to cyradm) to fd...@user.username1 with
permissions "anyone lrs".  I could just add deletion permission to an
admin account and dm it.

But the other one is trickier.  From mailbox list dump:

user.username2   1 i16!nkpd username2   lrswipkxtecda   anyone  p
user.username2.Drafts   1 i16!nkpd username2   lrswipkxtecda   anyone  p
user.username2.Folder   1 i16!nkpd username2   lrswipkxtecda   anyone  p
user.username2.Folder!  1 p01!default anyone  lrs

"Folder" is a regular, working folder.  "i16" is the backend server of
username2, "nkpd" is her partition, but p01 is a front end host, a
proxy!  How could this happen?  Through some failed folder rename?
How come there's "default" as partition?  I cannot reproduce this on
purpose, but I cannot delete the "Folder! " folder (yes, there seems
to be a space) either: imapd process segfaults when trying.  See:

cyradm> lm user.username2.Folder
user.username2.Folder (\HasNoChildren)
cyradm> lm "user.username2.Folder! "
 @user.username2.Folder (\HasNoChildren)
cyradm> lm " @user.username2.Folder"
 @user.username2.Folder (\HasNoChildren)
cyradm> sam " @user.username2.Folder" admin all
setaclmailbox: admin: lrswipkxtea:
cyradm> lm " @user.username2.Folder"

cyradm> lm " @user.username2.Folder"
[returned to shell, cyradm dies]

Maillog has this:
Jan 20 15:58:57 pcn7 admin/master[11756]: process 9773 exited,
signaled to death by 11

And syslog:
Jan 20 15:58:57 pcn7 kernel: imapd[9773]: segfault at 
rip 0039746796f0 rsp 7fff0ba77da8 error 4

According to gdb, imapd segfaults in strlen().  Of course I don't have
debug symbols compiled in...

Any hints?

(I must admit that cyradm is connecting to another frontend than p01
because I currently can't login to that one as admin without a
service break (don't ask).)

Running Cyrus 2.3.15 (Simon's -4 RPM release) on a CentOS cluster,
mupdate_config=standard.


-- 
Jukka Huhta

Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: compiling 2.3.16 on debian 64bit

2010-01-20 Thread Patrick Boutilier

On 01/20/2010 09:19 AM, Rudy Gevaert wrote:

Hi!

A new year brings new resolutions!  One of our resolutions is
upgrading our cyrus infrastructure from 32bit to 64bit, moving to a
new storage backend,  upgrading from etch to lenny and on top of that
rewriting our backend scripts.

But before getting to all that, I need to be able to get cyrus
compiled.  I have one problem, and one question:

1) I also ran into the -fpic problem and can fix that when I'm running
make.  However makedepend can't handle 'pic' very well.

This is how I do it:

cyrus_version=cyrus-2.3.16
dest_dir=/tmp/cyrus-2.3.16

rm -fr $dest_dir
mkdir $dest_dir

make clean
./configure CFLAGS="-O2 -g -fpic  -Wall -pipe" \
  --prefix=/usr/${cyrus_version}  \
  --with-cyrus-prefix=/usr/${cyrus_version} \
  --with-bdb-libdir=/usr/lib/  \
  --with-openssl=/usr  \
  --with-com_err=/usr  \
  --with-bdb-incdir=/usr/include  \
--with-seen-db=skiplist --with-mboxlist-db=skiplist \
--enable-murder --enable-idled --enable-replication

make depend || exit
make all || exit
make -C sieve test || exit
echo make install DESTDIR=${dest_dir}
make install DESTDIR=${dest_dir}

And the relevant output:


### Making depend in /home/cyrus/debs/cyrus-imapd-2.3.16/lib
make[1]: Entering directory `/home/cyrus/debs/cyrus-imapd-2.3.16/lib'
makedepend -I.. -I/usr/include  -I/usr/include -I/usr/include
-I/usr/include/et  -DHAVE_CONFIG_H  -I. -O2 -g -fpic  -Wall -pipe *.c
./*.c 1>makedepend.log 2>&1
make[1]: *** [depend] Error 1
make[1]: Leaving directory `/home/cyrus/debs/cyrus-imapd-2.3.16/lib'
make: *** [depend] Error 1
puptest:/home/cyrus/debs/cyrus-imapd-2.3.16# cat makedepend.log
cat: makedepend.log: No such file or directory
puptest:/home/cyrus/debs/cyrus-imapd-2.3.16# cat lib/makedepend.log
makedepend: warning:  ignoring option -Wall
makedepend: error:  cannot open "pic"

I can just not do the make depend, but I dnon't know what the impact is...



Try removing the CLAGS from configure and add them to the make all.

eg.

make depend
make all CFLAGS="-O2 -g -fPIC  -Wall -pipe"




2) My other question is about some things that have been removed.
./configure --help isn't that verbose as it was in the older versions.
   Also, some options seem to have been removed??

configure:22514: WARNING: unrecognized options: --with-seen-db,
--with-mboxlist-db

What has happend here?



They are now specified in imapd.conf


seenstate_db: skiplist
The cyrusdb backend to use for the seen state.

Allowed values: flat, berkeley, berkeley-hash, skiplist


mboxlist_db: skiplist
The cyrusdb backend to use for the mailbox list.

Allowed values: flat, berkeley, berkeley-hash, skiplist




Thanks!!



<>
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

compiling 2.3.16 on debian 64bit

2010-01-20 Thread Rudy Gevaert
Hi!

A new year brings new resolutions!  One of our resolutions is  
upgrading our cyrus infrastructure from 32bit to 64bit, moving to a  
new storage backend,  upgrading from etch to lenny and on top of that  
rewriting our backend scripts.

But before getting to all that, I need to be able to get cyrus  
compiled.  I have one problem, and one question:

1) I also ran into the -fpic problem and can fix that when I'm running  
make.  However makedepend can't handle 'pic' very well.

This is how I do it:

cyrus_version=cyrus-2.3.16
dest_dir=/tmp/cyrus-2.3.16

rm -fr $dest_dir
mkdir $dest_dir

make clean
./configure CFLAGS="-O2 -g -fpic  -Wall -pipe" \
 --prefix=/usr/${cyrus_version}  \
 --with-cyrus-prefix=/usr/${cyrus_version} \
 --with-bdb-libdir=/usr/lib/  \
 --with-openssl=/usr  \
 --with-com_err=/usr  \
 --with-bdb-incdir=/usr/include  \
--with-seen-db=skiplist --with-mboxlist-db=skiplist \
--enable-murder --enable-idled --enable-replication

make depend || exit
make all || exit
make -C sieve test || exit
echo make install DESTDIR=${dest_dir}
make install DESTDIR=${dest_dir}

And the relevant output:


### Making depend in /home/cyrus/debs/cyrus-imapd-2.3.16/lib
make[1]: Entering directory `/home/cyrus/debs/cyrus-imapd-2.3.16/lib'
makedepend -I.. -I/usr/include  -I/usr/include -I/usr/include  
-I/usr/include/et  -DHAVE_CONFIG_H  -I. -O2 -g -fpic  -Wall -pipe *.c  
./*.c 1>makedepend.log 2>&1
make[1]: *** [depend] Error 1
make[1]: Leaving directory `/home/cyrus/debs/cyrus-imapd-2.3.16/lib'
make: *** [depend] Error 1
puptest:/home/cyrus/debs/cyrus-imapd-2.3.16# cat makedepend.log
cat: makedepend.log: No such file or directory
puptest:/home/cyrus/debs/cyrus-imapd-2.3.16# cat lib/makedepend.log
makedepend: warning:  ignoring option -Wall
makedepend: error:  cannot open "pic"

I can just not do the make depend, but I dnon't know what the impact is...


2) My other question is about some things that have been removed.   
./configure --help isn't that verbose as it was in the older versions.  
  Also, some options seem to have been removed??

configure:22514: WARNING: unrecognized options: --with-seen-db,  
--with-mboxlist-db

What has happend here?

Thanks!!

-- 
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Rudy Gevaert  rudy.geva...@ugent.be  tel:+32 9 264 4734
Directie ICT, afd. Infrastructuur  Direction ICT, Infrastructure dept.
Groep Systemen Systems group
Universiteit Gent  Ghent University
Krijgslaan 281, gebouw S9, 9000 Gent, Belgie   www.UGent.be
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --



Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: cyrus-imapd-2.2.12-10 -- impurge and -f recursion --

2010-01-20 Thread Carsten Hoeger
On Fri, Jan 15, James B. Byrne wrote:

> I run cyrus-imapd under CentOS-4.8 (a RedHat el4 clone).  I am
> trying to discover if there is any way to purge a user's INBOX of
> old and over-sized messages without affecting the contents of any
> subfolders thereof.
> 
> I have looked at impurge as the mechanism. However,my reading of the
> man page, and of online discussions relating to this matter,
> indicate that in order for impurge to remove any mail from the INBOX
> then the -f switch has to be passed.  But, I also gather that
> whenever the -f switch is used then ALL subfolders of the target
> directory are purged recursively as well.
> 
> This strikes me as a rather odd combination of attributes but I
> cannot see any way to prevent recursion if the -f switch is used. 
> What is the recommended way to purge mail from a user's INBOX only
> using criteria such as age and size?

You are not the only one searching for a better control of what ipurge should
delete.
I created a feature request for that and submitted a patch to the cmu
bugzilla:

https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=3167

This is the link to the patch including documentation in the manpage:

https://bugzilla.andrew.cmu.edu/attachment.cgi?id=1232

-- 
With best regards,

Carsten Hoeger


pgp1vwdw9zf5k.pgp
Description: PGP signature

Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html