Re: relayd: fix deferring connections log

Kirill A. Korinsky <[email protected]>
Newsgroups gmane.os.openbsd.tech
Message-ID <[email protected]>
On Sun, 02 Aug 2026 16:19:46 +0200,
Rafael Sadowski <[email protected]> wrote:
> 
> On Sun Aug 02, 2026 at 02:12:09PM +0200, Rafael Sadowski wrote:
> > log_debug is so stupid here. This is a real problem, and no user can
> > currently find it in the logs (see my other diffs).
> > 
> > log_debug can only be enabled by using "-v". If you run it as a daemon,
> > it isn't visible and your relayd setup has real problems. There are
> > other places where we print nothing too, but this one is really
> > ridiculous!
> > 
> > 
> 
> I think this is much better to detect a "too many open files..." issue.
> 
> OK?
>

I think it is good addition, and it should be logged and not just ignored.

OK kirill@

> diff --git a/control.c b/control.c
> index fb64608..e40ab65 100644
> --- a/control.c
> +++ b/control.c
> @@ -153,6 +153,7 @@ control_accept(int listenfd, short event, void *arg)
>  
>  			event_del(&cs->cs_ev);
>  			evtimer_add(&cs->cs_evt, &evtpause);
> +			log_warn("%s: deferring connections", __func__);
>  		} else if (errno != EWOULDBLOCK && errno != EINTR &&
>  		    errno != ECONNABORTED)
>  			log_warn("%s: accept", __func__);
> diff --git a/relay.c b/relay.c
> index 6992900..3c9f2e8 100644
> --- a/relay.c
> +++ b/relay.c
> @@ -1132,7 +1132,7 @@ relay_accept(int fd, short event, void *arg)
>  
>  			event_del(&rlay->rl_ev);
>  			evtimer_add(&rlay->rl_evt, &evtpause);
> -			log_debug("%s: deferring connections", __func__);
> +			log_warn("%s: deferring connections", __func__);
>  		}
>  		return;
>  	}
> @@ -1573,6 +1573,9 @@ relay_connect_retry(int fd, short sig, void *arg)
>   retry:
>  	if ((con->se_out.s = relay_socket_connect(&con->se_out.ss,
>  	    con->se_out.port, rlay->rl_proto, bnds)) == -1) {
> +		if (errno == ENFILE || errno == EMFILE)
> +			log_warn("%s: session %d: deferring forward",
> +			    __func__, con->se_id);
>  		log_debug("%s: session %d: "
>  		    "forward failed: %s, %s", __func__,
>  		    con->se_id, strerror(errno),
> @@ -1695,8 +1698,8 @@ relay_connect(struct rsession *con)
>  	if ((con->se_out.s = relay_socket_connect(&con->se_out.ss,
>  	    con->se_out.port, rlay->rl_proto, bnds)) == -1) {
>  		if (errno == ENFILE || errno == EMFILE) {
> -			log_debug("%s: session %d: forward failed: %s",
> -			    __func__, con->se_id, strerror(errno));
> +			log_warn("%s: session %d: deferring forward",
> +			    __func__, con->se_id);
>  			evtimer_set(&con->se_inflightevt, relay_connect_retry,
>  			    con);
>  			event_del(&rlay->rl_ev);
> 

-- 
wbr, Kirill
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.