Distance Learning Package: Bid Writing

2020-03-24 Thread NFP Workshops


NFP WORKSHOPS
18 Blake Street, York YO1 8QG
Affordable Training Courses for Charities, Schools & Public Sector 
Organisations 




This email has been sent to haproxy@formilux.org
CLICK TO UNSUBSCRIBE FROM LIST
Alternatively send a blank e-mail to unsubscr...@nfpmail1902.co.uk quoting 
haproxy@formilux.org in the subject line.
Unsubscribe requests will take effect within seven days. 



Bid Writing: Distance Learning Package

 Learn at your home or office. No need to travel anywhere. The package includes 
all the topics from our popular Bid Writing: The Basics and Bid Writing: 
Advanced live workshops plus sample funding bids. Once you have covered all the 
materials you can submit up to five questions by email.

TOPICS COVERED

Do you know the most common reasons for rejection? Are you gathering the right 
evidence? Are you making the right arguments? Are you using the right 
terminology? Are your numbers right? Are you learning from rejections? Are you 
assembling the right documents? Do you know how to create a clear and concise 
standard funding bid?

Are you communicating with people or just excluding them? Do you know your own 
organisation well enough? Are you thinking through your projects carefully 
enough? Do you know enough about your competitors? Are you answering the 
questions funders will ask themselves about your application? Are you 
submitting applications correctly?

Are you applying to the right trusts? Are you applying to enough trusts? Are 
you asking for the right amount of money? Are you applying in the right ways? 
Are your projects the most fundable projects? Are you carrying out trust 
fundraising in a professional way? Are you delegating enough work?

Are you highly productive or just very busy? Are you looking for trusts in all 
the right places? How do you compare with your competitors for funding? Is the 
rest of your fundraising hampering your bids to trusts? Do you understand what 
trusts are ideally looking for?

TRAINEES

Staff members, volunteers, trustees or board members of charities, schools or 
public sector organisations who intend to submit grant funding applications to 
charitable grant making trusts and foundations. People who provide advice to 
these organisations may also order.

ORDER YOUR PACKAGE NOW

The cost of the Bid Writing: Distance Learning Package is £190 per trainee. 

To order please email ord...@nfpmail1902.co.uk with 
1) The name of the trainee.
2) The email address to send the materials to.
3) The name of your organisation.
4) The postal address of your organisation.
5) A purchase order number if required.

We will send you an invoice within 24 hours containing BACS electronic payment 
details. Once we receive payment the materials will be emailed to the specifed 
email address within 24 hours. Please check your spam folder to ensure you 
receive everything.

 TERMS

Training materials are for use only by the trainee named on the invoice. 
Training materials may not be copied, circulated or published.
 
   QUESTIONS

If you have a question please e-mail questi...@nfpmail1902.co.uk You will 
usually receive a response within 24 hours. We are unable to accept questions 
by phone. 


FEEDBACK FROM PAST ATTENDEES AT OUR LIVE WORKSHOPS
I must say I was really impressed with the course and the content. My knowledge 
and confidence has increased hugely. I got a lot from your course and a lot of 
pointers! 
I can say after years of fundraising I learnt so much from your bid writing 
course. It was a very informative day and for someone who has not written bids 
before I am definitely more confident to get involved with them. 
I found the workshops very helpful. It is a whole new area for me but the 
information you imparted has given me a lot of confidence with the direction I 
need to take and for that I am very grateful.  
I found the day very informative and it gave me confidence to take on this 
aspect of work that I had been apprehensive of.  I enjoyed the session and 
found it valuable. 
So much relevant, practical information all passed on in a way which I was able 
to follow. All greatly enhanced by your sense of humour. 
It was a useful course and your examples real or otherwise helped to make it 
practical. Many thanks. The morning just flew by - always a good sign! I 
enjoyed the course and learnt a lot. I will begin putting this into practice.  


 



Re: commit 493d9dc makes a SVN-checkout stall..

2020-03-24 Thread Olivier Houchard
Hi Pieter,

On Wed, Mar 25, 2020 at 01:14:46AM +0100, PiBa-NL wrote:
> Hi List, Willy,
> 
> Today i thought lets give v2.2-dev5 a try for my production environment ;).
> Soon it turned out to cause SVN-Checkout to stall/disconnect for a
> repository we run locally in a Collab-SVN server.
> 
> I tracked it down to this commit: 493d9dc (MEDIUM: mux-h1: do not blindly
> wake up the tasklet at end of request anymore) causing the problem for the
> first time. Is there something tricky there that can be suspected to cause
> the issue.? Perhaps a patch i can try?
> 
> While 'dissecting' the issue i deleted the whole directory each time and
> performed a new svn-checkout several times. It doesn't always stall at the
> exact same point but usually after checking out around +- 20 files something
> between 0.5 and 2 MB. , the commit before that one allows me to checkout
> 500+MB through haproxy without issue.. A wireshark seems to show that
> haproxy is sending several of RST,ACK packets for a 4 different connections
> to the svn-server at the same milisecond after it was quiet for 2 seconds..
> The whole issue happens in a timeframe of start of checkout till when it
> stalls within 15 seconds.
> 
> The 'nokqueue' i usually try on my FreeBSD machine doesn't change anything.
> 
> Hope you have an idea where to look. Providing captures/logs is a bit
> difficult without some careful scrubbing..
> 
> Regards,
> PiBa-NL (Pieter)
> 

