Adding a patch based on upstream commits, fixing pcre-jit, see
upstream bug 2912
This commit is contained in:
parent
14c11acbc3
commit
b15d5fbcd2
115
varnish-6.1.1_fix_issue_2912.patch
Normal file
115
varnish-6.1.1_fix_issue_2912.patch
Normal file
@ -0,0 +1,115 @@
|
||||
This patch is a fix for memory issues with
|
||||
pcre-jit, see upstream bug report at
|
||||
https://github.com/varnishcache/varnish-cache/issues/2817
|
||||
|
||||
The patch is based on upstream commits
|
||||
a3129a5340566d17192de8058a9c1dbb051a7039
|
||||
683b7cbe8cde1dde8f9e516a354b82430f1d318e
|
||||
1226e77f9501c56976635c714c99d84f417aa5d2
|
||||
|
||||
|
||||
diff -Naur a/bin/varnishd/cache/cache_panic.c b/bin/varnishd/cache/cache_panic.c
|
||||
--- a/bin/varnishd/cache/cache_panic.c 2018-10-24 11:29:10.000000000 +0200
|
||||
+++ b/bin/varnishd/cache/cache_panic.c 2019-03-07 16:27:16.592441674 +0100
|
||||
@@ -601,6 +601,33 @@
|
||||
VSB_indent(vsb, -2);
|
||||
}
|
||||
|
||||
+#ifdef HAVE_PTHREAD_GETATTR_NP
|
||||
+static void
|
||||
+pan_threadattr(struct vsb *vsb)
|
||||
+{
|
||||
+ pthread_attr_t attr[1];
|
||||
+ size_t sz;
|
||||
+ void *addr;
|
||||
+
|
||||
+ if (pthread_getattr_np(pthread_self(), attr) != 0)
|
||||
+ return;
|
||||
+
|
||||
+ VSB_cat(vsb, "pthread.attr = {\n");
|
||||
+ VSB_indent(vsb, 2);
|
||||
+
|
||||
+ if (pthread_attr_getguardsize(attr, &sz) == 0)
|
||||
+ VSB_printf(vsb, "guard = %zu,\n", sz);
|
||||
+ if (pthread_attr_getstack(attr, &addr, &sz) == 0) {
|
||||
+ VSB_printf(vsb, "stack_bottom = %p,\n", addr);
|
||||
+ VSB_printf(vsb, "stack_top = %p,\n", (char *)addr + sz);
|
||||
+ VSB_printf(vsb, "stack_size = %zu,\n", sz);
|
||||
+ }
|
||||
+ VSB_indent(vsb, -2);
|
||||
+ VSB_cat(vsb, "}\n");
|
||||
+ (void) pthread_attr_destroy(attr);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/*--------------------------------------------------------------------*/
|
||||
|
||||
static void __attribute__((__noreturn__))
|
||||
@@ -673,6 +700,10 @@
|
||||
if (q != NULL)
|
||||
VSB_printf(pan_vsb, "thread = (%s)\n", q);
|
||||
|
||||
+#ifdef HAVE_PTHREAD_GETATTR_NP
|
||||
+ pan_threadattr(pan_vsb);
|
||||
+#endif
|
||||
+
|
||||
if (!FEATURE(FEATURE_SHORT_PANIC)) {
|
||||
req = THR_GetRequest();
|
||||
VSB_cat(pan_vsb, "thr.");
|
||||
diff -Naur a/bin/varnishd/mgt/mgt_param.c b/bin/varnishd/mgt/mgt_param.c
|
||||
--- a/bin/varnishd/mgt/mgt_param.c 2018-10-24 11:29:10.000000000 +0200
|
||||
+++ b/bin/varnishd/mgt/mgt_param.c 2019-03-07 16:27:16.594441699 +0100
|
||||
@@ -494,6 +494,8 @@
|
||||
|
||||
MCF_TcpParams();
|
||||
|
||||
+ def = 56 * 1024;
|
||||
+
|
||||
if (sizeof(void *) < 8) { /*lint !e506 !e774 */
|
||||
/*
|
||||
* Adjust default parameters for 32 bit systems to conserve
|
||||
@@ -505,20 +507,16 @@
|
||||
MCF_ParamConf(MCF_DEFAULT, "http_req_size", "12k");
|
||||
MCF_ParamConf(MCF_DEFAULT, "gzip_buffer", "4k");
|
||||
MCF_ParamConf(MCF_MAXIMUM, "vsl_space", "1G");
|
||||
+ def = 48 * 1024;
|
||||
}
|
||||
|
||||
-#if !defined(HAVE_ACCEPT_FILTERS) || defined(__linux)
|
||||
- MCF_ParamConf(MCF_DEFAULT, "accept_filter", "off");
|
||||
-#endif
|
||||
-
|
||||
low = sysconf(_SC_THREAD_STACK_MIN);
|
||||
MCF_ParamConf(MCF_MINIMUM, "thread_pool_stack", "%jdb", (intmax_t)low);
|
||||
|
||||
#if defined(__SANITIZER) || __has_feature(address_sanitizer)
|
||||
def = 92 * 1024;
|
||||
-#else
|
||||
- def = 48 * 1024;
|
||||
#endif
|
||||
+
|
||||
if (def < low)
|
||||
def = low;
|
||||
MCF_ParamConf(MCF_DEFAULT, "thread_pool_stack", "%jdb", (intmax_t)def);
|
||||
@@ -529,6 +527,10 @@
|
||||
|
||||
MCF_ParamConf(MCF_MAXIMUM, "thread_pools", "%d", MAX_THREAD_POOLS);
|
||||
|
||||
+#if !defined(HAVE_ACCEPT_FILTERS) || defined(__linux)
|
||||
+ MCF_ParamConf(MCF_DEFAULT, "accept_filter", "off");
|
||||
+#endif
|
||||
+
|
||||
VCLS_AddFunc(mgt_cls, MCF_AUTH, cli_params);
|
||||
|
||||
vsb = VSB_new_auto();
|
||||
diff -Naur a/configure.ac b/configure.ac
|
||||
--- a/configure.ac 2018-10-26 13:22:45.000000000 +0200
|
||||
+++ b/configure.ac 2019-03-07 16:27:16.592441674 +0100
|
||||
@@ -239,6 +239,7 @@
|
||||
AC_CHECK_FUNCS([pthread_set_name_np])
|
||||
AC_CHECK_FUNCS([pthread_setname_np])
|
||||
AC_CHECK_FUNCS([pthread_mutex_isowned_np])
|
||||
+AC_CHECK_FUNCS([pthread_getattr_np])
|
||||
LIBS="${save_LIBS}"
|
||||
|
||||
# Support for visibility attribute
|
12
varnish.spec
12
varnish.spec
@ -21,7 +21,7 @@
|
||||
Summary: High-performance HTTP accelerator
|
||||
Name: varnish
|
||||
Version: 6.1.1
|
||||
Release: 4%{?dist}
|
||||
Release: 5%{?dist}
|
||||
License: BSD
|
||||
URL: https://www.varnish-cache.org/
|
||||
Source0: http://varnish-cache.org/_downloads/%{name}-%{version}%{?vd_rc}.tgz
|
||||
@ -39,6 +39,9 @@ Patch13: varnish-6.1.0_fix_testu00008.patch
|
||||
# Another formatting error fixed upstream
|
||||
Patch14: varnish-6.1.1_fix_upstrbug_2879.patch
|
||||
|
||||
# pcre-jit fixed upstream, issue #2912
|
||||
Patch15: varnish-6.1.1_fix_issue_2912.patch
|
||||
|
||||
%if 0%{?fedora} > 29
|
||||
Provides: varnish%{_isa} = %{version}-%{release}
|
||||
Provides: varnishd(abi)%{_isa} = %{abi}
|
||||
@ -160,6 +163,7 @@ sed -i '8 i\RPM_BUILD_ROOT=%{buildroot}' find-provides
|
||||
#patch12 -p1
|
||||
%patch13 -p0
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
|
||||
%build
|
||||
%if 0%{?rhel} == 6
|
||||
@ -188,7 +192,7 @@ export PYTHON=/usr/bin/python3
|
||||
%endif
|
||||
--localstatedir=/var/lib \
|
||||
--docdir=%{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} \
|
||||
--disable-pcre-jit \
|
||||
# --disable-pcre-jit \
|
||||
|
||||
|
||||
# We have to remove rpath - not allowed in Fedora
|
||||
@ -400,6 +404,10 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Mar 07 2019 Ingvar Hagelund <ingvar@redpill-linpro.com> - 6.1.1-5
|
||||
- Adding a patch based on upstream commits, fixing pcre-jit, see
|
||||
upstream bug 2912
|
||||
|
||||
* Thu Feb 14 2019 Ingvar Hagelund <ingvar@redpill-linpro.com> - 6.1.1-4
|
||||
- Adding a patch from upstream fixing a simple formatting bug on gcc-9
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user