1name: Memory tests 2on: 3 schedule: 4 # run daily 20:00 on master branch 5 - cron: '0 20 * * *' 6 push: 7 branches: 8 - prerelease_test 9 - memory_test 10jobs: 11 memory_leak: 12 name: Memory leak on insert PG${{ matrix.pg }} 13 runs-on: ubuntu-20.04 14 strategy: 15 matrix: 16 pg: [12, 13, 14] 17 fail-fast: false 18 19 steps: 20 - name: Install Dependencies 21 run: | 22 sudo apt-get update 23 sudo apt-get install gnupg systemd-coredump gdb postgresql-common libkrb5-dev python3-psutil 24 yes | sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh 25 sudo apt-get update 26 sudo apt-get install postgresql-${{ matrix.pg }} postgresql-server-dev-${{ matrix.pg }} 27 28 - name: Checkout TimescaleDB 29 uses: actions/checkout@v2 30 31 - name: Build TimescaleDB 32 run: | 33 ./bootstrap -DCMAKE_BUILD_TYPE=Release 34 make -C build 35 sudo make -C build install 36 37 - name: Setup database 38 run: | 39 sudo tee -a /etc/postgresql/${{ matrix.pg }}/main/postgresql.conf <<-CONF 40 shared_preload_libraries = 'timescaledb' 41 max_worker_processes = 0 42 log_destination = syslog 43 max_wal_size = 8GB 44 max_wal_senders = 0 45 wal_level = minimal 46 checkpoint_timeout = 20min 47 log_checkpoints = on 48 bgwriter_lru_maxpages = 0 49 track_counts = off 50 fsync = off 51 port = 5432 52 CONF 53 sudo grep port /etc/postgresql/${{ matrix.pg }}/main/postgresql.conf 54 sudo systemctl start postgresql@${{ matrix.pg }}-main.service 55 sudo -u postgres psql -X -c "CREATE USER runner SUPERUSER LOGIN;" 56 57 - name: Run memory test 58 run: | 59 sudo -u postgres python ./scripts/test_memory_spikes.py & sleep 5 && psql -d postgres -v ECHO=all -X -f scripts/out_of_order_random_direct.sql 60 61 - name: Postgres log 62 if: always() 63 run: | 64 sudo journalctl -u postgresql@${{ matrix.pg }}-main.service 65 66