Reset Password
Existing players used to logging in with their character name and moo password must signup for a website account.
j Fengshui 7s
- Rags 2m
- zxq 20m
- adrognik 2m
- SacredWest 1h
- Strummer 3h
- FunkyMango 1m
a Mench 18h Doing a bit of everything.
And 18 more hiding and/or disguised

Files, files, files!
Long standing issue fixed

So, there was a long standing issue we have had. It's that MOO would routinely be told 'you have too many open files' when we tried to open a file and write it to disk. I investigated this.

MacOS had a 256 file limit on processes spawned from the terminal. I updated that, and last year and we restarted the MOO. It was not fixed.

This is a problem because as many of you may have encountered, sometimes we have to read data (e-notes, tv, scripts) from disk. And if they can't be read, things get a bit wonky.

The thing is, the MOO -never- has 256 files open. So WTF?

After we moved to our new server, the file limit was 1024 for processes by default. I thought the issue was resolved. It was not. We kept having the issue.

Turns out file-io has a built in limit that is set at compile time of 256 files. If it see's you have more than that, it says no, even if you're able. It's a hold over I guess, from times when open file handlers were a big source of latency or memory consumption I guess.

But STILL. The MOO -never- has that many files open.

Well, guess what? In Linux, everything is a damn file. Actual files being opened, but also socket connections. For those of you that don't know, each player connected equals a socket connection. And each time the MOO reaches out to an external service like a database or the website... that's a socket connection.

So now it makes more sense that we hit the 256 limit.

So, I updated the max files allowed to be opened in the fileio patch and recompiled the MOO. Then brought us back up. Then it still wasn't fixed, because I forgot to run 'make clean' before I ran 'make' which is why we had to go down for a minute again.

But now... I can confirm, it is fixed!

-- S

Shoulda let NSec handle it.