[Dovecot] segv when Mailbox is in inconsistent state, please relogin.

Dan Price dp at eng.sun.com
Tue Feb 27 05:38:50 UTC 2007


On Thu 22 Feb 2007 at 03:57PM, Timo Sirainen wrote:
> On Wed, 2007-02-21 at 14:56 +0100, Steffen Kaiser wrote:
> > Hoever, the web page (http://dovecot.org/bugreport.html) states that every 
> > signal 11 is a bug and will be fixed, so here it goes:
> 
> Yes.
> 
> > #0  o_stream_uncork (stream=0x0) at ostream.c:60
> >          _stream = <value optimized out>
> > #1  0x0805ba08 in _client_input (context=0x80df0f0) at client.c:431
> >          client = (struct client *) 0x80df0f0
> >          cmd = (struct client_command_context *) 0x80df134
> 
> I don't get this though. I've checked all the code paths that I can
> think of, and I can't see why the stream would ever be NULL there. Do
> you still have the core file? Could you show me the output of:
> 
> fr 1
> p *client
> p *cmd

I've just hit what I think is the same bug or something similar,
running 1.0rc24, while I was messing around with TBird 2.0 b2-- I
did a bunch of different things with different settings, and quit
and restarted the client numerous times, so I don't know exactly
what triggered it.  The message count of "814" means this is
probably my "spam" folder.

(dbx) where
=>[1] o_stream_uncork(stream = (nil)), line 60 in "ostream.c"
  [2] _client_input(context = 0xc32f0), line 431 in "client.c"
  [3] io_loop_handler_run(ioloop = 0xc0ae8), line 199 in "ioloop-poll.c"
  [4] io_loop_run(ioloop = 0xc0ae8), line 284 in "ioloop.c"
  [5] main(argc = -4195263, argv = 0xb4c00, envp = 0xb5f6c), line 287 in "main.c"

(dbx) dump
_stream = 0xc2000000
stream = (nil)

(dbx) up

(dbx) dump
client = 0xc32f0
ret = 1
context = 0xc32f0
cmd = 0xc3334

(dbx) print *client
*client = {
    fd_in           = 0
    fd_out          = 1
    io              = (nil)
    input           = (nil)
    output          = (nil)
    namespaces      = 0xc2c00
    mailbox         = (nil)
    keywords        = {
        pool     = (nil)
        keywords = {
            buffer       = 0xc7580
            element_size = 4U
        }
    }
    select_counter  = 1U
    messages_count  = 814U
    recent_count    = 0
    last_input      = 1172553559
    last_output     = 1172553557
    bad_counter     = 0
    parser          = (nil)
    cmd             = {
        client      = 0xc32f0
        pool        = (nil)
        tag         = (nil)
        name        = (nil)
        func        = (nil)
        context     = (nil)
        uid         = 0
        param_error = 0
    }
    disconnected    = 1U
    destroyed       = 1U
    command_pending = 0
    input_pending   = 0
    output_pending  = 0
    rawlog          = 0
    input_skip_line = 1U
}

(dbx) print *cmd
*cmd = {
    client      = 0xc32f0
    pool        = (nil)
    tag         = (nil)
    name        = (nil)
    func        = (nil)
    context     = (nil)
    uid         = 0
    param_error = 0
}





-- 
Daniel Price - Solaris Kernel Engineering - dp at eng.sun.com - blogs.sun.com/dp


More information about the dovecot mailing list