No answer yet, but I just tried to do a checkout of the FreeBSD svn tree
via haproxy, and it indeed doesn't work, it's a bit late right now, but
I'll have a look tomorrow :)

Regards,

Olivier



commit 493d9dc makes a SVN-checkout stall..

2020-03-24 Thread PiBa-NL

Hi List, Willy,

Today i thought lets give v2.2-dev5 a try for my production environment ;).
Soon it turned out to cause SVN-Checkout to stall/disconnect for a 
repository we run locally in a Collab-SVN server.


I tracked it down to this commit: 493d9dc (MEDIUM: mux-h1: do not 
blindly wake up the tasklet at end of request anymore) causing the 
problem for the first time. Is there something tricky there that can be 
suspected to cause the issue.? Perhaps a patch i can try?


While 'dissecting' the issue i deleted the whole directory each time and 
performed a new svn-checkout several times. It doesn't always stall at 
the exact same point but usually after checking out around +- 20 files 
something between 0.5 and 2 MB. , the commit before that one allows me 
to checkout 500+MB through haproxy without issue.. A wireshark seems to 
show that haproxy is sending several of RST,ACK packets for a 4 
different connections to the svn-server at the same milisecond after it 
was quiet for 2 seconds.. The whole issue happens in a timeframe of 
start of checkout till when it stalls within 15 seconds.


The 'nokqueue' i usually try on my FreeBSD machine doesn't change anything.

Hope you have an idea where to look. Providing captures/logs is a bit 
difficult without some careful scrubbing..


Regards,
PiBa-NL (Pieter)

### Complete config (that still reproduces the issue.. things cant get 
much simpler than this..):

frontend InternalSites.8.6-merged
    bind            192.168.8.67:80
    mode            http
    use_backend APP01-JIRA-SVN_ipvANY

backend APP01-JIRA-SVN_ipvANY
    mode            http
    server            svn 192.168.104.20:8080

### uname -a
FreeBSD freebsd11 11.1-RELEASE FreeBSD 11.1-RELEASE #0 r321309: Fri Jul 
21 02:08:28 UTC 2017 
r...@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64


### haproxy -vv
HA-Proxy version 2.2-dev5-3e128fe 2020/03/24 - https://haproxy.org/
Status: development branch - not safe for use in production.
Known bugs: https://github.com/haproxy/haproxy/issues?q=is:issue+is:open
Build options :
  TARGET  = freebsd
  CPU = generic
  CC  = cc
  CFLAGS  = -pipe -g -fstack-protector -fno-strict-aliasing 
-fno-strict-aliasing -Wdeclaration-after-statement -fwrapv 
-fno-strict-overflow -Wno-null-dereference -Wno-unused-label 
-Wno-unused-parameter -Wno-sign-compare -Wno-ignored-qualifiers 
-Wno-unused-command-line-argument -Wno-missing-field-initializers 
-Wno-address-of-packed-member -DFREEBSD_PORTS -DFREEBSD_PORTS
  OPTIONS = USE_PCRE=1 USE_PCRE_JIT=1 USE_STATIC_PCRE=1 
USE_GETADDRINFO=1 USE_OPENSSL=1 USE_LUA=1 USE_ACCEPT4=1 USE_ZLIB=1


Feature list : -EPOLL +KQUEUE -NETFILTER +PCRE +PCRE_JIT -PCRE2 
-PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD -PTHREAD_PSHARED -BACKTRACE 
+STATIC_PCRE -STATIC_PCRE2 +TPROXY -LINUX_TPROXY -LINUX_SPLICE +LIBCRYPT 
-CRYPT_H +GETADDRINFO +OPENSSL +LUA -FUTEX +ACCEPT4 +ZLIB -SLZ 
+CPU_AFFINITY -TFO -NS -DL -RT -DEVICEATLAS -51DEGREES -WURFL -SYSTEMD 
-OBSOLETE_LINKER -PRCTL -THREAD_DUMP -EVPORTS


Default settings :
  bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with multi-threading support (MAX_THREADS=64, default=16).
