segfaults when executing quota command

Simon Matter simon.matter at ch.sauter-bc.com
Wed Apr 13 01:08:48 EDT 2005


> On Tue, 12 Apr 2005, Craig White wrote:
>
>>> Not especially. Having symbols would help. It's going to be something
>>> in
>>> foreach() in lib/cyrusdb_quotalegacy.c, though, since that's the only
>>> place you'd be using the system glob().
>>>
>>> I suppose, for simplicity, you can just add a
>>>
>>> printf("%s\n", quota_path);
>>>
>>> before and after
>>>      /* strip off the qr specific path and replace with pattern */
>>>      sprintf(strstr(quota_path, FNAME_QUOTADIR) +
>>> strlen(FNAME_QUOTADIR),
>>>              "?/%s*", prefix);
>>>
>>> And see what 2 lines you get just before the crash, as a way of
>>> cheating.

I'm not surprised if there is a problem in cyrusdb_quotalegacy. I've
hunted down a similar issue some time ago when the quota stuff was quite
heavy modified in cyrus-imapd. May some problem was left which didn't hit
me.

>> ----
>> OK - excuse my ignorance here please...
>
> No, excuse mine, didn't even occur to me you weren't building from source
> directly.
>
>> I used invoca.ch srpms and did rpmbuild from them and never actually
>> compiled from source so I suspect that is why I can't locate it.
>
> Well, I guess rpmbuild cleaned up after itself.

Sure, no source code is left behind anywhere when you do a rpmbuild
--rebuild.

>
>> This is a whiteboxlinux 3 (RHEL 3 clone) - and I would take direction
>> here...should I install some symbol package for debugging
>
> Would be nice but I wouldn't hold my breath for it. Maybe someone else
> here knows.
>
>> or untar the tarball - and compile after your suggested changes ?
>
>> Which would be the
>> better course? I actually have this problem on my system (whiteboxlinux)
>> and a client system (RHEL 3 ES) but I would rather fool with this on my
>> system.
>
> Well, the first would be better, but I bet you can't have it.

When you build an rpm, you should get a debuginfo subpackage which should
contain all binaries suitable for debugging. If you want to debug lmtpd,
you should be able to use lmtpd.debug from the debuginfo package instead
of lmtpd and debug it. However, I have never used it so I can't tell for
sure.
What I usually did is:
- Install normal cyrus-imapd packages.
- Edit cyrus-imap.spec file and add appropriate debug flags.
- Do a rpmbuild -bc cyrus-imap.spec
- Copy the binary in question from rpm build tree to the correct directory.

Simon


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




More information about the Info-cyrus mailing list