From 6b53fc13e37b47db274c8c78c0d183a8dd5cd073 Mon Sep 17 00:00:00 2001 From: Marie Ramlow Date: Sun, 24 May 2026 17:33:44 +0200 Subject: [PATCH] nixos/music-assistant: disable MemoryDenyWriteExecute MemoryDenyWriteExecute=true breaks pyopenssl's cffi calls, used in the remote access feature. ``` 2026-05-24 17:32:58.344 ERROR (MainThread) [music_assistant] Error doing task: Task exception was never retrieved Traceback (most recent call last): File "/nix/store/mmv9717wjskv3q5v4768dq0fq5hf4jry-python3.13-aiortc-1.14.0/lib/python3.13/site-packages/aiortc/rtcpeerconnection.py", line 1084, in __connect await dtlsTransport.start(self.__remoteDtls[self.__sctp]) File "/nix/store/mmv9717wjskv3q5v4768dq0fq5hf4jry-python3.13-aiortc-1.14.0/lib/python3.13/site-packages/aiortc/rtcdtlstransport.py", line 518, in start self.__local_certificate._create_ssl_context( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ srtp_profiles=self._srtp_profiles ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/nix/store/mmv9717wjskv3q5v4768dq0fq5hf4jry-python3.13-aiortc-1.14.0/lib/python3.13/site-packages/aiortc/rtcdtlstransport.py", line 198, in _create_ssl_context ctx.set_verify( ~~~~~~~~~~~~~~^ SSL.VERIFY_PEER | SSL.VERIFY_FAIL_IF_NO_PEER_CERT, lambda *args: True ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/nix/store/5kwsndvbzfj3dv4fwpdlgin42mgbd4xk-python3.13-pyopenssl-26.0.0/lib/python3.13/site-packages/OpenSSL/SSL.py", line 867, in inner return f(self, *args, **kwargs) File "/nix/store/5kwsndvbzfj3dv4fwpdlgin42mgbd4xk-python3.13-pyopenssl-26.0.0/lib/python3.13/site-packages/OpenSSL/SSL.py", line 1390, in set_verify self._verify_helper = _VerifyHelper(callback) ~~~~~~~~~~~~~^^^^^^^^^^ File "/nix/store/5kwsndvbzfj3dv4fwpdlgin42mgbd4xk-python3.13-pyopenssl-26.0.0/lib/python3.13/site-packages/OpenSSL/SSL.py", line 527, in __init__ self.callback = _ffi.callback( ~~~~~~~~~~~~~^ "int (*)(int, X509_STORE_CTX *)", wrapper ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ MemoryError: Cannot allocate write+execute memory for ffi.callback(). You might be running on a system that prevents this. For more information, see https://cffi.readthedocs.io/en/latest/using.html#callbacks ``` --- nixos/modules/services/audio/music-assistant.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/audio/music-assistant.nix b/nixos/modules/services/audio/music-assistant.nix index c0aaacc756b6..a2a383bce8cd 100644 --- a/nixos/modules/services/audio/music-assistant.nix +++ b/nixos/modules/services/audio/music-assistant.nix @@ -155,7 +155,8 @@ in CapabilityBoundingSet = [ "" ]; DevicePolicy = "closed"; LockPersonality = true; - MemoryDenyWriteExecute = !useYTMusic; + # breaks pyopenssl's cffi calls, used in remote access feature + MemoryDenyWriteExecute = false; ProcSubset = "pid"; ProtectClock = true; ProtectControlGroups = true;