Hi,
I'm running relayd/OpenBSD 5.6-stable on a KVM virtual machine. relayd
always crashes within a few hours of restarting it, but works properly
before that.
When relayd stops working, sometimes the relayd process is up but
`relayctl show summary` says that /var/run/relayd.sock doesn't exist.
Other times none of the relayd processes are running.
Here's some info:
$ uname -a
OpenBSD 5.6 GENERIC.MP#333 amd64
$ relayctl show summary
relayctl: connect: /var/run/relayd.sock: No such file or directory
$ ps aux|grep relay
_relayd 16788 0.0 0.3 1624 3156 ?? S 3:02AM 0:15.65
relayd: pfe (relayd)
_relayd 12960 0.0 0.9 6620 9356 ?? S 3:02AM 0:19.04
relayd: relay (relayd)
_relayd 9157 0.0 0.3 1556 3188 ?? I 3:02AM 0:00.02
relayd: ca (relayd)
_relayd 26941 0.0 0.3 1560 3184 ?? I 3:02AM 0:00.03
relayd: ca (relayd)
_relayd 1633 0.0 0.3 1548 3164 ?? I 3:02AM 0:00.02
relayd: ca (relayd)
_relayd 10017 0.0 0.3 1548 3088 ?? I 3:02AM 0:00.01
relayd: ca (relayd)
_relayd 23462 0.0 0.3 1552 3152 ?? I 3:02AM 0:00.02
relayd: ca (relayd)
_relayd 21549 0.0 0.3 1268 2820 ?? S 3:02AM 0:30.23
relayd: hce (relayd)
_relayd 30665 0.0 0.9 6572 9384 ?? S 3:02AM 0:18.71
relayd: relay (relayd)
_relayd 5491 0.0 0.9 6676 9500 ?? S 3:02AM 0:18.86
relayd: relay (relayd)
_relayd 20565 0.0 0.9 6648 9452 ?? S 3:02AM 0:19.12
relayd: relay (relayd)
_relayd 29017 0.0 0.9 6664 9492 ?? S 3:02AM 0:19.40
relayd: relay (relayd)
$ tail /var/log/daemon
Mar 23 23:23:41 obsd relayd[20565]: relay www, session 1329 (501
active), 0,xxx.xxx.xxx.xxx -> 10.8.0.2:80, last write (done), GET
Mar 23 23:23:41 obsd relayd[20565]: relay www, session 1330 (501
active), 0, xxx.xxx.xxx.xxx -> 10.8.0.2:80, last write (done), GET
Mar 23 23:24:39 obsd relayd[12960]: relay www, session 1351 (501
active), 0,xxx.xxx.xxx.xxx -> :0, hard timeout
Mar 23 23:26:38 obsd relayd[5491]: relay www, session 1335 (501 active),
0,xxx.xxx.xxx.xxx -> :0, hard timeout
Mar 23 23:30:39 obsd relayd[30665]: relay www, session 1320 (501
active), 0,xxx.xxx.xxx.xxx -> :0, hard timeout
Mar 23 23:31:39 obsd relayd[29017]: relay www, session 1340 (501
active), 0,xxx.xxx.xxx.xxx -> :0, hard timeout
Mar 23 23:31:40 obsd relayd[29017]: relay www, session 1341 (501
active), 0, xxx.xxx.xxx.xxx -> 10.8.0.2:80, last write (done), GET
Mar 23 23:31:40 obsd relayd[29017]: relay www, session 1342 (501
active), 0,xxx.xxx.xxx.xxx -> 10.8.0.2:80, last write (done), GET
Mar 23 23:34:39 obsd relayd[20565]: relay www, session 1331 (501
active), 0,xxx.xxx.xxx.xxx -> :0, hard timeout
Mar 23 23:34:40 obsd relayd[12960]: relay www, session 1352 (501
active), 0,xxx.xxx.xxx.xxx -> :0, hard timeout
Mar 23 23:34:40 obsd relayd[20565]: relay www, session 1332 (501
active), 0,xxx.xxx.xxx.xxx -> 10.8.0.2:80, last write (done), GET
Mar 23 23:34:40 obsd relayd[12960]: relay www, session 1353 (501
active), 0,xxx.xxx.xxx.xxx -> 10.8.0.2:80, last write (done), GET
Mar 23 23:37:38 obsd relayd[5491]: relay www, session 1336 (501 active),
0,xxx.xxx.xxx.xxx -> :0, hard timeout
Mar 23 23:37:39 obsd relayd[5491]: relay www, session 1337 (501 active),
0,xxx.xxx.xxx.xxx -> 10.8.0.2:80, last write (done), GET
$ cat /etc/relayd.conf
#
# Relayd
#
interval 10
timeout 1000
prefork 5
log updates
ext_addr="xxx.xxx.xxx.xxx"
ext_if="em0"
server1="10.8.0.2"
table <webhosts> { $server1 }
http protocol "www" {
match header append "X-Forwarded-For" value "$REMOTE_ADDR"
match header append "X-Forwarded-By" value
"$SERVER_ADDR:$SERVER_PORT"
}
relay "www" {
listen on $ext_addr port http
protocol "www"
#forward to <webhosts> check http "/" code 200
forward to <webhosts> check tcp
}
http protocol "httpssl" {
match header append "X-Forwarded-For" value "$REMOTE_ADDR"
match header append "X-Forwarded-By" value
"$SERVER_ADDR:$SERVER_PORT"
match header set "Connection" value "close"
# Various TCP performance options
tcp { nodelay, sack, socket buffer 65536, backlog 128 }
ssl { no sslv2, sslv3, tlsv1, ciphers HIGH }
ssl session cache disable
}
relay "wwwssl" {
# Provide SSL termination
listen on $ext_addr port 443 ssl
protocol "httpssl"
# Forward to hosts in the webhosts table
forward to <webhosts> port http check tcp
}
$ top
load averages: 0.80, 0.90, 0.58
50 processes: 49 idle, 1 on processor
CPU0 states: 0.0% user, 0.0% nice, 0.2% system, 0.0% interrupt,
99.8% idle
CPU1 states: 0.2% user, 0.0% nice, 0.0% system, 0.0% interrupt,
99.8% idle
Memory: Real: 70M/331M act/tot Free: 650M Cache: 196M Swap: 0K/1264M
Cheers,
Yonas