#1433 closed defect (fixed)

syslogd - Can't assign requested address

Reported by: survive Owned by:
Priority: minor Milestone: 8.2.0-RELEASE
Component: Backend Version: 8.2.0-BETA2
Keywords: remote syslogd Cc:

Description

Hi guys,

Running 8.2-beta2.

Try to setup a remote syslogd server. Assign a FQDN in Settings -> Syslog server & I get a "syslogd: exiting on signal 15" followed by "sendto: Can't assign requested address" in the local log. Trying an IP address yields the same.

-Will

Change History (7)

comment:1 Changed 14 months ago by william

  • Milestone set to 8.2-RELEASE
  • Version changed from 8.0.4-RELEASE to 8.2.0-BETA2

I can't reproduce this issue at all

comment:2 Changed 14 months ago by rlambie

I have exactly the same problem under both Beta 2 and Beta 3. Remote syslog was working fine under 8.04. I am using the IP address, which can be pinged, so it's not any sort of network/dns issue.

comment:3 Changed 14 months ago by rlambie

Interesting... this is what /etc/syslog.conf looks like with the remote Syslog Server specified in the gui:

*.err;kern.warning;auth.notice;mail.crit	/dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err	/var/log/messages
*.*	@10.107.88.10

However if I remove the parameter from the gui, then the contents of /etc/syslog.conf look like this:

#
#	Spaces ARE valid field separators in this file. However,
#	other *nix-like systems still insist on using tabs as field
#	separators. If you are sharing this file between systems, you
#	may want to use only tabs as field separators here.
#	Consult the syslog.conf(5) manpage.
*.err;kern.warning;auth.notice;mail.crit		/dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err	/var/log/messages
security.*					/var/log/security
auth.info;authpriv.info				/var/log/auth.log
mail.info					/var/log/maillog
lpr.info					/var/log/lpd-errs
ftp.info					/var/log/xferlog
cron.*						/var/log/cron
# *.=debug					/var/log/debug.log
*.emerg						*
# uncomment this to log all writes to /dev/console to /var/log/console.log
#console.info					/var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
# touch /var/log/all.log and chmod it to mode 600 before it will work
#*.*						/var/log/all.log
# uncomment this to enable logging to a remote loghost named loghost
#*.*						@loghost
# uncomment these if you're running inn
# news.crit					/var/log/news/news.crit
# news.err					/var/log/news/news.err
# news.notice					/var/log/news/news.notice
!ppp
*.*						/var/log/ppp.log
!*

If I manually edit /etc/syslog.conf to uncomment the remote logging directive then I once again get the folowwing message when syslogd is restarted:

Apr 20 17:08:09 DENHAM syslogd: exiting on signal 15
Apr 20 17:08:09 DENHAM syslogd: sendto: Can't assign requested address
Apr 20 17:08:09 DENHAM syslogd: kernel boot file is /boot/kernel/kernel

comment:4 Changed 14 months ago by survive

Hi rlambie,

What's even weirder is that if I kill syslogd on my system and restart it by just running "syslogd" it seems to log remotely just fine.

It also seems there is some issue with the GUI logging footer not updating (at least it's not displaying messages I'm used to seeing, but they are coming in fine to the syslog server now).

-Will

comment:5 Changed 14 months ago by rlambie

Hi Will,

Check, I see the same behaviour when I kill syslogd and then start it using "syslogd" from the command line.

That implies that the startup script, /etc/rc.d/syslogd, is doing something that inhibits remote logging.

Checking thru the script and some of the functions it calls, about the only thing I can see that may, and I am only guessing here, be responsible is the following in /etc/rc.conf:

# Silence syslogd about missing files
syslogd_flags="-b 127.0.0.1 -C"

Gonna play with it and see what happens.

-Raymond

comment:6 Changed 14 months ago by rlambie

Okay, removing "-b 127.0.0.1" from the syslogd_flags in /etc/rc.conf fixes remote logging for both a manual start and also a GUI start. Now the entry in /etc/rc.conf looks like this:

# Silence syslogd about missing files
syslogd_flags="-C"

From the man page for syslogd the -b option binds syslogd to a particular IP address and optionally service.

-b bind_address[:service]

     -b :service
	     Bind to a specific address and/or port.  The address can be spec-
	     ified as a hostname, and the port as a service name.  If an IPv6
	     address is specified, it should be enclosed with `[' and `]'.
	     The default service is `syslog'.

Not entirely sure why that would prevent remote logging, also not sure why it would be set in the first place.

Also, the difference in /etc/syslog.conf that I observed earlier is down to the way the GUI creates/modifies the config files. It saves the original and then creates a new one from a template. I presume that's simpler to implement than modifying the existing file.

Hope this helps,

-Raymond

comment:7 Changed 14 months ago by jhixson

  • Resolution set to fixed
  • Status changed from new to closed

This has been fixed in r11265.

Note: See TracTickets for help on using tickets.