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/06 22:20] – Add FAQ about "Too many open files" error and solution digital manfaq:nix [2023/02/08 23:50] (current) – [Maximum Open Files] Replace pgrep with pidof digital man
Line 22: Line 22:
   * [[#SDL Errors|How do I work around SDL 1.2 run-time errors]]?   * [[#SDL Errors|How do I work around SDL 1.2 run-time errors]]?
   * [[#Recycle|Why does the recycling of servers/services not work]]?   * [[#Recycle|Why does the recycling of servers/services not work]]?
-  * [[#maxopenfiles|How do I resolve ERROR 24 (Too many open files)]]?+  * [[#Maximum_Open_Files|How do I resolve ERROR 24 (Too many open files)]]?
      
 ===== Flavors ===== ===== Flavors =====
Line 256: Line 256:
 ===== Maximum Open Files ===== ===== Maximum Open Files =====
 **Question:**\\ **Question:**\\
-Why am I getting ''ERROR 24 (Too many open files)'' failures when Synchronet tries to open files and how do I resolve that?+Why am I seeing ''ERROR 24 (Too many open files)'' failures in my error log?
  
 **Answer:**\\ **Answer:**\\
-You need to increase your maximum open file countRun ''ulimit -n'' as the user you run Synchronet as to display the current open file limit.+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.
  
-On Linux, edit ''/etc/security/limits.conf'' to edit the default limit for all users:+**Answer:**\\ 
 +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 view the soft limit: ''ulimit -Sn''\\ 
 +To view the hard limit: ''ulimit -Hn'' 
 + 
 +Another method that works on Linux is to search for line beginning with "Max open files" in the file ''/proc/$(pidof sbbs)/limits'': 
 +  $ sudo grep "Max open files" /proc/$(pidof sbbs)/limits 
 +  Max open files            10000                10000                files      
 + 
 +**If you start Synchronet with systemd**\\ 
 +If you're using [[howto:systemd|systemd]] to start sbbs, edit your service file (usually ''sbbs.service'') by adding the following line in the ''[Service]'' section: 
 + 
 +<file sbbs.service> 
 +LimitNOFILE=10000 
 +</file> 
 + 
 +After adding the line, reload the service file from the command line using ''systemctl daemon-reload''. Finally, restart Synchronet. 
 + 
 +**If you start Synchronet manually or with a shell script**\\ 
 +If you start sbbs with a shell script, manually from the command line, or some other similar method, edit ''/etc/security/limits.conf'' to add the lines below. 
 + 
 +To raise the soft limit for your Synchronet user, add this line:
  
 <file limits.conf> <file limits.conf>
-*               soft    nofile          999999+yourBBSuser     soft     nofile     10000
 </file> </file>
  
 +
 +      
 ===== See Also ===== ===== See Also =====
   * [[:faq:|Frequently Asked Questions]]   * [[:faq:|Frequently Asked Questions]]
faq/nix.1651900847.txt · Last modified: 2022/05/06 22:20 by digital man
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0