ports/174245: net/relayd Segfault on reload when checking https

Thomas Johnson tom at claimlynx.com
Thu Dec 6 20:50:00 UTC 2012


>Number:         174245
>Category:       ports
>Synopsis:       net/relayd Segfault on reload when checking https
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Dec 06 20:50:00 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Thomas Johnson
>Release:        FreeBSD 9.1-RC3 i386
>Organization:
ClaimLynx, Inc.
>Environment:
System: FreeBSD folsom-2.claimlynx.com 9.1-RC3 FreeBSD 9.1-RC3 #1: Sat Dec 1 12:52:30 CST 2012 root at folsom-2.claimlynx.com:/usr/obj/usr/src/sys/GENERIC-ALTQ i386

Relayd version relayd-5.2.20121122

>Description:
I have noticed that when relayd is configured to check https responses, issuing a 'relayctl reload' command faults relayd to quit with signal 11. The configuration snippet in the How-to-Repeat section below shows the problem configuration. The following log output shows an example relayd run (irrelevant testing output removed). Following startup, and a couple rounds of checks, 'relayctl reload' is issued.

> grep '69358\|69359\|69360' /var/log/all.log
Dec  6 12:49:09 folsom-2 relayd[69358]: startup
Dec  6 12:49:09 folsom-2 relayd[69360]: socket_rlimit: max open files 11095
Dec  6 12:49:09 folsom-2 relayd[69358]: NSSWITCH(_nsdispatch): ldap, services, setservent, not found, and no fallback provided
Dec  6 12:49:09 folsom-2 relayd[69358]: NSSWITCH(_nsdispatch): ldap, services, endservent, not found, and no fallback provided
Dec  6 12:49:09 folsom-2 relayd[69359]: init_filter: filter init done
Dec  6 12:49:09 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/www" and table "www"
Dec  6 12:49:09 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/https" and table "https"
Dec  6 12:49:09 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/wiki" and table "wiki"
Dec  6 12:49:09 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/wikis" and table "wikis"
Dec  6 12:49:09 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/ftp" and table "ftp"
Dec  6 12:49:09 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/ftps" and table "ftps"
Dec  6 12:49:09 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/sftp" and table "sftp"
Dec  6 12:49:09 folsom-2 relayd[69359]: init_tables: created 6 tables
Dec  6 12:49:09 folsom-2 relayd[69359]: flush_table: flushed table www
Dec  6 12:49:09 folsom-2 relayd[69359]: flush_table: flushed table https
Dec  6 12:49:09 folsom-2 relayd[69359]: flush_table: flushed table wiki
Dec  6 12:49:09 folsom-2 relayd[69359]: flush_table: flushed table wikis
Dec  6 12:49:09 folsom-2 relayd[69359]: flush_table: flushed table ftp
Dec  6 12:49:09 folsom-2 relayd[69359]: flush_table: flushed table ftps
Dec  6 12:49:09 folsom-2 relayd[69359]: flush_table: flushed table sftp
...
Dec  6 12:49:27 folsom-2 relayd[69358]: parent_reload: level 0 config file /etc/relayd.conf
Dec  6 12:49:27 folsom-2 relayd[69358]: NSSWITCH(_nsdispatch): ldap, services, setservent, not found, and no fallback provided
Dec  6 12:49:27 folsom-2 relayd[69358]: NSSWITCH(_nsdispatch): ldap, services, endservent, not found, and no fallback provided
Dec  6 12:49:27 folsom-2 relayd[69359]: init_filter: filter init done
Dec  6 12:49:27 folsom-2 kernel: pid 69360 (relayd), uid 913: exited on signal 11
Dec  6 12:49:27 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/www" and table "www"
Dec  6 12:49:27 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/https" and table "https"
Dec  6 12:49:27 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/wiki" and table "wiki"
Dec  6 12:49:27 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/wikis" and table "wikis"
Dec  6 12:49:27 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/ftp" and table "ftp"
Dec  6 12:49:27 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/ftps" and table "ftps"
Dec  6 12:49:27 folsom-2 relayd[69359]: init_tables: prepare anchor "relayd/sftp" and table "sftp"
Dec  6 12:49:27 folsom-2 relayd[69359]: init_tables: created 0 tables
Dec  6 12:49:27 folsom-2 relayd[69359]: flush_table: flushed table www
Dec  6 12:49:27 folsom-2 relayd[69359]: flush_table: flushed table https
Dec  6 12:49:27 folsom-2 relayd[69359]: flush_table: flushed table wiki
Dec  6 12:49:27 folsom-2 relayd[69359]: flush_table: flushed table wikis
Dec  6 12:49:27 folsom-2 relayd[69359]: flush_table: flushed table ftp
Dec  6 12:49:27 folsom-2 relayd[69359]: flush_table: flushed table ftps
Dec  6 12:49:27 folsom-2 relayd[69359]: flush_table: flushed table sftp
Dec  6 12:49:27 folsom-2 relayd[69359]: kill_tables: deleted 7 tables
Dec  6 12:49:27 folsom-2 relayd[69359]: flush_rulesets: flushed rules
Dec  6 12:49:27 folsom-2 relayd[69359]: pfe exiting, pid 69359
Dec  6 12:49:27 folsom-2 relayd[69358]: parent terminating, pid 69358

>How-To-Repeat:
The following is relevant configuration that causes a segfault on reload.

interval 5
timeout 300
prefork 5
log updates

lion1="10.11.12.1"
lion2="10.11.12.2"
lion3="10.11.12.3"
lion4="10.11.12.4"
carp_if="10.11.12.5"
sorry_server="10.11.13.28"

table <webpool> { $lion1, $lion2, $lion3, $lion4 }
table <sorry> { $sorry_server retry 2}

redirect "https" {
	listen on $carp_if port 443
	# Enabling these checks causes segfaults on reload
	forward to <webpool> check https "/favicon.ico" code 200 timeout 750
	forward to <sorry> check https "/favicon.ico" code 200 timeout 750
	# Old, working configuration
	#forward to <webpool> check tcp timeout 300
	#forward to <sorry> timeout 300 check icmp
	sticky-address
}
>Fix:
Avoid using 'check https', or reloading your relayd configuration.


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


More information about the freebsd-ports-bugs mailing list