ionic-team / ionic-team/ionic-cli

Call to os.userInfo can lead to uncaught SystemError

Đang mở
#4,438 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
TypeScript
Star
2k
Fork
682
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

**Description:**
Somewhere during releases the following code has been introduced in a release:
https://github.com/ionic-team/ionic-cli/commit/53d0afaea8966f7742220896a98da570c706fb63#diff-7c6997f05d0c3a730c4dd717afb61024
The problem I encounter is that in some cases the call to `os.userInfo();` can lead to a `SystemError` if the username or homedirectory is not returned by the OS as described here: https://nodejs.org/api/os.html#os_os_userinfo_options For me this is the case when running the ionic-cli in a Docker container using the `--user` parameter to specify a custom UID.

**Steps to Reproduce:**
Run the command `npx ionic build --prod --verbose` inside a docker container using the `--user` Docker argument to specify a specific UID.

**Output:**
```
ionic:utils-terminal Environment variables for CI detected: BUILD_ID, BUILD_NUMBER
SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_os_get_passwd returned ENOENT (no such file or directory)
```

**My `ionic info`:**
Command can not run due to the aforementioned error. This was tested with the @ionic/cli latest package and is reproducible from latest until version 5.4.7 where the code was introduced. Also the exception is thrown by all modern Node versions.

**Possible solution:**
As the method contains multiple methods of detecting a usable shell. It might be proficient to simply catch the exception and carry on using one of the following detection methods to determine the shell.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

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

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.