forked from pgbouncer/pgbouncer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
755 lines (507 loc) · 26.8 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
2012-07-xx - PgBouncer 1.5.3 - ""
= Minor Feature =
* max_packet_size - config parameter to tune maximum packet size
that is allowed through. Default is kept same: (2G-1), but now
it can be made smaller.
* In case of unparseable packet header, show it in hex in log and
error message.
= Fixes =
* AntiMake: it used $(relpath) and $(abspath) to manupulate pathnames,
but the result was build failure when source tree path contained
symlinks. The code is now changed to work on plain strings only.
* console: now SET can be used to set empty string values.
* config.txt: show that all timeouts can be set in floats.
This is well-hidden feature introduced in 1.4.
2012-05-29 - PgBouncer 1.5.2 - "Don't Chew, Just Swallow"
= Fixes =
* Due to mistake, reserve_pool_timeout was taken in microseconds,
not seconds, effectively activating reserve pool immediately
when pool got full. Now use it as seconds, as was intended.
(Noticed by Keyur Govande)
2012-04-17 - PgBouncer 1.5.1 - "Abort, Retry, Ignore?"
= Features =
* Parameters to tune permissions on unix socket:
unix_socket_mode=0777, unix_socket_group=''.
= Fixes =
* Allow empty string for server-side variable - this is
needed to get "application_name" properly working, as it's
the only parameter that does not have server-side default.
* If connect string changes, require refresh of server parameters.
Previously PgBouncer continued with old parameters,
which breaks in case of Postgres upgrade.
* If autodb connect string changes, drop old connections.
* cf_setint: Use strtol() instead atoi() to parse integer config
parameters. It allows hex, octal and better error detection.
* Use sigqueue() to detect union sigval existence - fixes
compilation on HPUX.
* Remove 'git' command from Makefile, it throws random errors
in case of plain-tarball build.
* Document stats_period parameter. This tunes the period for
stats output.
* Require Asciidoc >= 8.4, seems docs are not compatible with
earlier versions anymore.
* Stop trying to retry on EINTR from close().
2012-01-05 - PgBouncer 1.5 - "Bouncing Satisified Clients Since 2007"
If you use more than 8 IPs behind one DNS name, you now need to
use EDNS0 protocol to query. Only getaddrinfo_a()/getaddrinfo()
and UDNS backends support it, libevent 1.x/2.x does not.
To enable it for libc, add 'options edns0' to /etc/resolv.conf.
GNU Make 3.81+ is required for building.
= Features =
* Detect DNS reply changes and invalidate connections to IPs no longer
present in latest reply.
(Petr Jelinek)
* DNS zone serial based hostname invalidation. When option
dns_zone_check_period is set, all DNS zones will be queried
for SOA, and when serial has changed, all hostnames
will be queried. This is needed to get deterministic
connection invalidation, because invalidation on lookup
is useless when no lookups are performed.
Works only with new UDNS backend.
* New SHOW DNS_HOSTS, SHOW DNS_ZONES commands to examine DNS cache.
* New param: min_pool_size - avoids dropping all connections
when there is no load.
(Filip Rembiałkowski)
* idle_in_transaction_timeout - kill transaction if idle too long.
Not set by default.
* New libudns backend for DNS lookups. More featureful than evdns.
Use --with-udns to activate. Does not work with IPv6 yet.
* KILL command, to immediately kill all connections for one database.
(Michael Tharp)
* Move to Antimake build system to have better looking Makefiles.
Now GNU Make 3.81+ is required for building.
= Fixes =
* DNS now works with IPv6 hostnames.
* Don't change connection state when NOTIFY arrives from server.
* Various documentation fixes.
(Dan McGee)
* Console: Support ident quoting with "". Originally we did not
have any commands that took database names, so no quoting was needed.
* Console: allow numbers at the stard of word regex. Trying
to use strict parser makes things too complex here.
* Don't expire auto DBs that are paused.
(Michael Tharp)
* Create auto databases as needed when doing PAUSE.
(Michael Tharp)
* Fix wrong log message issued by RESUME command.
(Peter Eisentraut)
* When user= without password= is in database connect string,
password will be taken from userlist.
* Parse '*' properly in takeover code.
* autogen.sh: work with older autoconf/automake.
* Fix run-as-service crash on win32 due to bad basename() from
mingw/msvc runtime. Now compat basename() is always used.
2011-06-16 - PgBouncer 1.4.2 - "Strike-First Algorithm"
Affected OS-es: *BSD, Solaris, Win32.
= Portability Fixes =
* Give CFLAGS to linker. Needed when using pthread-based
getaddrinfo_a() fallback.
* lib/find_modules.sh: Replace split() with index()+substr().
This should make it work with older AWKs.
* <usual/endian.h>: Ignore system htoX/Xtoh defines. There
may be only subset of macros defined.
* <usual/signal.h>: Separate compat sigval from compat sigevent
* <usual/socket.h>: Include <sys/uio.h> to get iovec
* <usual/time.h>: Better function autodetection on win32
* <usual/base_win32.h>: Remove duplicate sigval/sigevent declaration
2011-04-01 - PgBouncer 1.4.1 - "It Was All An Act"
= Features =
* Support listening/connect for IPv6 addresses.
(Hannu Krosing)
* Multiple listen addresses in 'listen_addr'. For each getaddrinfo()
is called, so names can also be used.
* console: Send PgBouncer version as 'server_version' to client.
= Important Fixes =
* Disable getaddrinfo_a() on glibc < 2.9 as it crashes on older versions.
Notable affected OS'es: RHEL/CentOS 5.x (glibc 2.5), Ubuntu 8.04 (glibc 2.7).
Also Debian/lenny (glibc 2.7) which has non-crashing getaddrinfo_a()
but we have no good way to detect it.
Please use libevent 2.x on such OS'es, fallback getaddrinfo_a() is not
meant for production systems. And read new 'DNS lookup support' section
in README to see how DNS backend is picked.
(Hubert Depesz Lubaczewski, Dominique Hermsdorff, David Sommerseth)
* Default to --enable-evdns if libevent 2.x is used.
* Turn on tcp_keepalive by default, as that's what Postgres also does.
(Hubert Depesz Lubaczewski)
* Set default server_reset_query to DISCARD ALL to be compatible
with Postgres by default.
* win32: Fix crashes with NULL unix socket addr.
(Hiroshi Saito)
* Fix autodb cleanup: old cleanup code was mixing up databases and pools
- as soon as one empty pool was found, the database was tagged as 'idle',
potentially later killing database with active users.
Reported-By: Hubert Depesz Lubaczewski
= Fixes =
* Make compat getaddrinfo_a() non-blocking, by using single parallel
thread to do lookups.
* Enable pthread compilation if compat getaddrinfo_a is used.
* release_server missed setting ->last_lifetime_disconnect on lifetime disconnect.
(Emmanuel Courreges)
* win32: fix auth file on DOS line endings - load_file() did not take
account of file shringage when loading.
(Rich Schaaf)
* <usual/endian.h>: add autoconf detection for enc/dec functions
so it would not create conflicts on BSD.
(James Pye)
* Don't crash when config file does not exist.
(Lou Picciano)
* Don't crash on DNS lookup failure when logging on noise level (-v -v).
(Hubert Depesz Lubaczewski, Dominique Hermsdorff)
* Use backticks instead of $(cmd) in find_modules.sh to make it more portable.
(Lou Picciano)
* Use 'awk' instead of 'sed' in find_modules.sh to make it more portable.
(Giorgio Valoti)
* Log active async DNS backend info on startup.
* Fix --disable-evdns to mean 'no' instead 'yes'.
* Mention in docs that -R requires unix_socket_dir.
* Discuss server_reset_query in faq.txt.
* Restore lost memset in slab allocator
* Various minor portability fixes in libusual.
2011-01-11 - PgBouncer 1.4 - "Gore Code"
= Features =
* Async DNS lookup - instead of resolving hostnames at reload time,
the names are now resolved at connect time, with configurable caching.
(See dns_max_ttl parameter.)
By default it uses getaddrinfo_a() (glibc) as backend, if it does not
exist, then getaddrinfo_a() is emulated via blocking(!) getaddrinfo().
When --enable-evdns argument to configure, libevent's evdns is used
as backend. It is not used by default, because libevent 1.3/1.4
contain buggy implementation. Only evdns in libevent 2.0 seems OK.
* New config var: syslog_ident, to tune syslog name.
* Proper support for `application_name` startup parameter.
* Command line long options (Guillaume Lelarge)
* Solaris portability fixes (Hubert Depesz Lubaczewski)
* New config var: disable_pqexec. Highly-paranoid environments
can disable Simple Query Protocol with that. Requires apps
that use only Extended Query Protocol.
* Postgres compat: if database name is empty in startup packet,
use user name as database.
= Fixes =
* DateStyle and TimeZone server params need to use exact case.
* Console: send datetime, timezone and stdstr server params to client.
= Internal cleanups =
* Use libusual library for low-level utility functions.
* Remove fixed-length limit from server params.
2010-09-09 - PgBouncer 1.3.4 - "Bouncer is always right"
= Fixes =
* Apply fast-fail logic at connect time. So if server is failing,
the clients get error when connecting.
* Don't tag automatically generated databases for checking on reload time,
otherwise they get killed, because they don't exist in config.
* Ignore application_name parameter by default. This avoids the need
for all Postgres 9.0 users to add it into ignore_startup_parameters=
themselves.
* Correct pg_auth quoting. '\' is not used there.
* Better error reporting on console, show incoming query to user.
* Support OS'es (OpenBSD) where tv_sec is not time_t.
* Avoid too noisy warnings on gcc 4.5.
2010-05-10 - PgBouncer 1.3.3 - "NSFW"
= Improvements =
* Make listen(2) argument configurable: listen_backlog. This is
useful on OS'es, where system max allowed is configurable.
* Improve disconnect messages to show what username or dbname caused
login to fail.
= Fixes =
* Move fast-fail relaunch logic around. Old one was annoying in case of
permanently broken databases or users, by trying to retry even if
there is no clients who want to login.
* Make logging functions keep old errno, otherwise pgbouncer may act funny
on higher loglevels and logging problems.
* Increase the size of various startup-related buffers to handle
EDB more noisy startup.
* Detect V2 protocol startup request and give clear reason for disconnect.
2010-03-15 - PgBouncer 1.3.2 - "Boomerang Bullet"
= Fixes =
* New config var 'query_wait_timeout'. If client does not get
server connection in this many seconds, it will be killed.
* If no server connection in pool and last connect failed, then
don't put client connections on hold but send error immediately.
This together with previous fix avoids unnecessary stalls if
a database has gone down.
* Track libevent state in sbuf.c to avoid double event_del(). Although
it usually is safe, it does not seem to work 100%. Now we should always
know whether it has been called or not.
* Disable maintenance during SUSPEND. Otherwise with short timeouts
the old bouncer could close few connections after sending them over.
* Apply client_login_timeout to clients waiting for welcome packet
(first server connection). Otherwise they can stay waiting
infinitely, unless there is query_timeout set.
* win32: Add switch -U/-P to -regservice to let user pick account
to run service under. Old automatic choice between Local Service and
Local System was not reliable enough.
* console: Remove \0 from end of text columns. It was hard to notice,
as C clients were fine with it.
* Documentation improvements. (Greg Sabino Mullane)
* Clarify few login-related log messages.
* Change logging level for pooler-sent errors (usually on disconnect) from INFO
to WARNING, as they signify problems.
* Change log message for query_timeout to "query timeout".
2009-07-06 - PgBouncer 1.3.1 - "Now fully conforming to NSA monitoring requirements"
= Fixes =
* Fix problem with sbuf_loopcnt which could make connections hang.
If query or result length is nearby of multiple of (pktlen*sbuf_loopcnt)
[10k by default], it could stay waiting for more data which will not
appear.
* Make database reconfigure immediate. Currently old connections
could be reused after SIGHUP.
* Fix SHOW DATABASES which was broken due to column addition.
* Console access was disabled when "auth_mode=any" as pgbouncer dropped username.
Fix: if "auth_mode=any", allow any user to console as admin.
* Fix bad CUSTOM_ALIGN macro. Luckily it's unused if OS already
defines ALIGN macro thus seems the bug has not happened in wild.
* win32: call WSAStartup() always, not only in daemon mode
as config parsing wants to resolve hosts.
* win32: put quotes around config filename in service
cmdline to allow spaces in paths. Executable path
does not seem to need it due to some win32 magic.
* Add STATS to SHOW HELP text.
* doc/usage.txt: the time units in console results are in
microseconds, not milliseconds.
2009-02-18 - PgBouncer 1.3 - "New Ki-Smash Finishing Move"
= Features =
* IANA has assigned port 6432 to be official port for PgBouncer.
Thus the default port number has changed to 6432. Existing
individual users do not need to change, but if you distribute
packages of PgBouncer, please change the package default
to official port.
* Dynamic database creation (David Galoyan)
Now you can define database with name "*". If defined, it's connect
string will be used for all undefined databases. Useful mostly
for test / dev environments.
* Windows support (Hiroshi Saito)
PgBouncer runs on Windows 2000+ now. Command line usage stays same,
except it cannot run as daemon and cannot do online reboot.
To run as service, define parameter service_name in config. Then:
> pgbouncer.exe config.ini -regservice
> net start SERVICE_NAME
To stop and unregister:
> net stop SERVICE_NAME
> pgbouncer.exe config.ini -unregservice
To use Windows Event Log, event DLL needs to be registered first:
> regsrv32 pgbevent.dll
Afterwards you can set "syslog = 1" in config.
= Minor features =
* Database names in config file can now be quoted with standard SQL
ident quoting, to allow non-standard characters in db names.
* New tunables: 'reserve_pool_size' and 'reserve_pool_timeout'.
In case there are clients in pool that have waited more that
'reserve_pool_timeout' seconds, 'reserve_pool_size' specifies
the number of connections that can be added to pool. It can also
set per-pool with 'reserve_pool' connection variable.
* New tunable 'sbuf_loopcnt' to limit time spent on one socket.
In some situations - eg SMP server, local Postgres and fast network -
pgbouncer can run recv()->send() loop many times without blocking
on either side. But that means other connections will stall for
a long time. To make processing more fair, limit the times
of doing recv()->send() one socket. If count reaches limit,
just proceed processing other sockets. The processing for
that socket will resume on next event loop.
Thanks to Alexander Schöcke for report and testing.
* crypt() authentication is now optional, as it was removed from Postgres.
If OS does not provide it, pgbouncer works fine without it.
* Add milliseconds to log timestamps.
* Replace old MD5 implementation with more compact one.
* Update ISC licence with the FSF clarification.
= Fixes =
* In case event_del() reports failure, just proceed with cleanup.
Previously pgbouncer retried it, in case the failure was due ENOMEM.
But this has caused log floods with inifinite repeats, so it seems
libevent does not like it.
Why event_del() report failure first time is still mystery.
* --enable-debug now just toggles whether debug info is stripped from binary.
It no longer plays with -fomit-frame-pointer as it's dangerous.
* Fix include order, as otherwise system includes could come before
internal ones. Was problem for new md5.h include file.
* Include COPYRIGHT file in .tgz...
2008-08-08 - PgBouncer 1.2.3 - "Carefully Selected Bytes"
* Disable SO_ACCEPTFILTER code for BSDs which did not work.
* Include example etc/userlist.txt in tgz.
* Use '$(MAKE)' instead 'make' for recursion (Jørgen Austvik)
* Define _GNU_SOURCE as glibc is useless otherwise.
* Let the libevent 1.1 pass link test so we can later report "1.3b+ needed"
* Detect stale pidfile and remove it.
Thanks to Devrim GÜNDÜZ and Bjoern Metzdorf for problem reports and testing.
2008-08-06 - PgBouncer 1.2.2 - "Barf-bag Included"
* Remove 'drop_on_error', it was a bad idea. It was added as workaround
for broken plan cache behaviour in Postgres, but can cause damage
in common case when some queries always return error.
2008-08-04 - PgBouncer 1.2.1 - "Waterproof"
= Features =
* New parameter 'drop_on_error' - if server throws error the connection
will not be reused but dropped after client finished with it. This is
needed to refresh plan cache. Automatic refresh does not work even in 8.3.
Defaults to 1.
= Fixes =
* SHOW SOCKETS/CLIENTS/SERVERS: Don't crash if socket has no buffer.
* Fix infinite loop on SUSPEND if suspend_timeout triggers.
= Minor cleanups =
* Use <sys/uio.h> for 'struct iovec'.
* Cancel shutdown (from SIGINT) on RESUME/SIGUSR2,
otherwise it will trigger on next PAUSE.
* Proper log message if console operation is canceled.
2008-07-29 - PgBouncer 1.2 - "Ordinary Magic Flute"
PgBouncer 1.2 now requires libevent version 1.3b or newer.
Older libevent versions crash with new restart code.
= Features =
* Command line option (-u) and config parameter (user=) to support user
switching at startup. Also now pgbouncer refuses to run as root.
(Jacob Coby)
* More descriptive usage text (-h). (Jacob Coby)
* New database option: connect_query to allow run a query on new
connections before they are taken into use. (Teodor Sigaev)
* New config var 'ignore_startup_parameters' to allow and ignore
extra parameters in startup packet. By default only 'database'
and 'user' are allowed, all others raise error. This is needed
to tolerate overenthusiastic JDBC wanting to unconditionally
set 'extra_float_digits=2' in startup packet.
* Logging to syslog: new parameters syslog=0/1 and
syslog_facility=daemon/user/local0.
* Less scary online restart (-R)
- Move FD loading before fork, so it logs to console and can be canceled by ^C
- Keep SHUTDOWN after fork, so ^C would be safe
- A connect() is attempted to unix socket to see if anyone is listening.
Now -R can be used even when no previous process was running. If there
is previous process, but -R is not used, startup fails.
* New console commands:
- SHOW TOTALS that shows stats summary (as goes to log) plus mem usage.
- SHOW ACTIVE_SOCKETS - like show sockets; but filter only active ones.
= Less visible features =
* suspend_timeout - drop stalled conns and long logins. This brings
additional safety to reboot.
* When remote database throws error on logging in, notify clients.
* Removing a database from config and reloading works - all connections
are killed and the database is removed.
* Fake some parameters on console SHOW/SET commands to be more Postgres-like.
That was needed to allow psycopg to connect to console.
(client_encoding/default_transaction_isolation/datestyle/timezone)
* Make server_lifetime=0 disconnect server connection immediately
after first use. Previously "0" made PgBouncer ignore server age.
As this behavior was undocumented, there should not be any users
depending on it.
* Internal improvements:
- Packet buffers are allocated lazily and reused. This should bring
huge decrease in memory usage. This also makes realistic to use
big pktbuf with lot of connections.
- Lot's of error handling improvements, PgBouncer should now
survive OOM situations gracefully.
- Use slab allocator for memory management.
- Lots of code cleanups.
= Fixes =
* Only single accept() was issued per event loop which could
cause connection backlog when having high amount of connection
attempts. Now the listening socket is always drained fully,
which should fix this.
* Handle EINTR from connect().
* Make configure.ac compatible with autoconf 2.59.
* Solaris compatibility fixes (Magne Mæhre)
2007-12-10 - PgBouncer 1.1.2 - "The Hammer"
= Features =
* Disconnects because of server_lifetime are now separated by
(server_lifetime / pool_size) seconds. This avoids pgbouncer
causing reconnect floods.
= Fixes =
* Online upgrade 1.0 -> 1.1 problems:
- 1.0 does not track server parameters, so they stay NULL
but 1.1 did not expect it and crashed.
- If server params are unknown, but client ones are set,
then issue a SET for them, instead complaining.
* Remove temp debug statements that were accidentally left
in code on INFO level, so they polluted logs.
* Unbroke debian/changelog
= Cleanup =
* reorder struct SBuf fields to get better alignment for buffer.
2007-10-26 - PgBouncer 1.1.1 - "Breakdancing Bee"
= Fixes =
* Server parameter cache could stay uninitialized, which caused
unnecessary SET of them. This caused problem on 8.1 which
does not allow touching standard_conforming_strings.
(Thanks to Dimitri Fontaine for report & testing.)
* Some doc fixes.
* Include doc/fixman.py in .tgz.
2007-10-09 - PgBouncer 1.1 - "Mad-Hat Toolbox"
= Features =
* Keep track of following server parameters:
client_encoding datestyle, timezone, standard_conforming_strings
* Database connect string enhancements:
- Accept hostname in host=
- Accept custom unix socket location in host=
- Accept quoted values: password=' asd''foo'
* New config var: server_reset_query, to be sent immidiately after release
* New config var: server_round_robin, to switch between LIFO and RR.
* Cancel pkt sent for idle connection does not drop it anymore.
* Cancel with ^C from psql works for SUSPEND / PAUSE.
* Print FD limits on startup.
* When suspending, try to hit packet boundary ASAP.
* Add 'timezone' to database parameters.
* Use longlived logfile fd. Reopened on SIGHUP / RELOAD;
* Local connection endpoint info in SHOW SERVERS/CLIENTS/SOCKETS.
= Code cleanup =
* More debug log messages include socket info.
* Magic number removal and error message cleanup. (David Fetter)
* Wrapper struct for current pkt info. Removes lot of compexity.
= Fixes =
* Detect invalid pkt headers better.
* auth_file modification check was broken, which made pgbouncer
reload it too often.
2007-06-18 - PgBouncer 1.0.8 - "Undead Shovel Jutsu"
= Fixes =
* Fix crash in cancel packet handling. (^C from psql)
= Features =
* PAUSE <db>; RESUME <db>; works now.
* Cleanup of console command parsing.
* Disable expensive in-list assert check.
2007-04-19 - PgBouncer 1.0.7 - "With Vitamin A-Z"
* Several error/notice packets with send() blocking between
triggered assert. Fix it by removing flushing logic altogether.
As pgbouncer does not actively buffer anything, its not needed.
It was a remnant from the time when buffering was pushed to
kernel with MSG_MORE.
* Additionally avoid calling recv() logic when sending unblocks.
* List search code for admin_users and stats_users
mishandled partial finds. Fix it.
* Standardise UNIX socket peer UID finding to getpeereid().
2007-04-12 - PgBouncer 1.0.6 - "Daily Dose"
* The "Disable maintenance during the takeover" fix could
disable maintenance altogether. Fix it.
* Compilation fix for FreeBSD, <sys/ucred.h> requires <sys/param.h> there.
Thanks go to Robert Gogolok for report.
2007-04-11 - PgBouncer 1.0.5 - "Enough for today"
* Fix online-restart bugs:
- Set ->ready for idle servers.
- Remove obsolete code from use_client_socket()
- Disable maintenance during the takeover.
2007-04-11 - PgBouncer 1.0.4 - "Last 'last' bug"
* Notice from idle server tagged server dirty.
release_server() did not expect it. Fix it
by dropping them.
2007-04-11 - PgBouncer 1.0.3 - "Fearless Fork"
= Fixes =
* Some error handling was missing in login path, so dying
connection there could trigger asserts.
* Cleanup of asserts in sbuf.c to catch problems earlier.
* Create core when Assert() triggers.
= New stuff =
* New config vars: log_connections, log_disconnections,
log_pooler_errors to turn on/off noise.
* Config var: client_login_timeout to kill dead connections
in login phase that could stall SUSPEND and thus online restart.
2007-03-28 - PgBouncer 1.0.2 - "Supersonic Spoon"
* libevent may report a deleted event inside same loop.
Avoid socket reuse for one loop.
* release_server() from disconnect_client() didnt look
it the packet was actually sent.
2007-03-15 - PgBouncer 1.0.1 - "Alien technology"
= Fixes =
* Mixed usage of cached and non-cached time, plus unsiged usec_t typedef
created spurious query_timeout errors.
* Fix rare case when socket woken up from send-wait could stay stalling.
* More fair queueing of server connections. Before, a new query could
get a server connections before older one.
* Delay server release until everything is guaranteed to be sent.
= Features =
* SHOW SOCKETS command to have detailed info about state state.
* Put PgSocket ptr to log, to help tracking one connection.
* In console, allow SELECT in place of SHOW.
* Various code cleanups.
2007-03-13 - PgBouncer 1.0 - "Tuunitud bemm"
* First public release.