Built with OpenSSL version : OpenSSL 1.0.2k-freebsd  26 Jan 2017
Running on OpenSSL version : OpenSSL 1.0.2k-freebsd  26 Jan 2017
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : SSLv3 TLSv1.0 TLSv1.1 TLSv1.2
Built with Lua version : Lua 5.3.4
Built with transparent proxy support using: IP_BINDANY IPV6_BINDANY
Built with PCRE version : 8.40 2017-01-11
Running on PCRE version : 8.40 2017-01-11
PCRE library supports JIT : yes
Encrypted password support via crypt(3): yes
Built with zlib version : 1.2.11
Running on zlib version : 1.2.11
Compression algorithms supported : identity("identity"), 
deflate("deflate"), raw-deflate("deflate"), gzip("gzip")


Available polling systems :
 kqueue : pref=300,  test result OK
   poll : pref=200,  test result OK
 select : pref=150,  test result OK
Total: 3 (3 usable), will use kqueue.

Available multiplexer protocols :
(protocols marked as  cannot be specified using 'proto' keyword)
  h2 : mode=HTTP   side=FE|BE mux=H2
    fcgi : mode=HTTP   side=BE    mux=FCGI
    : mode=HTTP   side=FE|BE mux=H1
    : mode=TCP    side=FE|BE mux=PASS

Available services : none

Available filters :
    [SPOE] spoe
    [CACHE] cache
    [FCGI] fcgi-app
    [TRACE] trace
    [COMP] compression




stable-bot: Bugfixes waiting for a release 2.1 (21), 2.0 (16)

2020-03-24 Thread stable-bot
Hi,

This is a friendly bot that watches fixes pending for the next haproxy-stable 
release!  One such e-mail is sent periodically once patches are waiting in the 
last maintenance branch, and an ideal release date is computed based on the 
severity of these fixes and their merge date.  Responses to this mail must be 
sent to the mailing list.


Last release 2.1.3 was issued on 2020-02-12.  There are currently 21 patches in 
the queue cut down this way:
- 2 MAJOR, first one merged on 2020-02-21
- 6 MEDIUM, first one merged on 2020-02-21
- 13 MINOR, first one merged on 2020-02-21

Thus the computed ideal release date for 2.1.4 would be 2020-03-06, which was 
two weeks ago.

Last release 2.0.13 was issued on 2020-02-13.  There are currently 16 patches 
in the queue cut down this way:
- 1 MAJOR, first one merged on 2020-02-21
- 6 MEDIUM, first one merged on 2020-02-21
- 9 MINOR, first one merged on 2020-02-21

Thus the computed ideal release date for 2.0.14 would be 2020-03-06, which was 
two weeks ago.

The current list of patches in the queue is:
 - 2.0, 2.1  - MAJOR   : http-ana: Always abort the request 
when a tarpit is triggered
 - 2.1   - MAJOR   : list: fix invalid element address 
calculation
 - 2.0, 2.1  - MEDIUM  : muxes: Use the right argument when 
calling the destroy method.
 - 2.0, 2.1  - MEDIUM  : ssl: fix several bad pointer aliases 
in a few sample fetch functions
 - 2.0, 2.1  - MEDIUM  : shctx: make sure to keep all blocks 
aligned
 - 2.0, 2.1  - MEDIUM  : ebtree: don't set attribute packed 
without unaligned access support
 - 2.0, 2.1  - MEDIUM  : random: implement a thread-safe and 
process-safe PRNG
 - 2.0, 2.1  - MEDIUM  : random: initialize the random pool a 
bit better
 - 2.0, 2.1  - MINOR   : dns: ignore trailing dot
 - 2.0, 2.1  - MINOR   : namespace: avoid closing fd when 
socket failed in my_socketat
 - 2.0, 2.1  - MINOR   : sample: fix the json converter's 
endian-sensitivity
 - 2.1   - MINOR   : h2: reject again empty :path 
pseudo-headers
 - 2.0, 2.1  - MINOR   : connection: make sure to correctly tag 
local PROXY connections
 - 2.1   - MINOR   : http-htx: Don't return error if 
authority is updated without changes
 - 2.0, 2.1  - MINOR   : http-ana: Matching on monitor-uri 
should be case-sensitive
 - 2.0, 2.1  - MINOR   : checks/threads: use ha_random() and 
not rand()
 - 2.0, 2.1  - MINOR   : filters: Count HTTP headers as 
filtered data but don't forward them
 - 2.1   - MINOR   : mux-fcgi: Forbid special characters 
when matching PATH_INFO param
 - 2.1   - MINOR   : http-htx: Do case-insensive 
comparisons on Host header name
 - 2.0, 2.1  - MINOR   : sample: Make sure to return stable IDs 
in the unique-id fetch
 - 2.0, 2.1  - MINOR   : http: http-request replace-path 
duplicates the query string

-- 
The haproxy stable-bot is freely provided by HAProxy Technologies to help 
improve the quality of each HAProxy release.  If you have any issue with these 
emails or if you want to suggest some improvements, please post them on the 
list so that the solutions suiting the most users can be found.



Re: running h2spec in CI ?

2020-03-24 Thread Willy Tarreau
On Wed, Mar 25, 2020 at 12:49:29AM +0500,  ??? wrote:
> Hello,
> 
> here's patch.

