Skip to content

Yezzey test#8

Merged
reshke merged 5 commits intomainfrom
y_test
Feb 2, 2026
Merged

Yezzey test#8
reshke merged 5 commits intomainfrom
y_test

Conversation

@reshke
Copy link

@reshke reshke commented Dec 2, 2025

Fixes #ISSUE_Number

What does this PR do?

Type of Change

  • Bug fix (non-breaking change)
  • New feature (non-breaking change)
  • Breaking change (fix or feature with breaking changes)
  • Documentation update

Breaking Changes

Test Plan

  • Unit tests added/updated
  • Integration tests added/updated
  • Passed make installcheck
  • Passed make -C src/test installcheck-cbdb-parallel

Impact

Performance:

User-facing changes:

Dependencies:

Checklist

Additional Context

CI Skip Instructions


t1

f

Update run_tests.sh

Update Dockerfile
Copy link

@leborchuk leborchuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed privately we will redesign it later in another PR. Right now we copy existing code from open-gpdb in order to make sure all out future PR is Ok

@reshke reshke merged commit a898b43 into main Feb 2, 2026
41 of 42 checks passed
leborchuk pushed a commit that referenced this pull request Feb 10, 2026
We faced an issue - segments fail with backtrace
```
#7  0x00007f9b2adbf2e0 in set_qi_error_message (req=0x55f24a6011f0) at src/ProtoUtils.cpp:124
#8  0x00007f9b2adc30d9 in EventSender::collect_query_done (this=0x55f24a5489f0, query_desc=0x55f24a71ca68, status=METRICS_QUERY_ERROR) at src/EventSender.cpp:222
#9  0x00007f9b2adc23e1 in EventSender::query_metrics_collect (this=0x55f24a5489f0, status=METRICS_QUERY_ERROR, arg=0x55f24a71ca68) at src/EventSender.cpp:53
```

the root cause here is we're trying to send info about error message in a hooks collector. For some queries ErrorData struckture could be NULL despite the fact that an error has occurred. it depends on error type and location of the error. So we should check if we had info about error details before using it.
leborchuk pushed a commit that referenced this pull request Mar 10, 2026
Design: In past, we use GUC diskquota_monitor_database to save the diskquota enabled databases. DBA has to reset the value in postgresql.conf each time and call pg_ctl reload to refresh the database list. To make this management process easy, we use a heap table (diskquota_name.database_list) in database `diskquota` to store the monitored database list instead.
GUC diskquota_monitor_database is removed and the monitored database is loaded into table database_list by `create extension diskquota` and delete from table by `drop extension diskquota` automatically.
When `create extension diskquota` is called, a UDF, diskquota_start_worker, is invoked, and the launcher will store the dboid into table diskquota_name.database_list, and start a bgworker for the corresponding database to control the disk usage of this database.
When `drop extension diskquota` is called, a hook function, object_access_hook, is invoked, and the launcher will delete the dboid from table diskquota_name.database_list, and stop the corresponding bgworker.

Protocol: The communication between the launcher process of diskquota and the backends uses a simple protocol, via a block of shared memory(MessageBox). When the backend wants to send a message to the launcher, it follows the steps:
* acquires a lock
* fills message data into the message_box
* sends a signal SIGUSR1 to the launcher
* waits for a response, in a loop with a timeout
* consumes the response
* releases the lock

Note: now, the user must create database `diskquota' manually before using diskquota,
or the launcher process will start failed.

* Fix regression test caused by the changes of database diskquota uses
* Add a test case: insert after drop extension diskquota

1. insert should not fail due to constraint of diskquota
2. constraint added by diskquota will be removed immediately when user drop extension
3. update error message for `ERR_PENDING'

Fix changes from pg to gpdb:
1. Fix lwlock request and alloc
2. Fix some typo

* remove the unneeded code to set `monitor_databases`
* Fix a bug caused by debug_query_string when executes utility SPI

reset ps display name of the worker process before logic loop

* Update test cases

1. remove prepare0, fini
2. add test_insert_after_drop
3. update keywords to upper case
4. update result files for test_schema, test_extension, test_insert_after_drop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants