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

[Bug] health_check.bat creates a stray empty directory (e.g. C:\Program) when the install path contains a space

Đang mở Phù hợp với người mới
#18,177 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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

@wallner-avat đang làm issue này rồi.

Từ ngày 9/7/2026.

  • #18178 của @wallner-avat — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
78/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
shell
Lĩnh vực
operating-systems, tooling

Hướng nghiên cứu

Bắt đầu trong scripts/tools/windows/ops/health_check.bat, tập trung vào routine :local_dirs_check và việc lặp qua các thư mục của routine này. Tái hiện với IoTDB được cài đặt trong một đường dẫn có chứa khoảng trắng, sau đó xác minh rằng tools\windows\ops\health_check.bat -o local báo cáo mỗi thư mục đã cấu hình dưới dạng một đường dẫn duy nhất và không tạo thư mục thừa nào.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Search before asking
  • I searched in the issues and found nothing similar.
Version

Reproduced on 2.0.8 and current master (identical code). Present since the tool was introduced (#12325); not addressed by #12435 (launch scripts) or #12450 (permission-detection logic).

Environment:

  • OS: Windows (reproduces wherever the install path contains a space)
  • IoTDB: 2.0.8 and master
Describe the bug and provide the minimal reproduce step

On Windows, if IoTDB is located under a path that contains a space (e.g. C:\Program Files\iotdb), the health-check tool's Installation Environment(Directory Access) check splits directory paths at the space. It:

  1. creates a stray empty directory such as C:\Program, and
  2. prints garbled results - e.g. "C:\Program" has write permission followed by "Files\...\ext\pipe" has write permission - instead of one line for the real directory.

To reproduce:

  1. Unzip/install IoTDB into a path containing a space, e.g. C:\Program Files\iotdb (or C:\test dir\iotdb).
  2. Run tools\windows\ops\health_check.bat -o local.
  3. Observe a stray empty C:\Program directory, and split/garbled lines in the Directory Access section.

Any configured directory under the spaced install path triggers it; the ext/* dirs (pipe_lib_dir / udf_lib_dir / trigger_lib_dir) hit it by default because they resolve to %IOTDB_HOME%\ext\....

Affected file: scripts/tools/windows/ops/health_check.bat, routine :local_dirs_check.

Root cause:

:local_dirs_check joins the directory variables into spacedirs with spaces and iterates with for %%a in (%spacedirs%). The for ... in (set) form tokenizes on spaces (and ,/;), so a path containing a space is split into two
tokens. The inner for %%b/%%c loops already preserve spaces for the ;/, multi-dir separators via the "!var:;=" "!" technique, but the outer space-join defeats that. Separately, %%c (from for %%c in ("...")) still carries its
surrounding quotes, so mkdir "%%c" expands to mkdir ""C:\Program Files\..."" - a doubly-quoted path the argument parser re-splits.

What did you expect to see?

Each configured directory is checked as a single path; no stray directory is created; the output has one clean line per directory.

What did you see instead?

The tool splits directory paths at the space and creates a stray directory.

Anything else?

The docs recommend a space-free install path, but the tool shouldn't create stray directories or emit corrupt output when that guidance isn't met - especially since Windows users frequently install under C:\Program Files. A minimal fix is
available (see PR).

Are you willing to submit a PR?
  • I'm willing to submit a PR!
Ngôn ngữ chính
Java
Star
6.4k
Fork
1.2k
Merge trung bình
1 ngày 11 giờ
Pull request đã merge (30 ngày)
149

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

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 apache/iotdb

Tất cả issue của apache/iotdb

Issue tương tự

Thêm issue về Java

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.