Bug 669750 - Dovecot fails restart after upgrade, trying to listen on ipv6 when ipv6 is disabled
Summary: Dovecot fails restart after upgrade, trying to listen on ipv6 when ipv6 is di...
Keywords:
Status: CLOSED WORKSFORME
Alias: None
Product: Fedora
Classification: Fedora
Component: dovecot
Version: 14
Hardware: Unspecified
OS: Unspecified
low
medium
Target Milestone: ---
Assignee: Michal Hlavinka
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-01-14 16:08 UTC by W.C. Epperson
Modified: 2011-01-18 07:11 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-01-18 07:11:19 UTC
Type: ---


Attachments (Terms of Use)

Description W.C. Epperson 2011-01-14 16:08:03 UTC
Description of problem:

Upgraded (preupgrade) from F12 to F14.  Startup of dovecot failed on reboot.

Version-Release number of selected component (if applicable):

dovecot-2.0.8-2.fc14.i686

How reproducible:

Consistent.

Steps to Reproduce:
1.Run preupgrade from F12 to F14
2.dovecot will fail on reboot
3.
  
Actual results:

# service dovecot start
Starting Dovecot Imap: Error: service(pop3-login): listen(::, 110) failed: Address already in use
Error: service(pop3-login): listen(::, 995) failed: Address already in use
Error: service(imap-login): listen(::, 143) failed: Address already in use
Error: service(imap-login): listen(::, 993) failed: Address already in use
Fatal: Failed to start listeners


Expected results:

Successful service start.

Additional info:

IPV6 is disabled on this system.  It appears that dovecot is trying to start listeners on ipv6 and erroneously reporting "Address already in use" and failing startup.  Restoring original dovecot.conf allows startup, but delivers obsolete syntax errors.  Creating new file with "doveconf -n > dovecot-new.conf" cleans that up.

Apparently the rpm post misses the "listen *" in the original conf file and dovecot defaults it to "listen *,[::]", compounded by dovecot delivering a bogus error message.

Comment 1 Michal Hlavinka 2011-01-17 14:51:50 UTC
ok, first, do you have 'listen = *' specified in your dovecot.conf? If not, default value is listen=*,[::] which says that dovecot should listen for both ipv4 and ipv6 connections.

Second, what you mean by:
> Restoring original dovecot.conf allows startup, 
> but delivers obsolete syntax errors.

What you mean by this? Did dovecot update (2.0.7->2.0.8) overwrote your configuration? There is "noreplace" specified in the rpm package, so it should not overwrite your configuration

> Apparently the rpm post misses the "listen *" in 
> the original conf file

again please by more specified

> and dovecot defaults it
> to "listen *,[::]", 

correct, this is default value for a long time

> compounded by dovecot delivering a bogus
> error message.

Upstream changed error message a little bit, this change will be in 2.0.9

Comment 2 Michal Hlavinka 2011-01-17 14:57:15 UTC
btw, if you ommit some configuration variable (like "listen") it does not mean "autodetect" it just means "use default value" and default value (which can be seen in dovecot configuration files as commented out values) is listen=*,::

Comment 3 W.C. Epperson 2011-01-17 15:33:07 UTC
(In reply to comment #1)
> ok, first, do you have 'listen = *' specified in your dovecot.conf? If not,
> default value is listen=*,[::] which says that dovecot should listen for both
> ipv4 and ipv6 connections.
> 
> Second, what you mean by:
> > Restoring original dovecot.conf allows startup, 
> > but delivers obsolete syntax errors.
I mean that dovecot complained of obsolete syntax but started.

> 
> What you mean by this? Did dovecot update (2.0.7->2.0.8) overwrote your
> configuration? There is "noreplace" specified in the rpm package, so it should
> not overwrite your configuration

Should or shouldn't, it apparently did.

> 
> > Apparently the rpm post misses the "listen *" in 
> > the original conf file
> 
> again please by more specified

The replacement file had some of my customizations, but had the *,[::] where I had *.

> 
> > and dovecot defaults it
> > to "listen *,[::]", 
> 
> correct, this is default value for a long time
> 
> > compounded by dovecot delivering a bogus
> > error message.
> 
> Upstream changed error message a little bit, this change will be in 2.0.9

That's a good thing.  No IPV6 interfaces is way different from address already in use.

Comment 4 W.C. Epperson 2011-01-17 21:03:53 UTC
(Correction to comment #3)
> 
> > 
> > > Apparently the rpm post misses the "listen *" in 
> > > the original conf file
> > 
> > again please by more specified
> 
> The replacement file had some of my customizations, but had the *,[::] where I
> had *.

I just realized that's not correct.  It had the stock commented "#listen = *, ::".

> 
> > 
> > > and dovecot defaults it
> > > to "listen *,[::]", 
> > 
> > correct, this is default value for a long time
> > 

I wonder how long the behavior has been there of failing to start if there's no IPV6 interface when default listen config is used.

If no one else is reporting this, just close as cannot reproduce. I can't figure out how the dovecot-2.0.8-2.fc14.i686 rpm could have done what happened on my system after looking at it further.

Comment 5 Michal Hlavinka 2011-01-18 07:11:19 UTC
(In reply to comment #4)
> If no one else is reporting this, just close as cannot reproduce. I can't
> figure out how the dovecot-2.0.8-2.fc14.i686 rpm could have done what happened
> on my system after looking at it further.

OK, let me know if you get your configuration overwritten during update again.


Note You need to log in before you can comment on or make changes to this bug.