Applied now, thanks Ilya!
Willy



Re: Segfault with HAProxy 2.0 with peers

2020-03-24 Thread William Lallemand
On Tue, Mar 24, 2020 at 08:32:12PM +0100, Frederic Lecaille wrote:
> William,
> 
> I think you are true, but I did not manage to reproduce this issue. But 
> I think you are correct about the reference to the peers section which 
> may be found in stktable structs.
> 
> Here is a patch which may fix this issue.
> 
> Olivier, please could you give it a try?
> 
> 
> Regards.
> 

I confirm that the patch does not produce any use after
free with this configuration.

Merged in master, thanks for the quick fix!

-- 
William Lallemand



Re: running h2spec in CI ?

2020-03-24 Thread Илья Шипицин
Hello,

here's patch.

вт, 24 мар. 2020 г. в 23:51, Willy Tarreau :

> On Tue, Mar 24, 2020 at 11:49:11PM +0500,  ??? wrote:
> > > In fact it's very difficult to make such a file load and work
> properly, it
> > > depends on the headers appended etc.
> > >
> >
> > initially, I expected that after WARNING (and truncation), file will be
> > loaded :)
> > but I was wrong.
>
> I could be wrong but my suspicion is that it was indeed truncated, but
> the truncation was still too large and made it fail later. But that's
> pure speculation.
>
> > ok, so shall we add it as weekly Github Action job ? I do not think we
> have
> > to run it on every push
>
> That's something we can do, probably, yes.
>
> Willy
>
From 96e726d4e0c3c1bb6281b9fe1b85049c5d878cb6 Mon Sep 17 00:00:00 2001
From: Ilya Shipitsin 
Date: Wed, 25 Mar 2020 00:46:14 +0500
Subject: [PATCH] CI: github actions: add weekly h2spec test

ML link: https://www.mail-archive.com/haproxy@formilux.org/msg36753.html

this commit adds scheduled run of h2spec tool to test http2 and HPACK
compliance.

h2spec might be found at: https://github.com/summerwind/h2spec
---
 .github/errorfile| 209 +++
 .github/h2spec.config|  30 +
 .github/workflows/h2spec.yml |  27 +
 3 files changed, 266 insertions(+)
 create mode 100644 .github/errorfile
 create mode 100644 .github/h2spec.config
 create mode 100644 .github/workflows/h2spec.yml

diff --git a/.github/errorfile b/.github/errorfile
new file mode 100644
index 0..f15d8e0d0
--- /dev/null
+++ b/.github/errorfile
@@ -0,0 +1,209 @@
+HTTP/1.0 200 OK
+Cache-Control: no-cache
+Connection: close
+Content-Type: text/html
+
+
+
+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

Re: Segfault with HAProxy 2.0 with peers

2020-03-24 Thread Frederic Lecaille

On 3/24/20 7:01 PM, William Lallemand wrote:

On Tue, Mar 24, 2020 at 05:41:48PM +0100, Olivier D wrote:

Hello,

With latest haproxy 2.0, you can generate a simple segfault with only
configuration test (haproxy -f test.cfg -c)


Config content :
--
defaults
 mode http

backend test
   stick-table type ip size 10k expire 1h store http_req_rate(1h) peers
mypeers

peers mypeers
 peer toto 127.0.0.1:1024
-
Running :
[WARNING] 083/173758 (2599) : Removing incomplete section 'peers mypeers'
(no peer named 'myhostname.localhost').
Segmentation fault

peers_register_table (peers=0xc8a110, table=table@entry=0xc8c6f0) at
src/peers.c:3028
(gdb) bt
#0  peers_register_table (peers=0xc8a110, table=table@entry=0xc8c6f0) at
src/peers.c:3028
#1  0x00522bec in stktable_init (t=0xc8c6f0) at
src/stick_table.c:644
#2  0x0050fa67 in check_config_validity () at src/cfgparse.c:4048
#3  0x00505311 in init (argc=, argc@entry=4,
argv=, argv@entry=0x7fffe848) at src/haproxy.c:1760
#4  0x0046475f in main (argc=4, argv=0x7fffe848) at
src/haproxy.c:2727





I know my peer entry is not correct (my hostname is not "toto") but we
should not end with a segfault ^^



I agree. It looks like this is the consequence of the peer being free'd
if you don't reference the local peer in the section. It should still
start in your case by specifying -L toto on the command line.

I think the peer pointer is still referenced in the stick-table which
tries to use it during its initialization. So if we want to free the
peer we need to remove its reference too.



William,

I think you are true, but I did not manage to reproduce this issue. But 
I think you are correct about the reference to the peers section which 
may be found in stktable structs.


Here is a patch which may fix this issue.

Olivier, please could you give it a try?


Regards.


>From 9b4ea422ceb3a06cb2692d56475dfa18ec02bbf1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= 
Date: Tue, 24 Mar 2020 20:08:30 +0100
Subject: [PATCH] BUG/MINOR: peers: Use after free of "peers" section.

