stable-bot: Bugfixes waiting for a release 2.1 (24), 2.0 (1)

2020-05-05 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.4 was issued on 2020-04-02.  There are currently 24 patches in 
the queue cut down this way:
- 10 MEDIUM, first one merged on 2020-05-01
- 14 MINOR, first one merged on 2020-04-02

Thus the computed ideal release date for 2.1.5 would be 2020-04-30, which was 
one week ago.

Last release 2.0.14 was issued on 2020-04-02.  There are currently 1 patches in 
the queue cut down this way:
- 1 MINOR, first one merged on 2020-04-02

Thus the computed ideal release date for 2.0.15 would be 2020-04-30, which was 
one week ago.

The current list of patches in the queue is:
 - 2.1   - MEDIUM  : shctx: really check the lock's value 
while waiting
 - 2.1   - MEDIUM  : capture: capture.{req,res}.* crash 
without a stream
 - 2.1   - MEDIUM  : http-ana: Handle NTLM messages 
correctly.
 - 2.1   - MEDIUM  : listener: mark the thread as not stuck 
inside the loop
 - 2.1   - MEDIUM  : http: the "unique-id" sample fetch 
could crash without a steeam
 - 2.1   - MEDIUM  : server/checks: Init server check 
during config validity check
 - 2.1   - MEDIUM  : http: the "http_first_req" sample 
fetch could crash without a steeam
 - 2.1   - MEDIUM  : sample: make the CPU and latency 
sample fetches check for a stream
 - 2.1   - MEDIUM  : shctx: bound the number of loops that 
can happen around the lock
 - 2.1   - MEDIUM  : capture: capture-req/capture-res 
converters crash without a stream
 - 2.1   - MINOR   : connection: always send address-less 
LOCAL PROXY connections
 - 2.1   - MINOR   : ssl: default settings for ssl server 
options are not used
 - 2.1   - MINOR   : mux-fcgi: Be sure to have a connection 
as session's origin to use it
 - 2.1   - MINOR   : tools: fix the i386 version of the 
div64_32 function
 - 2.1   - MINOR   : obj_type: Handle stream object in 
obj_base_ptr() function
 - 2.1   - MINOR   : checks: Respect the no-check-ssl option
 - 2.1   - MINOR   : debug: properly use long long instead 
of long for the thread ID
 - 2.1   - MINOR   : peers: Incomplete peers sections 
should be validated.
 - 2.1   - MINOR   : checks: chained expect will not 
properly wait for enough data
 - 2.1   - MINOR   : http: make url_decode() optionally 
convert '+' to SP
 - 2.1   - MINOR   : ssl: memleak of the struct 
cert_key_and_chain
 - 2.1   - MINOR   : check: Update server address and port 
to execute an external check
 - 2.1   - MINOR   : ssl/cli: memory leak in 'set ssl cert'
 - 2.0, 2.1  - MINOR   : protocol_buffer: Wrong maximum 
shifting.

-- 
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: [ANNOUNCE] haproxy-2.2-dev7

2020-05-05 Thread Willy Tarreau
Hi William,

On Tue, May 05, 2020 at 11:57:47PM +0200, William Dauchy wrote:
> > Christopher Faulet (136):
> >   MAJOR: checks: Implement HTTP check using tcp-check rules
> 
> What is funny after this commit is that we wrongly relied on a config
> which was written that way:
>   http-check expect status 200 string passing
> instead of:
>   http-check expect status 200
>   http-check expect string passing
> 
> I first thought about a bad regression even though the documentation
> does not allow it, but `string passing` was never evaluated, and so
> silently ignored; now things are enforced which is better for us to
> see those long standing mistakes ;)

Ah interesting. We have many checks for unused extraneous parameters,
but it's possible that a few still managed to pass through. It might
be good if we can adjust this one to at least emit a warning in older
branches.

Thanks for the feedback!
Willy



Re: [ANNOUNCE] haproxy-2.2-dev7

2020-05-05 Thread William Dauchy
Hello,

Thank you for this release update!

