Friday | 08 DEC 2023

Phantoms and Forking


I have disabled the forking in my web server because it was causing issues. ScarletDME got into a really weird state where it wasn't letting my spawn new phantoms and it messed up the VOC.

This came to a head because I was working on the AdventureWorks demo and I wanted to load it to my site. This meant that I would have two of my SERAPHIM instances running at the same time. This originally seemed to work fine when I ran things from the foreground, however when I tried to use a phantom I got some strange errors. Unfortunately I didn't save the errors.

Most likely the forking logic and the phantoms were interacting weirdly. The error message said that the phantom didn't have any disk space to run but there was plenty.

Instead of trying to hack the FORK to work properly, I've made my blog single threaded again. I put the fork logic inside an ifdef and now you can enable the fork logic to get it. I'll need to investigate this issue as I do want forking but it will likely require some deeper work.

I'm debating writing a routine that will spin up phantoms and have a queuing system using caddy. This way I can have a pool of servers that will handle requests. I wonder how scaleable things are with that idea.