Compare commits

...

5 Commits
main ... v8.2.1

Author SHA1 Message Date
velioglu d59b1be3dd
Bump Citus version to 8.2.1 2019-04-04 00:21:29 +03:00
velioglu c011f2cf6d
Add changelog entry for 8.2.1 2019-04-04 00:10:29 +03:00
Onder Kalaci 78cd05b4aa
Ensure that stack resizing logic works expected
This commit has two goals:

(a) Ensure to access both edges of the allocated stack
(b) Ensure that any compiler optimizations to prevent the
    function optimized away.

Stack size after the patch:
 sudo grep -A 1 stack /proc/2119/smaps
7ffe305a6000-7ffe307a9000 rw-p 00000000 00:00 0                          [stack]
Size:               2060 kB

Stack size before the patch:
 sudo grep -A 1 stack /proc/3610/smaps
7fff09957000-7fff09978000 rw-p 00000000 00:00 0                          [stack]
Size:                132 kB

(cherry picked from commit fb38dc3136)
2019-04-04 00:07:20 +03:00
Burak Velioglu ba8a3a667d Bump Citus version to 8.2.0 2019-03-28 16:05:16 +03:00
Burak Velioglu 25c9817532 Add changelog entry for 8.2.0 2019-03-28 15:44:09 +03:00
5 changed files with 79 additions and 11 deletions

View File

@ -1,3 +1,53 @@
### citus v8.2.1 (April 03, 2019) ###
* Fixes a bug that prevents stack size to be adjusted
### citus v8.2.0 (March 28, 2019) ###
* Removes support and code for PostgreSQL 9.6
* Enable more outer joins with reference tables
* Execute CREATE INDEX CONCURRENTLY in parallel
* Treat functions as transaction blocks
* Add support for column aliases on join clauses
* Skip standard_planner() for trivial queries
* Added support for function calls in joins
* Round-robin task assignment policy relies on local transaction id
* Relax subquery union pushdown restrictions for reference tables
* Speed-up run_command_on_shards()
* Address some memory issues in connection config
* Restrict visibility of get_*_active_transactions functions to pg_monitor
* Don't do redundant ALTER TABLE consistency checks at coordinator
* Queries with only intermediate results do not rely on task assignment policy
* Finish connection establishment in parallel for multiple connections
* Fixes a bug related to pruning shards using a coerced value
* Fix an issue with some DECLARE .. CURSOR WITH HOLD commands
* Fixes a bug that could lead to infinite recursion during recursive planning
* Fixes a bug that could prevent planning full outer joins with using clause
* Fixes a bug that could lead to memory leak on `citus_relation_size`
* Fixes a problem that could cause segmentation fault with recursive planning
* Switch CI solution to CircleCI
### citus v8.0.3 (January 9, 2019) ### ### citus v8.0.3 (January 9, 2019) ###
* Fixes maintenance daemon panic due to unreleased spinlock * Fixes maintenance daemon panic due to unreleased spinlock

18
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for Citus 8.2devel. # Generated by GNU Autoconf 2.69 for Citus 8.2.1.
# #
# #
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='Citus' PACKAGE_NAME='Citus'
PACKAGE_TARNAME='citus' PACKAGE_TARNAME='citus'
PACKAGE_VERSION='8.2devel' PACKAGE_VERSION='8.2.1'
PACKAGE_STRING='Citus 8.2devel' PACKAGE_STRING='Citus 8.2.1'
PACKAGE_BUGREPORT='' PACKAGE_BUGREPORT=''
PACKAGE_URL='' PACKAGE_URL=''
@ -1240,7 +1240,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures Citus 8.2devel to adapt to many kinds of systems. \`configure' configures Citus 8.2.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1301,7 +1301,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of Citus 8.2devel:";; short | recursive ) echo "Configuration of Citus 8.2.1:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1401,7 +1401,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
Citus configure 8.2devel Citus configure 8.2.1
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -1884,7 +1884,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by Citus $as_me 8.2devel, which was It was created by Citus $as_me 8.2.1, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -4706,7 +4706,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by Citus $as_me 8.2devel, which was This file was extended by Citus $as_me 8.2.1, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -4768,7 +4768,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
Citus config.status 8.2devel Citus config.status 8.2.1
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View File

@ -5,7 +5,7 @@
# everyone needing autoconf installed, the resulting files are checked # everyone needing autoconf installed, the resulting files are checked
# into the SCM. # into the SCM.
AC_INIT([Citus], [8.2devel]) AC_INIT([Citus], [8.2.1])
AC_COPYRIGHT([Copyright (c) 2012-2017, Citus Data, Inc.]) AC_COPYRIGHT([Copyright (c) 2012-2017, Citus Data, Inc.])
# we'll need sed and awk for some of the version commands # we'll need sed and awk for some of the version commands

View File

@ -52,6 +52,7 @@
#include "distributed/worker_manager.h" #include "distributed/worker_manager.h"
#include "distributed/worker_protocol.h" #include "distributed/worker_protocol.h"
#include "distributed/worker_shard_visibility.h" #include "distributed/worker_shard_visibility.h"
#include "port/atomics.h"
#include "postmaster/postmaster.h" #include "postmaster/postmaster.h"
#include "optimizer/planner.h" #include "optimizer/planner.h"
#include "optimizer/paths.h" #include "optimizer/paths.h"
@ -261,7 +262,24 @@ ResizeStackToMaximumDepth(void)
long max_stack_depth_bytes = max_stack_depth * 1024L; long max_stack_depth_bytes = max_stack_depth * 1024L;
stack_resizer = alloca(max_stack_depth_bytes); stack_resizer = alloca(max_stack_depth_bytes);
/*
* Different architectures might have different directions while
* growing the stack. So, touch both ends.
*/
stack_resizer[0] = 0;
stack_resizer[max_stack_depth_bytes - 1] = 0; stack_resizer[max_stack_depth_bytes - 1] = 0;
/*
* Passing the address to external function also prevents the function
* from being optimized away, and the debug elog can also help with
* diagnosis if needed.
*/
elog(DEBUG5, "entry stack is at %p, increased to %p, the top and bottom values of "
"the stack is %d and %d", &stack_resizer[0],
&stack_resizer[max_stack_depth_bytes - 1],
stack_resizer[max_stack_depth_bytes - 1], stack_resizer[0]);
#endif #endif
} }

View File

@ -159,7 +159,7 @@ ALTER EXTENSION citus UPDATE TO '8.0-12';
SHOW citus.version; SHOW citus.version;
citus.version citus.version
--------------- ---------------
8.2devel 8.2.1
(1 row) (1 row)
-- ensure no objects were created outside pg_catalog -- ensure no objects were created outside pg_catalog