oracle / graalpython

A Python 3 implementation built on GraalVM
Other
1.17k stars 101 forks source link

RuntimeError: preexec_fn not supported #393

Closed oroppas closed 2 months ago

oroppas commented 3 months ago

I encountered the runtime error by running marimo:

graalpy -m venv venv
source venv/bin/activate
pip install marimo
marimo tutorial intro

Here's the full log:

marimo tutorial intro

        Edit intro.py in your browser 📝

        URL: http://localhost:2718

Exception in callback open_url_in_browser('default', 'http://127.0.0.1:2718') at /run/media/cd4mcq/a753d81b-ec54-48b7-b685-68b11b9f9721/packages/graalvm/polyglot/venv/lib/python3.11/site-packages/marimo/_server/api/utils.py:49
handle: <TimerHandle when=1500871.167453309 open_url_in_browser('default', 'http://127.0.0.1:2718') at /run/media/cd4mcq/a753d81b-ec54-48b7-b685-68b11b9f9721/packages/graalvm/polyglot/venv/lib/python3.11/site-packages/marimo/_server/api/utils.py:49>
Traceback (most recent call last):
  File "/run/media/cd4mcq/a753d81b-ec54-48b7-b685-68b11b9f9721/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_196BE1ADE8_JAVA21/graalvm-196be1ade8-java21-24.1.0-dev/languages/python/lib/python3.11/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/run/media/cd4mcq/a753d81b-ec54-48b7-b685-68b11b9f9721/packages/graalvm/polyglot/venv/lib/python3.11/site-packages/marimo/_server/api/utils.py", line 59, in open_url_in_browser
    subprocess.Popen(
  File "/run/media/cd4mcq/a753d81b-ec54-48b7-b685-68b11b9f9721/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_196BE1ADE8_JAVA21/graalvm-196be1ade8-java21-24.1.0-dev/languages/python/lib/python3.11/subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/run/media/cd4mcq/a753d81b-ec54-48b7-b685-68b11b9f9721/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_196BE1ADE8_JAVA21/graalvm-196be1ade8-java21-24.1.0-dev/languages/python/lib/python3.11/subprocess.py", line 1916, in _execute_child
    self.pid = _fork_exec(
               ^^^^^^^^^^^
RuntimeError: preexec_fn not supported
timfel commented 2 months ago

Yes, we cannot support preexec_fn. The upstream project will have to be changed to not use it on graalpy (like they already do when running on win32)

oroppas commented 2 months ago

Supported by the upstream.