summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar grunfink2026-02-23 05:28:15 +0100
committerGravatar grunfink2026-02-23 05:28:15 +0100
commite1e64ac0af3a3b0e15a107e7ca636bc89c63fd47 (patch)
tree67091d06b15e04ea30168bd3f41f39c422314c95
parentVersion 2.90 RELEASED. (diff)
parentOpenBSD: Document login class w/ extended openfiles (diff)
downloadsnac2-e1e64ac0af3a3b0e15a107e7ca636bc89c63fd47.tar.gz
snac2-e1e64ac0af3a3b0e15a107e7ca636bc89c63fd47.tar.xz
snac2-e1e64ac0af3a3b0e15a107e7ca636bc89c63fd47.zip
Merge pull request 'Log xs_socket_accept failure reason and document OpenBSD login class w/ extended openfiles' (#559) from oxzi/snac2:openbsd-openfiles-nfiles into master
Reviewed-on: https://codeberg.org/grunfink/snac2/pulls/559
-rw-r--r--doc/snac.835
-rwxr-xr-xexamples/snac_openbsd_login_conf7
-rw-r--r--httpd.c5
3 files changed, 45 insertions, 2 deletions
diff --git a/doc/snac.8 b/doc/snac.8
index 78e1946..8265dea 100644
--- a/doc/snac.8
+++ b/doc/snac.8
@@ -704,6 +704,41 @@ out there. If you want your language file to be included in the standard
704.Nm 704.Nm
705distribution, please send me a link to it via the Fediverse to @grunfink@comam.es 705distribution, please send me a link to it via the Fediverse to @grunfink@comam.es
706or make a PR via the Git repository. 706or make a PR via the Git repository.
707.Ss Number of open files on OpenBSD and login classes
708Being a file intensive application, even a small
709.Nm
710instance might open lots of files, especially when forwarding a new post to
711other instances.
712.Pp
713OpenBSD's daemon login class comes with a very low
714.Pa openfiles
715value, usually restricting the amount of open files to 128 (cur), 1024 (max).
716This can result in
717.Nm
718to stop working due to too many open files.
719.Pp
720To continue operation, a new
721.Pa snac
722login class can be created. Please consult
723.Xr login.conf 5
724and afterwards create a new login class as follows.
725.Bd -literal -offset indent
726snac:\\
727 :openfiles=4096:\\
728 :tc=daemon:
729.Ed
730.Pp
731After rebuilding the
732.Pa /etc/login.conf.db ,
733ensure that your snac user's login class is set to
734.Pa snac :
735.Bd -literal -offset indent
736# cap_mkdb /etc/login.conf
737# usermod -L snac SNACUSER
738.Ed
739.Pp
740One restart later, the daemon should run with increased
741.Pa openfiles .
707.Sh ENVIRONMENT 742.Sh ENVIRONMENT
708.Bl -tag -width Ds 743.Bl -tag -width Ds
709.It Ev DEBUG 744.It Ev DEBUG
diff --git a/examples/snac_openbsd_login_conf b/examples/snac_openbsd_login_conf
new file mode 100755
index 0000000..f39b9a1
--- /dev/null
+++ b/examples/snac_openbsd_login_conf
@@ -0,0 +1,7 @@
1# OpenBSD login.conf(5) entry to increase the openfiles for the snac login
2# class. Further documented under "Number of open files on OpenBSD and login
3# classes" in snac(8).
4
5snac:\
6 :openfiles=4096:\
7 :tc=daemon:
diff --git a/httpd.c b/httpd.c
index f46cfca..219af19 100644
--- a/httpd.c
+++ b/httpd.c
@@ -1116,9 +1116,10 @@ void httpd(void)
1116 FILE *f = fdopen(cs, "r+"); 1116 FILE *f = fdopen(cs, "r+");
1117 xs *job = xs_data_new(&f, sizeof(FILE *)); 1117 xs *job = xs_data_new(&f, sizeof(FILE *));
1118 job_post(job, 1); 1118 job_post(job, 1);
1119 } 1119 } else {
1120 else 1120 srv_log(xs_fmt("error: xs_socket_accept failed: %s", strerror(errno)));
1121 break; 1121 break;
1122 }
1122 } 1123 }
1123 } 1124 }
1124 1125