Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Nov 2010 23:12:04 -0800 (PST)
From:      bsmith+fbsd@boltnet.com
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/152355: openbgpd stops syslogging after syslogd restart
Message-ID:  <20101118071204.82ABB350D828@boltnet.com>
Resent-Message-ID: <201011180740.oAI7e5mr057104@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         152355
>Category:       ports
>Synopsis:       openbgpd stops syslogging after syslogd restart
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 18 07:40:05 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Ben Smith
>Release:        FreeBSD 8.1-STABLE amd64
>Organization:
Boltnet, Inc.
>Environment:
System: FreeBSD gw1.p3 8.1-STABLE FreeBSD 8.1-STABLE #0: Sat Aug 28 16:34:10 PDT 2010 root@gw2.p3:/usr/obj/usr/src/sys/BOLTNET amd64

openbgpd-4.7.20100410 Free implementation of the Border Gateway Protocol, Version

>Description:

        It appears that the chrooting that openbgpd does causes the UNIX domain socket paths for logging to fail once they are recreated.

>How-To-Repeat:

        Start openbgpd and setup a peer.  Note the logs that appear in syslog(you may need to setup a *.* /var/log/all.log entry in syslogd.conf to get syslog output).  Restart syslogd and then close the connection with the peer.  When it reestablishes you will not see the same setup logs you saw before.  Here is an example:

When it is working you should see:
gw1# tail -f /var/log/all.log &
gw1# bgpctl neighbor ops1 clear
request processed

Nov 17 20:26:50 gw1 bgpd[125]: neighbor 10.0.10.1 (ops1): state change Established -> Idle, reason: Stop
Nov 17 20:26:55 gw1 bgpd[125]: neighbor 10.0.10.1 (ops1): state change Idle -> Connect, reason: Start
Nov 17 20:26:55 gw1 bgpd[125]: neighbor 10.0.10.1 (ops1): state change Connect -> OpenSent, reason: Connection opened
Nov 17 20:26:55 gw1 bgpd[125]: Connection attempt from neighbor 10.0.10.1 (ops1) while session is in state OpenSent
Nov 17 20:26:55 gw1 bgpd[125]: neighbor 10.0.10.1 (ops1): state change OpenSent -> OpenConfirm, reason: OPEN message received
Nov 17 20:26:55 gw1 bgpd[125]: neighbor 10.0.10.1 (ops1): state change OpenConfirm -> Established, reason: KEEPALIVE message received
Nov 17 20:26:55 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.0.0.0/23 via 10.0.10.1
Nov 17 20:26:55 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.252.240.1/32 via 10.0.10.1
Nov 17 20:26:55 gw1 bgpd[123]: nexthop 10.0.10.1 now valid: directly connected
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.2.0.0/16 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.2.32.1/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.2.254.106/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.2.254.105/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.2.32.2/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.3.0.0/16 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.3.32.1/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.3.254.108/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.3.254.107/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.3.32.2/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.0.0/16 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.20.1/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.252.0.6/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.252.0.5/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.32.2/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.32.1/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.24.102/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.24.101/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.24.1/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.20.6/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.20.5/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.20.4/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.20.3/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.5.20.2/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.252.0.2/32 via 10.0.10.1
Nov 17 20:26:56 gw1 bgpd[124]: Rib Loc-RIB: neighbor 10.0.10.1 (ops1) AS65001: update 10.252.0.4/32 via 10.0.10.1
gw1#

After restarting syslogd:
gw1# bgpctl neighbor ops1 clear
request processed
Nov 17 20:23:58 gw1 bgpd[99858]: nexthop 10.0.10.1 now valid: directly connected

The directly connected message comes from the parent which is still running as root(not _bgpd) and I assume not chrooted.




>Fix:

If you start syslogd with a socket inside the chroot(gross hack alert):
# cd /var/empty/
# chflags noschg .
# mkdir -p /var/empty/var/run
# /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -l /var/empty/var/run/log

I don't suggest this as the actual fix but am submitting this in hopes someone has a better idea!


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101118071204.82ABB350D828>