citus/src/backend/distributed/executor
Onder Kalaci 56ca256374 Forcefully terminate connections after citus.node_connection_timeout
After the connection timeout, we fail the session/pool. However, the
underlying connection can still be trying to connect. That is dangerous
because the new placement executions have already been in place. The
executor cannot handle the situation where multiple of
EXECUTION_ORDER_ANY task executions succeeds.

Adding a regression test doesn't seem easily doable. To reproduce the issue
- Add 2 worker nodes
- create a reference table
- set citus.node_connection_timeout to 1ms (requires code change)
- Continiously execute `SELECT count(*) FROM ref_table`
- Sometime later, you hit an out-of-array access in
  `ScheduleNextPlacementExecution()` hence crashing.
- The reason for that is sometimes the first connection
  successfully established while the executor is already
  trying to execute the query on the second node.
2020-09-30 18:24:24 +02:00
..
adaptive_executor.c Forcefully terminate connections after citus.node_connection_timeout 2020-09-30 18:24:24 +02:00
citus_custom_scan.c Remove task tracker executor (#3850) 2020-07-18 13:11:36 +03:00
directed_acyclic_graph_execution.c Remove task tracker executor (#3850) 2020-07-18 13:11:36 +03:00
distributed_execution_locks.c Introduce cache entry/table utilities (#4132) 2020-09-02 22:26:05 +03:00
distributed_intermediate_results.c Introduce cache entry/table utilities (#4132) 2020-09-02 22:26:05 +03:00
insert_select_executor.c Introduce cache entry/table utilities (#4132) 2020-09-02 22:26:05 +03:00
intermediate_results.c rename node/worker utilities (#4003) 2020-07-09 15:30:35 +03:00
local_executor.c Record non-distributed table accesses in local executor (#4139) 2020-09-07 18:19:08 +03:00
multi_client_executor.c Add some asserts to pass static analysis (#3805) 2020-04-29 11:19:11 +02:00
multi_executor.c Support EXPLAIN EXECUTE ANALYZE. 2020-08-10 13:44:30 -07:00
multi_server_executor.c remove task-tracker in comments, documentation 2020-07-21 16:21:01 +03:00
partitioned_intermediate_results.c Normalize Output:.. since it changes with pg13 2020-08-04 15:38:13 +03:00
placement_access.c Replace foreach with foreach_ptr/foreach_oid (#3544) 2020-02-27 16:54:49 +01:00
query_stats.c Remove task tracker executor (#3850) 2020-07-18 13:11:36 +03:00
repartition_join_execution.c Remove task tracker executor (#3850) 2020-07-18 13:11:36 +03:00
subplan_execution.c Fix explain subplan duration 2020-07-03 20:39:55 +03:00
tuple_destination.c Fix EXPLAIN ANALYZE received data counter issues (#3917) 2020-06-17 11:33:38 +02:00