Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

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]]