On Tue, May 5, 2020 at 11:46 PM Willy Tarreau  wrote:
> HAProxy 2.2-dev7 was released on 2020/05/05. It added 205 new commits
> after version 2.2-dev6.
>
> The most visible changes in this version is the rework of the health checks
> that was started by Gaėtan and completed by Christopher. I'll certainly say
> a number of stupidities about all this so I won't enter into details, but the
> main points to be aware of is that the health checks which for 18 years have
> been the ugliest part of the internals have now become smart. They are now
> all internally implemented on top of tcp-check rules, and that these ones
> were improved to satisfy the new requirements. For now all this new stuff is
> not yet fully exploited beyond what is needed for the checks but we can hope
> a lot of new cool stuff in a near future.
>
> In addition, HTTP checks now run over HTX and employ the muxes so they can
> now run over HTTP/1 and HTTP/2, and can separately set headers and body.
> All the elements may be extracted and processed for advanced checks. You
> should refer to the documentation to figure all the details. Please beware
> that the check configuration rules are subject to change a little bit before
> the release but the main principle is already here.

> Christopher Faulet (136):
>   MAJOR: checks: Implement HTTP check using tcp-check rules

What is funny after this commit is that we wrongly relied on a config
which was written that way:
  http-check expect status 200 string passing
instead of:
  http-check expect status 200
  http-check expect string passing

I first thought about a bad regression even though the documentation
does not allow it, but `string passing` was never evaluated, and so
silently ignored; now things are enforced which is better for us to
see those long standing mistakes ;)
Thanks Christopher!

-- 
William



[ANNOUNCE] haproxy-2.2-dev7

2020-05-05 Thread Willy Tarreau
Hi,

HAProxy 2.2-dev7 was released on 2020/05/05. It added 205 new commits
after version 2.2-dev6.

The most visible changes in this version is the rework of the health checks
that was started by Gaëtan and completed by Christopher. I'll certainly say
a number of stupidities about all this so I won't enter into details, but the
main points to be aware of is that the health checks which for 18 years have
been the ugliest part of the internals have now become smart. They are now
all internally implemented on top of tcp-check rules, and that these ones
were improved to satisfy the new requirements. For now all this new stuff is
not yet fully exploited beyond what is needed for the checks but we can hope
a lot of new cool stuff in a near future.

In addition, HTTP checks now run over HTX and employ the muxes so they can
now run over HTTP/1 and HTTP/2, and can separately set headers and body.
All the elements may be extracted and processed for advanced checks. You
should refer to the documentation to figure all the details. Please beware
that the check configuration rules are subject to change a little bit before
the release but the main principle is already here.

