Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[App Service] az webapp ssh silently exits on macOS with Python 3.14 and Invoke 2.2.0

Đang mở
#34,005 3 bình luận 0 reaction 2 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@madsd đang làm issue này rồi.

Từ ngày 27/8/2026.

  • #34006 của @a0x1ab — đã đóng, không merge

Đánh giá

Issue này chưa được đánh giá.

Mô tả

act-observability-squad app-service-general app-service-networking Auto-Assign bug customer-reported Service Attention Web Apps
Describe the bug

On macOS with Azure CLI 2.89.1 installed by Homebrew, az webapp ssh establishes the App Service tunnel and opens a Paramiko SSH channel, but immediately closes without displaying an error. The command exits with status 0.

With --debug, the interactive session reports buffer overflow. Azure CLI catches the exception in _start_ssh_session, logs it only at INFO/debug level, closes the connection, and returns success.

The bundled Invoke 2.2.0 uses a 4-byte "HH" buffer for TIOCGWINSZ. Python 3.14 detects the 8-byte write on macOS and raises SystemError: buffer overflow. Updating Invoke to 2.2.1 fixes the command.

Upstream: https://github.com/pyinvoke/invoke/issues/1038
Python 3.14 tracking: https://github.com/Azure/azure-cli/issues/32869

Related command

az webapp ssh --resource-group --name

Errors

No error appears normally; the command silently returns with exit status 0.

With --debug:

paramiko.transport: Secsh channel 0 opened.
paramiko.transport: [chan 0] EOF sent (0)
azure.cli.command_modules.appservice.custom: buffer overflow
Client disconnected
websocket close: Connection failure.
az_command_data_logger: exit code: 0
Issue script & Debug output

``shell
az webapp ssh
--resource-group
--name
--debug


The tunnel and SSH channel are established, followed by:

paramiko.transport: Secsh channel 0 opened.
paramiko.transport: [chan 0] EOF sent (0)
azure.cli.command_modules.appservice.custom: buffer overflow
Client disconnected
websocket close: Connection failure.
az_command_data_logger: exit code: 0


Invoke 2.2.0's `invoke/terminals.py` contains:

```python
fmt = "HH"
buf = struct.pack(fmt, 0, 0)
result = fcntl.ioctl(sys.stdout, termios.TIOCGWINSZ, buf)

Invoke 2.2.1 uses the correct 8-byte "HHHH" structure. Installing 2.2.1 into Azure CLI's environment makes the same command work.

Expected behavior

The command should maintain an interactive SSH session. If terminal creation fails, Azure CLI should display the exception and return a nonzero status instead of silently closing with status 0.

Environment Summary

azure-cli 2.89.1
core 2.89.1
telemetry 1.1.0

Installation: Homebrew
Python location: /opt/homebrew/Cellar/azure-cli/2.89.1/libexec/bin/python
Python: 3.14.7
Bundled Invoke: 2.2.0
Fabric: 3.2.2
OS: macOS 26.6.2
Architecture: arm64

Additional context

Homebrew's current Azure CLI 2.89.1 formula depends on Python 3.14 and packages Invoke 2.2.0.

Working dependency update:

"$(brew --prefix azure-cli)/libexec/bin/python" \
  -m pip install --ignore-installed "invoke==2.2.1"

Another workaround is az webapp create-remote-connection plus the system SSH client.

Suggested fixes:

  1. Package a Python 3.14-compatible Invoke version.
  2. Do not suppress the session exception and report success when SSH failed.
Ngôn ngữ chính
Python
Star
4.7k
Fork
3.5k
Merge trung bình
5 ngày 9 giờ
Pull request đã merge (30 ngày)
54

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Azure/azure-cli

Tất cả issue của Azure/azure-cli

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.