Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
faq:nix [2022/05/07 18:50] – [Maximum Open Files] added systemd section. nelginfaq:nix [2023/02/08 23:50] (current) – [Maximum Open Files] Replace pgrep with pidof digital man
Line 257: Line 257:
 **Question:**\\ **Question:**\\
 Why am I seeing ''ERROR 24 (Too many open files)'' failures in my error log? Why am I seeing ''ERROR 24 (Too many open files)'' failures in my error log?
 +
 +**Answer:**\\
 +Versions of Synchronet prior to v3.19c contained a bug with the JavaScript //User// class that could cause a leak of open file descriptors (concurrent opens of the ''[[dir:data]]/user.dat'' file that were never closed). This bug, combined with a long-running //webv4// ''events.ssjs'' issue that could cause a lot of instances of the //User// class to linger in the JavaScript heap (since fixed with a call to ''js.gc()''), could cause "Too many open files" errors to occur.
  
 **Answer:**\\ **Answer:**\\
 You need to increase your maximum number of open files. You need to increase your maximum number of open files.
 +\\ \\
 +**Checking current open file limits**\\
 +The most reliable way to determine your open file limit is to login to your BBS as a sysop, run the '';SHELL'' [[module:str_cmds|string command]], and at the OS command line, issue the commands below. The hard limit is the systemwide limit, and the soft limit is one that a user can raise (up to the hard limit).
  
-To determine your open file limit, when logged in as the user Synchronet runs as, use the commands below. The hard limit is the systemwide limit, and the soft limit is one that a user can raise (up to the hard limit).+To view the soft limit: ''ulimit -Sn''\\ 
 +To view the hard limit: ''ulimit -Hn''
  
-Soft limit: ''ulimit -Sn''\\ +Another method that works on Linux is to search for line beginning with "Max open files" in the file ''/proc/$(pidof sbbs)/limits'': 
-Hard limit: ''ulimit -Hn''+  $ sudo grep "Max open files" /proc/$(pidof sbbs)/limits 
 +  Max open files            10000                10000                files     
  
-To alleviate the ERROR 24 problem on Linuxfollow one of the following procedures.+**If you start Synchronet with systemd**\\ 
 +If you're using [[howto:systemd|systemd]] to start sbbsedit your service file (usually ''sbbs.service'') by adding the following line in the ''[Service]'' section:
  
 +<file sbbs.service>
 +LimitNOFILE=10000
 +</file>
  
-If you're not using systemd to start sbbs you can edit ''/etc/security/limits.conf'' to add the lines below.+After adding the line, reload the service file from the command line using ''systemctl daemon-reload''. Finally, restart Synchronet.
  
-To raise the soft limit up to the hard limit for your Synchronet userit is recommended to add this line:+**If you start Synchronet manually or with a shell script**\\ 
 +If you start sbbs with a shell scriptmanually from the command line, or some other similar method, edit ''/etc/security/limits.conf'' to add the lines below.
  
-<file limits.conf> +To raise the soft limit for your Synchronet user, add this line:
-yourBBSuser     soft     nofile     unlimited +
-</file> +
- +
-If you are still receiving ERROR 24, try raising both limits for all users by adding these lines instead:+
  
 <file limits.conf> <file limits.conf>
-*               hard     nofile     unlimited +yourBBSuser     soft     nofile     10000
-*               soft     nofile     unlimited+
 </file> </file>
-  
- 
-If you are running sbbs from systemd then you'll need to edit your service file. Add the following line in the [Service] section 
- 
-   LimitNOFILE=10000 
-Reload the service file 
- 
-   systemctl daemon-reload 
-This will give you a safety net in case a runaway process tries to open a lot of files. Don't forget to restart your bbs after making the change.  
- 
-To verify the number of files, you can use the sysop ;SHELL command and run 
  
-  ulimit -a 
-to see exactly which limits your process is to conform to. 
  
              
faq/nix.1651974630.txt · Last modified: 2022/05/07 18:50 by nelgin
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0