When a "peers" section has not any local peer, it is removed of the list
of "peers" sections by check_config_validity(). But a stick-table which
refers to a "peers" section stores a pointer to this peers section.
These pointer must be reset to NULL value for each stick-table refering to
such a "peers" section to prevent stktable_init() to start the peers frontend
attached to the peers section dereferencing the invalid pointer.

Furthemore this patch stops the peers frontend as this is done for other
configurations invalidated by check_config_validity().

Thank you to Olivier D for having reported this issue with such a
simple configuration file which made haproxy crash when started with
-c option for configuration file validation.

  defaults
mode http

  peers mypeers
peer toto 127.0.0.1:1024

  backend test
stick-table type ip size 10k expire 1h store http_req_rate(1h) peers mypeers

Must be backported to 2.1 and 2.0.
---
 src/cfgparse.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/cfgparse.c b/src/cfgparse.c
index eaa853f6e..2c8008312 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -3925,6 +3925,7 @@ out_uri_auth_compat:
 		 */
 		last = _peers;
 		while (*last) {
+			struct stktable *t;
 			curpeers = *last;
 
 			if (curpeers->state == PR_STSTOPPED) {
@@ -3936,6 +3937,9 @@ out_uri_auth_compat:
 			else if (!curpeers->peers_fe || !curpeers->peers_fe->id) {
 ha_warning("Removing incomplete section 'peers %s' (no peer named '%s').\n",
 	   curpeers->id, localpeer);
+if (curpeers->peers_fe)
+	stop_proxy(curpeers->peers_fe);
+curpeers->peers_fe = NULL;
 			}
 			else if (atleast2(curpeers->peers_fe->bind_proc)) {
 /* either it's totally stopped or too much used */
@@ -3998,6 +4002,11 @@ out_uri_auth_compat:
 			 */
 			free(curpeers->id);
 			curpeers = curpeers->next;
+			/* Reset any refereance to this peers section in the list of stick-tables */
+			for (t = stktables_list; t; t = t->next) {
+if (t->peers.p && t->peers.p == *last)
+	t->peers.p = NULL;
+			}
 			free(*last);
 			*last = curpeers;
 		}
-- 
2.20.1



Re: running h2spec in CI ?

2020-03-24 Thread Willy Tarreau
On Tue, Mar 24, 2020 at 11:49:11PM +0500,  ??? wrote:
> > In fact it's very difficult to make such a file load and work properly, it
> > depends on the headers appended etc.
> >
> 
> initially, I expected that after WARNING (and truncation), file will be
> loaded :)
> but I was wrong.

I could be wrong but my suspicion is that it was indeed truncated, but
the truncation was still too large and made it fail later. But that's
pure speculation.

> ok, so shall we add it as weekly Github Action job ? I do not think we have
> to run it on every push

That's something we can do, probably, yes.

Willy



Re: running h2spec in CI ?

2020-03-24 Thread Илья Шипицин
вт, 24 мар. 2020 г. в 23:38, Willy Tarreau :

> On Tue, Mar 24, 2020 at 11:01:13PM +0500,  ??? wrote:
> > I created 16kb response file, and found something that looks like an
> error
> >
> > Run ./haproxy -f .github/h2spec.config -D
> > [WARNING] 083/174625 (3194) : custom error message file
> '.github/errorfile'
> > larger than 16384 bytes. Truncating.
> > [ALERT] 083/174625 (3194) : parsing [.github/h2spec.config:29] :
> errorfile
> > : unable to convert custom error message file '.github/errorfile' in HTX.
> > [ALERT] 083/174625 (3194) : Error(s) found in configuration file :
> > .github/h2spec.config
> > [ALERT] 083/174625 (3194) : Fatal errors found in configuration.
>
> It's normal if the file is too large.
>
> > since, I see "WARNING", i.e. "no worry, I'll truncate file". but file is
> > not loaded :-)
>
> In fact it's very difficult to make such a file load and work properly, it
> depends on the headers appended etc.
>

initially, I expected that after WARNING (and truncation), file will be
loaded :)
but I was wrong.


>
> > I reduced file size a bit, 146/146 tests
>
> Excellent!
>

ok, so shall we add it as weekly Github Action job ? I do not think we have
to run it on every push


>
> Willy
>


Re: running h2spec in CI ?

2020-03-24 Thread Willy Tarreau
On Tue, Mar 24, 2020 at 11:01:13PM +0500,  ??? wrote:
> I created 16kb response file, and found something that looks like an error
> 
> Run ./haproxy -f .github/h2spec.config -D
> [WARNING] 083/174625 (3194) : custom error message file '.github/errorfile'
> larger than 16384 bytes. Truncating.
> [ALERT] 083/174625 (3194) : parsing [.github/h2spec.config:29] : errorfile
> : unable to convert custom error message file '.github/errorfile' in HTX.
> [ALERT] 083/174625 (3194) : Error(s) found in configuration file :
> .github/h2spec.config
> [ALERT] 083/174625 (3194) : Fatal errors found in configuration.