Just before releasing I noticed one minor regtest failure on openssl 1.0.2
only, that I bisected to commit df38f88 ("MINOR: checks: Improve log message
of tcp-checks on success") (which sadly, doesn't have any commit message).
This failure is only about the logged message on check failure. I don't see
any obvious reason why this commit would only affect openssl 1.0.2 so I
guess the issue is somewhere else, and likely not much important.

Aside this there were a number of code cleanups, regtest additions and doc
updates. Among the other pending things I'm aware of is the support for
syslog over TCP and that should be all.

My personal feeling is that the rate of changes is still a bit high this
late in the cycle and that the level of issues remains high as well, and
I would appreciate it when it starts to calm down. I wouldn't be surprized
if we'd release in early June rather than end of May. But there's no rush
and that doesn't make a huge difference, provided it allows us to have an
excellent 2.2.

If you have painful checks in your configs, or some unusual ones, your
feedback will be welcome. If you're facing limitations with your HTTP
checks, it might be the right moment to give this one a try.

Please find the usual URLs below :
   Site index   : http://www.haproxy.org/
   Discourse: http://discourse.haproxy.org/
   Slack channel: https://slack.haproxy.org/
   Issue tracker: https://github.com/haproxy/haproxy/issues
   Sources  : http://www.haproxy.org/download/2.2/src/
   Git repository   : http://git.haproxy.org/git/haproxy.git/
   Git Web browsing : http://git.haproxy.org/?p=haproxy.git
   Changelog: http://www.haproxy.org/download/2.2/src/CHANGELOG
   Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/

Willy
---
Complete changelog :
Baptiste Assmann (3):
  MINOR: ist: add istadv() function
  MINOR: ist: add istissame() function
  MINOR: istbuf: add ist2buf() function

Christopher Faulet (136):
  BUG/MINOR: http-ana: Throw a 500 error if after-response ruleset fails on 
errors
  BUG/MINOR: check: Update server address and port to execute an external 
check
  MINOR: mini-clist: Add functions to iterate backward on a list
  MINOR: checks: Add a way to send custom headers and payload during http 
chekcs
  BUG/MINOR: checks: Respect the no-check-ssl option
  BUG/MEDIUM: server/checks: Init server check during config validity check
  CLEANUP: checks: Don't export anymore init_check and 
srv_check_healthcheck_port
  BUG/MINOR: checks: Forbid tcp-check lines in default section as documented
  MINOR: checks: Stop xform buffers to null-terminated string for tcp-check 
rules
  MINOR: checks: Simplify functions to get step id and comment
  MEDIUM: proxy/checks: Register a keyword to parse tcp-check rules
  MEDIUM: checks: Add implicit tcp-check connect rule
  MAJOR: checks: Refactor and simplify the tcp-check loop
  MINOR: checks: Add the sni option for tcp-check connect rules
  MINOR: checks: Add the via-socks4 option for tcp-check connect rules
  MINOR: checks: Add the alpn option for tcp-check connect rules
  MINOR: ssl: Export a generic function to parse an alpn string
  MINOR: checks: Add the default option for tcp-check connect rules
  MINOR: checks: Add the addr option for tcp-check connect rule
  MEDIUM: checks: Support expression to set the port
  MEDIUM: checks: Support log-format strings for tcp-check send rules
  MINOR: log: Don't depends on a stream to process samples in log-format 
string
  MINOR: log: Don't systematically set LW_REQ when a sample expr is added
  MEDIUM: checks: Add a shared list of tcp-check rules
  MINOR: sample: add htonl converter
  MINOR: sample: add cut_crlf 

Distance Learning Package: Bid Writing

2020-05-05 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. Delivered by e-mail. 
The package includes all the topics from our popular Bid Writing: The Basics 
and Bid Writing: Advanced live workshops plus eight 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.

FORMAT

 The distance learning package consists of a 201 page text document in PDF 
format plus 8 real successful bids totalling 239 pages in PDF format. There is 
no audio or video content. This is not an online course. 

TIME COMMITMENT

Trainees should expect to spend around eight hours reading through all the 
materials, preparing their "to do" list for the months ahead, writing or 
revising their standard funding bid, submitting questions by email and 
processing responses.

TERMS

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

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.
 
   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: Question about connection settings proto fcgi check maxconn 9 minconn 5 maxqueue 0

2020-05-05 Thread Tim Düsterhus
Christopher,
Aleks,

Am 04.05.20 um 11:28 schrieb Christopher Faulet:
> Le 03/05/2020 à 09:52, Aleksandar Lazic a écrit :
>>
>> My php-fpm have the following settings.
>>
>> ```
>> pm = dynamic
>> pm.max_children = 10
>> pm.min_spare_servers = 4
>> pm.start_servers = 5
>> pm.max_spare_servers = 6
>> pm.max_requests = 500
>> ```
>>
> [...]
> 
> Hi Aleks,
> 
> I've made some tests on my side and the fork politic of php-fpm seems to
> be a bit strange because with the same config and the check disabled,
> I've the same warning and 10 php-fpm children with only 3 clients. When
> I checked the opened connections, I only have 4 connections. So there is
> no reason to have 10 children.
> 

It does not looks too off to me given Aleks' configuration:

PHP starts off with 5 worker processes (idle). If at least 6 requests
come in at the same time then PHP will reach 10 worker processes,
because PHP is configured to keep 4 idle processes at all times. A 7th
request would violate the minimum number of idle processes.

Now if the number of concurrent requests goes down to 4 you will still
see the 10 processes, because PHP is allowed to keep 6 idle processes
around.

Best regards
Tim Düsterhus



Re: [PATCH] MINOR: lua: allow changing port with set_addr

2020-05-05 Thread Christopher Faulet

Merged. Thanks !

--
Christopher