octane icon indicating copy to clipboard operation
octane copied to clipboard

Operation not permitted after server OOM

Open Pluuk opened this issue 1 year ago • 4 comments

Octane Version

2.3.4

Laravel Version

10.46.0

PHP Version

8.2.20

What server type are you using?

Swoole

Server Version

5.1.1

Database Driver & Version

No response

Description

When the server runs out of memory, swoole is restarted after a restart of the server. Swoole thinks that the process should still be active because the PID is still in the octane-server-state.json, but this process ID doesn't exist anymore. Then in line 22-24 of src/Swoole/SwooleExtension.php it tries to kill a PID which doesn't exist anymore, receives a Operation not permitted[1] error and crashes the process, which is not started anymore.

Steps To Reproduce

  1. Create a laravel octane instance.
  2. Start up the server
  3. Trigger an OOM error on the server
  4. Try to restart the octane instance

Pluuk avatar Jul 01 '24 07:07 Pluuk

Thank you for reporting this issue!

As Laravel is an open source project, we rely on the community to help us diagnose and fix issues as it is not possible to research and fix every issue reported to us via GitHub.

If possible, please make a pull request fixing the issue you have described, along with corresponding tests. All pull requests are promptly reviewed by the Laravel team.

Thank you!

github-actions[bot] avatar Jul 01 '24 08:07 github-actions[bot]

Thanks @Pluuk. Would appreciate help here in handling this gracefully. Most likely we'll need to somehow check if the PID still exists first?

driesvints avatar Jul 01 '24 08:07 driesvints

Yes, but it could also be the case that the PID exists, but is not owned by octane anymore, thus we're not allowed to kill it. I'm not familiar enough with this, so I'm not able to create a PR for this unfortunately.

Pluuk avatar Jul 01 '24 09:07 Pluuk

Hey! Try chown -R www-data:www-data . on the root folder of Laravel if you are using Nginx as a web server

paramientos avatar Sep 19 '24 12:09 paramientos

Hey there,

We're closing this issue because it's inactive, already solved, old, or not relevant anymore. Feel free to open up a new issue if you're still experiencing this problem.

crynobone avatar Dec 31 '24 02:12 crynobone