It's normal if the file is too large.

> since, I see "WARNING", i.e. "no worry, I'll truncate file". but file is
> not loaded :-)

In fact it's very difficult to make such a file load and work properly, it
depends on the headers appended etc.

> I reduced file size a bit, 146/146 tests

Excellent!

Willy



Re: running h2spec in CI ?

2020-03-24 Thread Илья Шипицин
сб, 21 мар. 2020 г. в 15:23, Willy Tarreau :

> On Sat, Mar 21, 2020 at 03:13:07PM +0500,  ??? wrote:
> > > Really you *need* to have some response data, not just an empty 200.
> > > Probably that you can do it with something like this to build 10kB of
> > > garbage:
> > >
> >
> > am I correct, dealing with large blocks is something HPACK related ?
>
> No it's unrelated. HPACK only deals with headers encoding. Here it's more
> about making sure there are still bytes on the wire to be sent when a
> window
> is reopening after a WINDOW_UPDATE etc.
>


I created 16kb response file, and found something that looks like an error

Run ./haproxy -f .github/h2spec.config -D
[WARNING] 083/174625 (3194) : custom error message file '.github/errorfile'
larger than 16384 bytes. Truncating.
[ALERT] 083/174625 (3194) : parsing [.github/h2spec.config:29] : errorfile
: unable to convert custom error message file '.github/errorfile' in HTX.
[ALERT] 083/174625 (3194) : Error(s) found in configuration file :
.github/h2spec.config
[ALERT] 083/174625 (3194) : Fatal errors found in configuration.


since, I see "WARNING", i.e. "no worry, I'll truncate file". but file is
not loaded :-)

I reduced file size a bit, 146/146 tests

https://github.com/chipitsine/haproxy/runs/531318490


no valgrind yet, but we can add it later.




>
> > so, for example, if we decide, we can split into several steps, like
> http2,
> > HPACK, ...
>
> Quite frankly given that a generic config works fine there's no point in
> having distinct setups for all the tests, it would be a burden to maintain
> and would cause extra confusion.
>
> > h2spec can report in junit format. but no CI can import it (well,
> gitlab-ci
> > can, but I did not try).
> > I'd actually prefer to see history test by test (and for reg-tests as
> well)
>
> By default in verbose more you have all the output and a summary of failed
> tests at the end, which is very easy to read.
>
> > the most we can do (and it is relatively cheap) is to define several
> steps
> > in github actions.
> > like, I already done for "build" and "download h2spec", we can define
> > several steps for h2spec itself.
>
> I think it's asking for more difficulties and pain than really needed.
> The normal case is that h2spec should work fine so we don't need to have
> details about what fails, if it fails we can check the output and see what
> test failed. You'll never know why anyway, it will always require manual
> attempts to reproduce.
>
> Just my two cents,
> Willy
>


Re: Segfault with HAProxy 2.0 with peers

2020-03-24 Thread William Lallemand
On Tue, Mar 24, 2020 at 05:41:48PM +0100, Olivier D wrote:
> Hello,
> 
> With latest haproxy 2.0, you can generate a simple segfault with only
> configuration test (haproxy -f test.cfg -c)
> 
> 
> Config content :
> --
> defaults
> mode http
> 
> backend test
>   stick-table type ip size 10k expire 1h store http_req_rate(1h) peers
> mypeers
> 
> peers mypeers
> peer toto 127.0.0.1:1024
> -
> Running :
> [WARNING] 083/173758 (2599) : Removing incomplete section 'peers mypeers'
> (no peer named 'myhostname.localhost').
> Segmentation fault
> 
> peers_register_table (peers=0xc8a110, table=table@entry=0xc8c6f0) at
> src/peers.c:3028
> (gdb) bt
> #0  peers_register_table (peers=0xc8a110, table=table@entry=0xc8c6f0) at
> src/peers.c:3028
> #1  0x00522bec in stktable_init (t=0xc8c6f0) at
> src/stick_table.c:644
> #2  0x0050fa67 in check_config_validity () at src/cfgparse.c:4048
> #3  0x00505311 in init (argc=, argc@entry=4,
> argv=, argv@entry=0x7fffe848) at src/haproxy.c:1760
> #4  0x0046475f in main (argc=4, argv=0x7fffe848) at
> src/haproxy.c:2727
>


> I know my peer entry is not correct (my hostname is not "toto") but we
> should not end with a segfault ^^
>

I agree. It looks like this is the consequence of the peer being free'd
if you don't reference the local peer in the section. It should still
start in your case by specifying -L toto on the command line.

I think the peer pointer is still referenced in the stick-table which
tries to use it during its initialization. So if we want to free the
peer we need to remove its reference too.

-- 
William Lallemand



Segfault with HAProxy 2.0 with peers

