27 Jul 2025 |
K900 | Yeah I figured that one out | 05:48:03 |
K900 | OK so | 05:53:07 |
K900 | I added logging to every fucking wrapper in the chain | 05:53:14 |
K900 | exec -a umu-run /home/k900/test/umu-run-wrapped <blah blah game>
import _frozen_importlib # frozen
import _imp # builtin
import '_thread' # <class '_frozen_importlib.BuiltinImporter'>
import '_warnings' # <class '_frozen_importlib.BuiltinImporter'>
import '_weakref' # <class '_frozen_importlib.BuiltinImporter'>
import '_io' # <class '_frozen_importlib.BuiltinImporter'>
import 'marshal' # <class '_frozen_importlib.BuiltinImporter'>
import 'posix' # <class '_frozen_importlib.BuiltinImporter'>
import '_frozen_importlib_external' # <class '_frozen_importlib.FrozenImporter'>
# installing zipimport hook
import 'time' # <class '_frozen_importlib.BuiltinImporter'>
import 'zipimport' # <class '_frozen_importlib.FrozenImporter'>
# installed zipimport hook
# /nix/store/djck7mx6jad1w0yy6zings96dyxanls6-python3-3.13.5/lib/python3.13/encodings/__pycache__/__init__.cpython-313.pyc matches /nix/store/djck7mx6jad1w0yy6zings96dyxanls6-python3-3.13.5/lib/python3.13/encodings/__init__.py
# code object from '/nix/store/djck7mx6jad1w0yy6zings96dyxanls6-python3-3.13.5/lib/python3.13/encodings/__pycache__/__init__.cpython-313.pyc'
import '_codecs' # <class '_frozen_importlib.BuiltinImporter'>
import 'codecs' # <class '_frozen_importlib.FrozenImporter'>
# /nix/store/djck7mx6jad1w0yy6zings96dyxanls6-python3-3.13.5/lib/python3.13/encodings/__pycache__/aliases.cpython-313.pyc matches /nix/store/djck7mx6jad1w0yy6zings96dyxanls6-python3-3.13.5/lib/python3.13/encodings/aliases.py
# code object from '/nix/store/djck7mx6jad1w0yy6zings96dyxanls6-python3-3.13.5/lib/python3.13/encodings/__pycache__/aliases.cpython-313.pyc'
import 'encodings.aliases' # <_frozen_importlib_external.SourceFileLoader object at 0x7fd1fb3ba210>
import 'encodings' # <_frozen_importlib_external.SourceFileLoader object at 0x7fd1fb3352b0>
# /nix/store/djck7mx6jad1w0yy6zings96dyxanls6-python3-3.13.5/lib/python3.13/encodings/__pycache__/utf_8.cpython-313.pyc matches /nix/store/djck7mx6jad1w0yy6zings96dyxanls6-python3-3.13.5/lib/python3.13/encodings/utf_8.py
# code object from '/nix/store/djck7mx6jad1w0yy6zings96dyxanls6-python3-3.13.5/lib/python3.13/encodings/__pycache__/utf_8.cpython-313.pyc'
import 'encodings.utf_8' # <_frozen_importlib_external.SourceFileLoader object at 0x7fd1fb3ba350>
import '_signal' # <class '_frozen_importlib.BuiltinImporter'>
import '_abc' # <class '_frozen_importlib.BuiltinImporter'>
import 'abc' # <class '_frozen_importlib.FrozenImporter'>
import 'io' # <class '_frozen_importlib.FrozenImporter'>
| 05:53:35 |
K900 | And it just dies there | 05:53:45 |
Charles | the only thing i can think of is that exec doesn't create a new process, so maybe somehow the shell process has some kind of state somewhere that the exec'd thing ends up inheriting that causes it to explode, and i have no idea how to go about testing/falsifying that idea | 05:55:41 |
K900 | Oh god | 05:56:34 |
K900 | I think I figured it out | 05:56:38 |
Charles | what did you see, denvercoder9 | 05:57:23 |
K900 | Or maybe not | 06:00:09 |
K900 | It's like it's getting killed at a random point | 06:00:17 |
K900 | I wonder if this is some python subprocess.popen nonsense | 06:00:36 |
K900 | Because Legendary is just doing subprocess.popen | 06:00:45 |
Charles | not a consistent point? | 06:00:49 |
K900 | Nope | 06:04:38 |
K900 | OK so I think what MIGHT be happening is that something is not detaching somewhere | 06:05:19 |
K900 | So when the Python parent dies, we die with it | 06:05:26 |
K900 | WAIT IS THIS BUBBLEWRAP | 06:05:29 |
K900 | Motherfucker it is | 06:07:08 |
K900 | We default to --die-with-parent | 06:07:15 |
K900 | And Legendary doesn't wait for the process | 06:07:29 |
K900 | So we just die | 06:07:30 |
K900 | Immediately | 06:07:32 |
K900 | @aidalgol gottem | 06:08:31 |
aidalgol | yay! | 06:10:06 |
aidalgol | thank you! | 06:10:08 |
aidalgol | So where does the change need to be made? In the nix derivation that lives in the umu repo? | 06:10:38 |
K900 | I'm not sure if die-with-parent by default even makes sense for fhsenvs tbh | 06:10:42 |
K900 | I'm doing one final test | 06:10:58 |
K900 | And I can push to your PR I guess | 06:11:04 |