diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index 35a0e4353ae7..579bec779640 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -9,6 +9,7 @@ ### Bugs Fixed - Ensure `AzurePowershellCredential` calls PowerShell with the `-NoProfile` flag to avoid loading user profiles for more consistent behavior. ([#31682](https://github.com/Azure/azure-sdk-for-python/pull/31682)) +- Fixed an issue with subprocess-based developer credentials (such as AzureCliCredential) where the process would sometimes hang waiting for user input. ([#31534](https://github.com/Azure/azure-sdk-for-python/pull/31534)) ### Other Changes diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azd_cli.py b/sdk/identity/azure-identity/azure/identity/_credentials/azd_cli.py index 4d1d5ff9e740..bbb5ac12a43d 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azd_cli.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azd_cli.py @@ -211,6 +211,7 @@ def _run_command(command: str, timeout: int) -> str: kwargs: Dict[str, Any] = { "stderr": subprocess.PIPE, + "stdin": subprocess.DEVNULL, "cwd": working_directory, "universal_newlines": True, "env": dict(os.environ, NO_COLOR="true"), diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py index 2cdd7f1a3a32..14923f9c5b24 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py @@ -187,6 +187,7 @@ def _run_command(command: str, timeout: int) -> str: kwargs: Dict[str, Any] = { "stderr": subprocess.PIPE, + "stdin": subprocess.DEVNULL, "cwd": working_directory, "universal_newlines": True, "timeout": timeout, diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py b/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py index 3dfab8fdcdce..d226d042a3af 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py @@ -158,6 +158,7 @@ def start_process(args: List[str]) -> "subprocess.Popen": cwd=working_directory, stdout=subprocess.PIPE, stderr=subprocess.PIPE, + stdin=subprocess.DEVNULL, universal_newlines=True, ) return proc diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azd_cli.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azd_cli.py index b1c229edf617..0238cfafd33d 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azd_cli.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azd_cli.py @@ -158,6 +158,7 @@ async def _run_command(command: str, timeout: int) -> str: *args, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, + stdin=asyncio.subprocess.DEVNULL, cwd=working_directory, env=dict(os.environ, NO_COLOR="true"), ) diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py index c767e8840009..9df42b417c22 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py @@ -136,6 +136,7 @@ async def _run_command(command: str, timeout: int) -> str: *args, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, + stdin=asyncio.subprocess.DEVNULL, cwd=working_directory, env=dict(os.environ, AZURE_CORE_NO_COLOR="true"), ) diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_powershell.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_powershell.py index 59560f26b3fb..725ed15a9fe2 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_powershell.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_powershell.py @@ -139,5 +139,6 @@ async def start_process(command_line): cwd=working_directory, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, + stdin=asyncio.subprocess.DEVNULL, ) return proc