Skip to content

lift::client destructor infinite loop with libuv >= 1.48 #243

lift::client destructor infinite loop with libuv >= 1.48

lift::client destructor infinite loop with libuv >= 1.48 #243

Workflow file for this run

name: build
on: [pull_request]
jobs:
build-ubuntu-20-04:
name: ubuntu-20.04
runs-on: ubuntu-latest
container:
image: ubuntu:20.04
env:
TZ: America/New_York
DEBIAN_FRONTEND: noninteractive
services:
nginx:
image: nginx:stable
haproxy:
image: jbaldwindh/liblifthttp-automation-haproxy:0.1
steps:
- name: Checkout
uses: actions/checkout@v2
- name: apt
run: |
apt-get update
apt-get -y upgrade
apt install -y build-essential software-properties-common
add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get install -y \
cmake \
git \
ninja-build \
g++-9 \
clang-9 \
zlib1g-dev \
libcurl4-openssl-dev \
libuv1-dev \
curl
- name: check-haproxy
run: |
curl -v --user guest:guestpassword -x "http://haproxy:3128" "http://nginx/index.html"
- name: build-release-g++
run: |
mkdir build-release-g++
cd build-release-g++
cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=gcc-9 \
-DCMAKE_CXX_COMPILER=g++-9 \
..
ninja
- name: build-release-clang
run: |
mkdir build-release-clang
cd build-release-clang
cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=clang-9 \
-DCMAKE_CXX_COMPILER=clang++-9 \
..
ninja
- name: test-release-g++
run: |
cd build-release-g++
ctest -VV
- name: test-release-clang
run: |
cd build-release-clang
ctest -VV
build-ubuntu-22-04:
name: ubuntu-22.04
runs-on: ubuntu-latest
container:
image: ubuntu:22.04
env:
TZ: America/New_York
DEBIAN_FRONTEND: noninteractive
services:
nginx:
image: nginx:stable
haproxy:
image: jbaldwindh/liblifthttp-automation-haproxy:0.1
steps:
- name: Checkout
uses: actions/checkout@v2
- name: apt
run: |
apt-get update
apt-get -y upgrade
apt install -y build-essential software-properties-common
apt-get install -y \
cmake \
git \
ninja-build \
g++ \
clang \
zlib1g-dev \
libssl-dev \
libuv1-dev \
curl \
wget
- name: check-haproxy
run: |
curl --user guest:guestpassword -x "http://haproxy:3128" "http://nginx/index.html"
- name: build-libcurl
run: |
# We have to custom build libcurl because ubuntu 22.02 default comes with a broken
# libcurl verison 7.81.0 that has a mutli interface segfault.
# See:
# https://github.com/jbaldwin/liblifthttp/issues/142
wget https://github.com/curl/curl/releases/download/curl-7_86_0/curl-7.86.0.tar.gz
gunzip curl-7.86.0.tar.gz
tar -xf curl-7.86.0.tar
cd curl-7.86.0/
./configure --with-openssl
make -j $(nproc)
make install
- name: build-release-g++
run: |
mkdir build-release-g++
cd build-release-g++
cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
-DLIFT_USER_LINK_LIBRARIES="/usr/local/lib/libcurl.so.4;z;uv;pthread;dl;stdc++fs" \
..
ninja
- name: build-release-clang
run: |
mkdir build-release-clang
cd build-release-clang
cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLIFT_USER_LINK_LIBRARIES="/usr/local/lib/libcurl.so.4;z;uv;pthread;dl;stdc++fs" \
..
ninja
- name: test-release-g++
run: |
cd build-release-g++
ctest -VV
- name: test-release-clang
run: |
cd build-release-clang
ctest -VV
build-fedora-31:
name: fedora-31
runs-on: ubuntu-latest
container:
image: fedora:31
services:
nginx:
image: nginx:stable
haproxy:
image: jbaldwindh/liblifthttp-automation-haproxy:0.1
steps:
- name: Checkout
uses: actions/checkout@v2
- name: dnf
run: |
sudo dnf install -y \
cmake \
git \
ninja-build \
gcc-c++-9.3.1 \
clang-9.0.1 \
lcov \
zlib-devel \
libcurl-devel \
libuv-devel \
iputils \
curl
- name: ping
run: |
ping -c1 nginx
- name: check-haproxy
run: |
curl -v --user guest:guestpassword -x "http://haproxy:3128" "http://nginx/index.html"
- name: build-debug-g++
run: |
mkdir build-debug-g++
cd build-debug-g++
cmake \
-GNinja \
-DLIFT_CODE_COVERAGE=ON \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
..
ninja
- name: build-release-g++
run: |
mkdir build-release-g++
cd build-release-g++
cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
..
ninja
- name: build-release-clang
run: |
mkdir build-release-clang
cd build-release-clang
cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
..
ninja
- name: test-release-g++
run: |
cd build-release-g++
ctest -VV
- name: test-release-clang
run: |
cd build-release-clang
ctest -VV
- name: Build coverage info
run: |
cd build-debug-g++
ctest -VV
gcov -o ./test/CMakeFiles/liblifthttp_tests.dir/main.cpp.o ./test/liblifthttp_tests
lcov --include "*/inc/lift/*" --include "*/src/*" --exclude "test/*" -o liblifthttp_tests.info -c -d .
- name: Coveralls GitHub Action
uses: coverallsapp/github-action@v1.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: build-debug-g++/liblifthttp_tests.info