citusdata / citusdata/citus

Deadlock when running master_run_on_worker in a transaction

Open
#942 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
C
Stars
12.8k
Forks
794
Avg merge
2d 14h
Merged PRs (30d)
31

Description

As it opens its own connections without checking for modifications, master_run_on_worker can easily create a deadlock if it runs in a transaction block after a modification.

```
CREATE TABLE observations (tenant_id int, sensor_id int, value float);
SELECT create_distributed_table('observations', 'tenant_id');
BEGIN;
ALTER TABLE observations ADD COLUMN measurement_time timestamp default now();
SELECT master_run_on_worker(ARRAY['localhost'], ARRAY[9700], ARRAY['SELECT tenant_id FROM observations_102008']);
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.