(errno: 24 - Too many open files)

A spune în secolul XXI că 256 de fișiere deschise este valoarea maximă implicită pentru un proces, este ca și când Bill Gates a spus în 1980 ca nu va fi niciodată nevoie de mai mult de 640 de kB de RAM.

Şi totuși se întâmplă. Nu oriunde ci de data asta pe Mac OSX, sau spus mai fancy macOS. Yosemite+. MySQL-ul puțin tunat, împreună cu Drupal care pentru un proiect puțin mai mare decât un site personal are 150+ tabele, dacă încerci să faci un sql-sync dai de eroarea asta mizerabilă:

Executing: gzip -d /tmp/project_20161130_214009.sql.gz
Executing: mysql --defaults-extra-file=/private/tmp/drush_VHk9KO --database=project --host=localhost --silent  < /tmp/project_20161130_214009.sql
  ERROR 1016 (HY000) at line 25: Can't open file: './project/actions.frm' (errno: 24 - Too many open files)
Query failed. [33.1 sec, 12.2 MB]                                                                                                                                                                                                  [error]
Returned from hook drush_sql_query [33.1 sec, 8.97 MB] 

Deci, soluția este simplă (după mai multe reboot-uri și câteva milioane de neuroni distruși), vei afla că OSX vine cu maxim 256 de fișiere  (ulimit -n)

Ca să îl schimbi, 

sudo vim  /Library/LaunchDaemons/limit.maxfiles.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
        "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>limit.maxfiles</string>
    <key>ProgramArguments</key>
    <array>
      <string>launchctl</string>
      <string>limit</string>
      <string>maxfiles</string>
      <string>524288</string>
      <string>524288</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist>

probabil reboot, și gata.

$> ulimit -n
524288

Bleah!