bpo-34602: Avoid failures setting macOS stack resource limit by ned-deily · Pull Request #14546 · python/cpython (original) (raw)
When attempting to run the Odoo server on macOS Monterey (currently 12.4), it crashes with the following traceback:
Traceback (most recent call last):
File "/Users/app/Code/odoo/odoo-bin", line 8, in <module>
odoo.cli.main()
File "/Users/app/Code/odoo/odoo/cli/command.py", line 61, in main
o.run(args)
File "/Users/app/Code/odoo/odoo/cli/server.py", line 179, in run
main(args)
File "/Users/app/Code/odoo/odoo/cli/server.py", line 173, in main
rc = odoo.service.server.start(preload=preload, stop=stop)
File "/Users/app/Code/odoo/odoo/service/server.py", line 1342, in start
rc = server.run(preload, stop)
File "/Users/app/Code/odoo/odoo/service/server.py", line 553, in run
self.start(stop=stop)
File "/Users/app/Code/odoo/odoo/service/server.py", line 491, in start
set_limit_memory_hard()
File "/Users/app/Code/odoo/odoo/service/server.py", line 83, in set_limit_memory_hard
resource.setrlimit(rlimit, (config['limit_memory_hard'], hard))
ValueError: current limit exceeds maximum limit
Actually, this issue is not specific to Odoo but affects Python on macOS as a whole (see [1] and [2]).
As our memory management is based on Linux - which is our primary deployment target - and non-POSIX systems were already excluded, this commit escapes the rlimit modification on non-Linux systems to prevent this kind of issue.
References: [1] https://bugs.python.org/issue34602 [2] python/cpython#14546
Related issue: #79112
closes #93381
Signed-off-by: Xavier Morel (xmo) xmo@odoo.com