2020-03-24 Thread Olivier D
Hello,

With latest haproxy 2.0, you can generate a simple segfault with only
configuration test (haproxy -f test.cfg -c)


Config content :
--
defaults
mode http

backend test
  stick-table type ip size 10k expire 1h store http_req_rate(1h) peers
mypeers

peers mypeers
peer toto 127.0.0.1:1024
-
Running :
[WARNING] 083/173758 (2599) : Removing incomplete section 'peers mypeers'
(no peer named 'myhostname.localhost').
Segmentation fault

peers_register_table (peers=0xc8a110, table=table@entry=0xc8c6f0) at
src/peers.c:3028
(gdb) bt
#0  peers_register_table (peers=0xc8a110, table=table@entry=0xc8c6f0) at
src/peers.c:3028
#1  0x00522bec in stktable_init (t=0xc8c6f0) at
src/stick_table.c:644
#2  0x0050fa67 in check_config_validity () at src/cfgparse.c:4048
#3  0x00505311 in init (argc=, argc@entry=4,
argv=, argv@entry=0x7fffe848) at src/haproxy.c:1760
#4  0x0046475f in main (argc=4, argv=0x7fffe848) at
src/haproxy.c:2727

I know my peer entry is not correct (my hostname is not "toto") but we
should not end with a segfault ^^

HAPRoxy -vv :
HA-Proxy version 2.0.13 2020/02/13 - https://haproxy.org/
Build options :
  TARGET  = linux-glibc
  CPU = generic
  CC  = gcc
  CFLAGS  = -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement
-fwrapv -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter
-Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered
-Wno-missing-field-initializers -Wno-implicit-fallthrough
-Wno-stringop-overflow -Wtype-limits -Wshift-negative-value
-Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference
  OPTIONS = USE_THREAD=0 USE_STATIC_PCRE=1 USE_OPENSSL=1 USE_LUA=1
USE_ZLIB=1 USE_NS=

Feature list : +EPOLL -KQUEUE -MY_EPOLL -MY_SPLICE +NETFILTER -PCRE
-PCRE_JIT -PCRE2 -PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD -PTHREAD_PSHARED
-REGPARM +STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE
+LIBCRYPT +CRYPT_H -VSYSCALL +GETADDRINFO +OPENSSL +LUA +FUTEX +ACCEPT4
-MY_ACCEPT4 +ZLIB -SLZ +CPU_AFFINITY +TFO -NS +DL +RT -DEVICEATLAS
-51DEGREES -WURFL -SYSTEMD -OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS
Default settings :
  bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with multi-threading support (MAX_THREADS=64, default=20).
Built with OpenSSL version : OpenSSL 1.1.1d  10 Sep 2019
Running on OpenSSL version : OpenSSL 1.1.1d  10 Sep 2019
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
Built with Lua version : Lua 5.3.5
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT
IP_FREEBIND
Built with zlib version : 1.2.11
Running on zlib version : 1.2.11
Compression algorithms supported : identity("identity"),
deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with PCRE version : 8.44 2020-02-12
Running on PCRE version : 8.44 2020-02-12
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Encrypted password support via crypt(3): yes

Available polling systems :
  epoll : pref=300,  test result OK
   poll : pref=200,  test result OK
 select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

Available multiplexer protocols :
(protocols marked as  cannot be specified using 'proto' keyword)
  h2 : mode=HTXside=FE|BE mux=H2
  h2 : mode=HTTP   side=FEmux=H2
: mode=HTXside=FE|BE mux=H1
: mode=TCP|HTTP   side=FE|BE mux=PASS

Available services : none

Available filters :
[SPOE] spoe
[COMP] compression
[CACHE] cache
[TRACE] trace



Olivier


Re: stable-bot: Bugfixes waiting for a release 2.1 (21), 2.0 (16)

2020-03-24 Thread Tim Düsterhus
Julien,
List,

Am 24.03.20 um 16:41 schrieb Julien Pivotto:
> Dear list,
> 
> We are facing some of the bugs fixed in the 2.1 branch (in particular the 
> replace-path bug).

There are more bugs that have not even been backported, yet. I believe
some even have been "skipped" / the RNG changes have been picked
out-of-order.

> Could you please cut a release ? there are many fixes that just cherry
> picking it in my fork would make sense.

I second that. I was already thinking about asking after yesterday's
2.2-dev5.

Best regards
Tim Düsterhus



Re: stable-bot: Bugfixes waiting for a release 2.1 (21), 2.0 (16)

2020-03-24 Thread Julien Pivotto
Dear list,

We are facing some of the bugs fixed in the 2.1 branch (in particular the 
replace-path bug).
Could you please cut a release ? there are many fixes that just cherry
picking it in my fork would make sense.

Thanks :)

Note: the bot says that the ideal date was 2020-03-06 :)

