Database Group Triage for week ending 2025-07-18
About
This issue is used by groupdatabase frameworks to triage issues and make sure they get properly assigned and prioritized. Each week, a bot will look up the old issue, pick the next assignee in the list, and submit a new issue with a list of any issues that may need attention from the team.
Process
-
Review any issues with undefined types -
Post any questions or pressing issues to the database group meeting doc
Bugs needing Severity
For each issue below:
- For each typebug, spend up to 1 hour investigating or fixing the issue.
- Assign it one of severity1, severity2, severity3, or severity4
- Document any findings you make in a comment on the issue, and if the issue still needs additional work or refinement, consider looping in
@alexivesand@to help with scheduling and priority.
-
Stale FK after CI decomposition causing '"ci_triggers" is write protected within this Gitlab database' errors -
Postgres Database Migration: 14 to 16 fails when top level snippets have comments -
Inconsistent return value usage in safe_find_or_create_by -
On Premise install issues when using Postgress EnterPrise DB (Oracle compatibility): with Group Rights & Expiration dates -
Sanitize SQL queries in order to prevent wildcard injection
Issues with Undefined Type
For each issue below:
- Assess if the issue is appropriately assigned to groupdatabase frameworks, if not add the correct group label.
- Add the proper work type label, or if the issue is a request for support, redirect the user to our support resources with the following message:
Hey @author. Based on the information given, this request for support is out of the scope of the issue tracker (which is for new bug reports and feature proposals). Unfortunately, I won't be able to help get it resolved. However, for support requests we have several resources that you can use to find help and support from the Community, including: * [Technical Support for Paid Tiers](https://about.gitlab.com/support/) * [Community Forum](https://forum.gitlab.com/) * [Reference Documents and Videos](https://about.gitlab.com/get-help/#references) Please refer to our [Support page](https://about.gitlab.com/support/) for more information. If you believe this was closed in error, please feel free to re-open the issue. /label ~"support request" /close - If the issue needs further investigation, add databasetriage and spend up to 1 hour of investigating the issue.
- Document any findings you make in a comment on the issue, and if the issue still needs additional work or refinement, consider looping in
@alexivesand@to help with scheduling and priority.
-
Move patroni-registry CPU saturation to separate alert -
Feature flags requiring attention for group::database frameworks - 2025-07-01 -
Database: Consider removing the surrounding SELECT when using FromUnion.from_union -
Consider removing index_mr_metrics_on_target_project_id_merged_at_time_to_merge index -
Consider removing the upper bound on the contributions calendar date range -
RelativePositioningconcern could be more efficient -
Define how to test migrations that include EE code -
Migrate deprecated bulk insert calls to use BulkInsertSafe -
Add NOT NULL constraints in application_settings.restricted_visibility_levels -
Ensure index is created before foreign keys -
Create a Rubocop checker for EE-only background migrations -
Modify add_concurrent_foreign_keyto usevalidate_foreign_keymethod -
500 Error loading /admin/groups: ActionView::Template::Error: PG::QueryCanceled: ERROR: canceling statement due to statement timeout -
Modify UpdateColumnInBatches bot to also consider ee/spec/migrations -
Usage of Arel (internal Rails API)
Recent issues labeled database
For each issue below:
- If the issue has no
grouplabel, consider if it should be addressed by groupdatabase frameworks and if so label it. - If the issue has a group, and you think they may need assistance from us:
- If the issue needs further investigation, add databasetriage and spend up to 1 hour of investigating the issue.
- Document any findings you make in a comment on the issue, and if the issue still needs additional work or refinement, consider looping in
@alexivesand/or@
-
groupimport WebHooks::LogDestroyWorker is saturating postgres WAL -
grouppipeline authoring Intermittent 500 errors while accessing Settings -> CICD -
groupplatform insights [Research] Consider potential storage options for custom dashboards -
groupsource code Add allow_personal_snippets field to group settings table -
groupsecurity insights Follow-up from "Improve grade aggregation using severity-based ordering" -
grouppipeline execution Ci Pipeline won't works since 18.x -
grouppackage registry Remove temp index from "Requeue BackfillTerraformModulesMetadataWithSemverBBM" -
groupoptimize Provide data dump of GitLab team member Duo AI Usage data for DX -
groupenvironments index_deployments_on_project_id_and_iid on table deployments is costly to maintain but underutilized -
groupdurability [FF] sidekiq_throttling_middleware-- Throttle sidekiq worker based on database usage -
groupgeo GEO patroni member is listed as "pending restart" and WAL control functions cannot be executed during recovery -
grouprunner Drop column tokenfromci_runners -
groupproduct planning Placeholder users don't get migrated for epic work items -
groupcompliance [DB] Add index on source_id -
groupimport Investigate why the PG constraint error was detected on staging and not a merge request level -
groupproject management ActiveRecord::QueryCanceled due to statement timeout when deleting iteration cadence -
grouppackage registry Create background job to remove Helm metadata cache record -
grouppackage registry Introduce a model for Helm metadata cache -
groupsecurity infrastructure [FF] turn_off_vulnerability_read_create_db_trigger_function--
Recent mentions of @gitlab-org/database-team
For each mention below:
- If the item already has an adequate response, move on to the next
- If the mention is from someone looking to provide feedback on database review, and nobody has responded yet, set up a coffee chat with them and make a note in the thread that you did. Record feedback in the feedback issue.
- If you know how to respond to the comment, post a response
- If you don't know how, redirect with a specific mention to someone who may be able to respond
-
@andrashorvathmentioned the team on Database Capacity Report for week ending 2025-07-13 -
@iamphillmentioned triage on Access Change Phil Hughes and Database Lab psql access -
@project_278964_bot_a1e04ca047b466ba2f6534548fe23088mentioned triage on Alert - vulnerability_occurrence_identifiers table size approaching limits -
@project_278964_bot_a1e04ca047b466ba2f6534548fe23088mentioned triage on Alert - security_scans table size approaching limits -
@project_278964_bot_a1e04ca047b466ba2f6534548fe23088mentioned triage on Alert - project_daily_statistics table size approaching limits -
@project_278964_bot_a1e04ca047b466ba2f6534548fe23088mentioned triage on Alert - resource_state_events table size approaching limits
Customer Issue Hand-offs
For each issue below:
- If the item already has a back and forth, check in with the @praba.m7n to see if what needs to be handed off
- Consider if it's right for our team and if not, ask the support rep to follow up with the correct team.
- If the item is right for our team, spend some time accessing it and trying to assist.
- If you need help, and the request seems pressing, ask in the team channel if there's someone who can help dig into it.
-
Background migration job "BackfillPartitionedWebHookLogsDaily: web_hook_logs" stuck at finializing~"Help group::Database Frameworks", ~"RFH-Lifecycle::Last comment from Support", severity3
Review Top Queries for Changes
There were some new anomalous queries to review on the main database, broken down by metric type:
| Metric | # of queries |
|---|---|
| by_total_time | 2 |
| by_time_avg | 5 |
Please find the detailed query report here (Ops access required)
For each query listed:
- Spend up to 30 minutes trying to understand its source.
- If needed, determine the team that owns the query and file an issue with them. A good place to start would be to check the relevant table's owner under
db/docs.
For additional context around how these queries were determined to be anomalous as well as historical rankings for known queries, all of the data we have collected lives in a database dump stored in artifacts in the query-stats-reporting repo on ops. Specifically check query-stats.yml for an example of how you can use this dump to locally rehydrate this database on your own Postgres instance and analyze the collected statistics. For this iteration of this report, queries are grouped by fingerprint.
Legacy query analysis
It is not necessary to look at this unless we need to check the new anomalous query report against the top query report on the main database.
Click to expand
For each database:
- Are there new queries in the top queries (See: K003 Top-15 Queries by total_time) compared to a previous report?
- If there are new queries, Spend up to 30 minutes trying to understand their sources
- If there are new queries, file an issue and assign to the team that owns the query, or if unable to source, then the team that owns the table
- If there are no new queries, review the top 5 queries for each to see if there are already investigations, or file issues to investigate them
-
Review recent Primary Checkup for new Top Queries (K003) -
Review recent CI Checkup for new Top Queries (K003)
Review Dashboards on queries with large In-Lists
For both Sidekiq and Rails:
- If the report is empty, no action is needed
- For each item on the report:
- Determine what feature the query belongs to
- Create an issue for the team owning the feature category asking them to limit the maximum number of items in the in query
Int4 Saturation Review
For issue(s) linked below:
-
Ensure each table referenced in the report has an associated issue with ~"Gitlab.com Resource Saturation" and infradev attached
-
Make sure the issue is assigned to a team.
-
All tables approaching saturation in Capacity warning for patroni: pg_int4_id have an issue assigned to a team.
-
@alexives if @stomlinson isn't available this week, please reassign to @irina.bronipolsky
cc @
This is generated by this project.