[Bug]: Admin overview itself significantly increases Select_full_join

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

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

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
30/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
mariadb, sql
Lĩnh vực
databases, observability

Hướng nghiên cứu

Start with the schema inspection queries the reporter captured in the slow query log, which join information_schema.TABLES, COLUMNS, key_column_usage and referential_constraints. Reproduce by reading the global Select_full_join counter before and after opening the Administration Overview, then decide how the health check should exclude or account for its own queries. Done means the warning no longer rises from opening the page, and the maintainers agree on the approach, since the issue offers two alternatives.

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

Mô tả

0. Needs triage bug
⚠️ This issue respects the following points: ⚠️
  • This is not a troubleshooting question, general support matter, or webserver/proxy problem, but likely a bug (if unsure, ask the Community Help Forum).
  • This issue is not already reported on Github OR solved at the Community Help Forum (I've searched!).
  • I'm using a maintained major version of Nextcloud Server and tested against the latest patch level. (Supported major versions and current patch levels).
  • I agree to follow Nextcloud's Code of Conduct.
  • I've tried my best to provide clear reproduction steps that someone unfamiliar with this bug could use to reproduce it.
Bug description
Admin overview itself significantly increases Select_full_join
Description

The Nextcloud Administration Overview reports:

Joins without indexes
Warning Select_full_join
Some joins are scanning entire tables because no usable index exists on the join column.

While investigating this warning, I observed that opening the Nextcloud Administration Overview itself significantly increases MariaDB's global Select_full_join counter.

Reproduction

Immediately before opening the Administration Overview:

Select_full_join | 75

After opening the Administration Overview exactly once:

Select_full_join | 87

A single execution of the Administration Overview therefore increased Select_full_join by 12.

Additional investigation

occ db:add-missing-indices completes without reporting or adding any missing Nextcloud indexes.

For further analysis, I temporarily enabled:

slow_query_log = ON
log_queries_not_using_indexes = ON

During a 10-minute test, Select_full_join increased from 47 to 74.

The slow query log contained several schema inspection queries executed by Nextcloud against information_schema, including joins involving:

information_schema.TABLES
information_schema.COLUMNS
information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
information_schema.key_column_usage
information_schema.referential_constraints

Several of these schema inspection queries were executed repeatedly while accessing the Administration Overview.

Impact

On a lightly used Nextcloud instance, the Select_full_join health check appears to influence the metric it evaluates:

  1. Opening the Administration Overview executes database schema inspection queries.
  2. These queries appear to increase MariaDB's global Select_full_join counter.
  3. The Administration Overview evaluates this global counter.
  4. The health check itself may therefore contribute to the warning being displayed.

After approximately 47 hours of uptime, my instance showed:

Select_full_join = 47
Questions        = 160371

This corresponds to approximately 0.029%.

Opening the Administration Overview once subsequently increased Select_full_join by another 12.

Expected behavior

Queries executed as part of the Administration Overview / health checks should ideally not materially influence the database metric used to determine the health-check result.

Alternatively, the health check could account for its own database inspection queries when evaluating Select_full_join.

Environment
  • Nextcloud: 34.0.1
  • MariaDB: 11.8.6
  • OS: Debian 13 (x86_64)
  • Database backend: MariaDB
  • occ db:add-missing-indices: no missing indexes reported
Steps to reproduce
Expected behavior

Queries executed as part of the Administration Overview / health checks should ideally not materially influence the database metric used to determine the health-check result.

Alternatively, the health check could account for its own database inspection queries when evaluating Select_full_join.

Nextcloud Server version

35

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.5

Web server

Nginx

Database engine version

MariaDB

Is this bug present after an update or on a fresh install?

Upgraded to a MAJOR version (ex. 31 to 32)

Are you using the Nextcloud Server Encryption module?

None

What user-backends are you using?
  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other
Configuration report

List of activated Apps

Nextcloud Signing status

Nextcloud Logs

Additional info

No response

Ngôn ngữ chính
JavaScript
Star
133
Fork
67
Merge trung bình
21 giờ 28 phút
Pull request đã merge (30 ngày)
53

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 nextcloud/serverinfo

Tất cả issue của nextcloud/serverinfo

Issue tương tự

Thêm issue về JavaScript

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.