On 18 Mar 00:00, stable-...@haproxy.com wrote:
> Hi,
> 
> This is a friendly bot that watches fixes pending for the next haproxy-stable 
> release!  One such e-mail is sent periodically once patches are waiting in 
> the last maintenance branch, and an ideal release date is computed based on 
> the severity of these fixes and their merge date.  Responses to this mail 
> must be sent to the mailing list.
> 
> 
> Last release 2.1.3 was issued on 2020-02-12.  There are currently 21 patches 
> in the queue cut down this way:
> - 2 MAJOR, first one merged on 2020-02-21
> - 6 MEDIUM, first one merged on 2020-02-21
> - 13 MINOR, first one merged on 2020-02-21
> 
> Thus the computed ideal release date for 2.1.4 would be 2020-03-06, which was 
> one week ago.
> 
> Last release 2.0.13 was issued on 2020-02-13.  There are currently 16 patches 
> in the queue cut down this way:
> - 1 MAJOR, first one merged on 2020-02-21
> - 6 MEDIUM, first one merged on 2020-02-21
> - 9 MINOR, first one merged on 2020-02-21
> 
> Thus the computed ideal release date for 2.0.14 would be 2020-03-06, which 
> was one week ago.
> 
> The current list of patches in the queue is:
>  - 2.1   - MAJOR   : list: fix invalid element address 
> calculation
>  - 2.0, 2.1  - MAJOR   : http-ana: Always abort the request 
> when a tarpit is triggered
>  - 2.0, 2.1  - MEDIUM  : shctx: make sure to keep all blocks 
> aligned
>  - 2.0, 2.1  - MEDIUM  : muxes: Use the right argument when 
> calling the destroy method.
>  - 2.0, 2.1  - MEDIUM  : ebtree: don't set attribute packed 
> without unaligned access support
>  - 2.0, 2.1  - MEDIUM  : random: implement a thread-safe and 
> process-safe PRNG
>  - 2.0, 2.1  - MEDIUM  : random: initialize the random pool a 
> bit better
>  - 2.0, 2.1  - MEDIUM  : ssl: fix several bad pointer aliases 
> in a few sample fetch functions
>  - 2.0, 2.1  - MINOR   : connection: make sure to correctly 
> tag local PROXY connections
>  - 2.1   - MINOR   : http-htx: Don't return error if 
> authority is updated without changes
>  - 2.0, 2.1  - MINOR   : checks/threads: use ha_random() and 
> not rand()
>  - 2.0, 2.1  - MINOR   : sample: Make sure to return stable 
> IDs in the unique-id fetch
>  - 2.1   - MINOR   : mux-fcgi: Forbid special characters 
> when matching PATH_INFO param
>  - 2.0, 2.1  - MINOR   : dns: ignore trailing dot
>  - 2.0, 2.1  - MINOR   : filters: Count HTTP headers as 
> filtered data but don't forward them
>  - 2.0, 2.1  - MINOR   : http-ana: Matching on monitor-uri 
> should be case-sensitive
>  - 2.1   - MINOR   : http-htx: Do case-insensive 
> comparisons on Host header name
>  - 2.0, 2.1  - MINOR   : namespace: avoid closing fd when 
> socket failed in my_socketat
>  - 2.1   - MINOR   : h2: reject again empty :path 
> pseudo-headers
>  - 2.0, 2.1  - MINOR   : sample: fix the json converter's 
> endian-sensitivity
>  - 2.0, 2.1  - MINOR   : http: http-request replace-path 
> duplicates the query string
> 
> -- 
> The haproxy stable-bot is freely provided by HAProxy Technologies to help 
> improve the quality of each HAProxy release.  If you have any issue with 
> these emails or if you want to suggest some improvements, please post them on 
> the list so that the solutions suiting the most users can be found.
> 

-- 
 (o-Julien Pivotto
 //\Open-Source Consultant
 V_/_   Inuits - https://www.inuits.eu


signature.asc
Description: PGP signature


Haproxy.com : Strategy to Drag Authentic Clients

2020-03-24 Thread Anna Kendrick
Hey Haproxy.com Owner,

What might it intend if you see an expansion in contact, boost in closings,
and growth in sales?



We should have a few moments to discuss how I am going to give these to
your business.

I'm accessible to discuss over the *phone or WhatsApp*. Can we?


With Warm Regards,

*Anna Kendrick*

Digital Marketing Executive
[image: beacon]


Re: [PATCH] MINOR: ssl: rework add cert chain to CTX to be libssl independent

2020-03-24 Thread William Lallemand
On Mon, Mar 23, 2020 at 03:34:12PM +0100, Emmanuel Hocdet wrote:
> 
> Hi,
> 
> This patch remove #ifdef compatibility for add cert chain to CTX, goal is to 
> simplify code.
> It’s an extract from "[PATCH] MINOR: ssl: skip self issued CA in cert chain 
> for ssl_ctx » proposal.
> 
> ++
> Manu
> 
> 

Thanks, merged.

-- 
William Lallemand