]> granicus.if.org Git - pgbouncer/blob - NEWS
win32: make asynctest compile again
[pgbouncer] / NEWS
1 2008-08-08  -  PgBouncer 1.2.3  -  "Carefully Selected Bytes"
2
3   * Disable SO_ACCEPTFILTER code for BSDs which did not work.
4   * Include example etc/userlist.txt in tgz.
5   * Use '$(MAKE)' instead 'make' for recursion (Jørgen Austvik)
6   * Define _GNU_SOURCE as glibc is useless otherwise.
7   * Let the libevent 1.1 pass link test so we can later report "1.3b+ needed"
8   * Detect stale pidfile and remove it.
9
10   Thanks to Devrim GÜNDÜZ and Bjoern Metzdorf for problem reports and testing.
11
12 2008-08-06  -  PgBouncer 1.2.2  -  "Barf-bag Included"
13
14   * Remove 'drop_on_error', it was a bad idea.  It was added as workaround
15     for broken plan cache behaviour in Postgres, but can cause damage
16     in common case when some queries always return error.
17
18 2008-08-04  -  PgBouncer 1.2.1  -  "Waterproof"
19
20   = Features =
21
22     * New parameter 'drop_on_error' - if server throws error the connection
23       will not be reused but dropped after client finished with it.  This is
24       needed to refresh plan cache.  Automatic refresh does not work even in 8.3.
25       Defaults to 1.
26
27   = Fixes =
28
29     * SHOW SOCKETS/CLIENTS/SERVERS: Don't crash if socket has no buffer.
30     * Fix infinite loop on SUSPEND if suspend_timeout triggers.
31
32   = Minor cleanups =
33
34     * Use <sys/uio.h> for 'struct iovec'.
35     * Cancel shutdown (from SIGINT) on RESUME/SIGUSR2,
36       otherwise it will trigger on next PAUSE.
37     * Proper log message if console operation is canceled.
38
39 2008-07-29  -  PgBouncer 1.2  -  "Ordinary Magic Flute"
40
41   PgBouncer 1.2 now requires libevent version 1.3b or newer.
42   Older libevent versions crash with new restart code.
43
44   = Features =
45
46     * Command line option (-u) and config parameter (user=) to support user
47       switching at startup.  Also now pgbouncer refuses to run as root.
48       (Jacob Coby)
49     * More descriptive usage text (-h).  (Jacob Coby)
50     * New database option: connect_query to allow run a query on new
51       connections before they are taken into use.  (Teodor Sigaev)
52     * New config var 'ignore_startup_parameters' to allow and ignore
53       extra parameters in startup packet.  By default only 'database'
54       and 'user' are allowed, all others raise error.  This is needed
55       to tolerate overenthusiastic JDBC wanting to unconditionally
56       set 'extra_float_digits=2' in startup packet.
57     * Logging to syslog: new parameters syslog=0/1 and
58       syslog_facility=daemon/user/local0.
59     * Less scary online restart (-R)
60       - Move FD loading before fork, so it logs to console and can be canceled by ^C
61       - Keep SHUTDOWN after fork, so ^C would be safe
62       - A connect() is attempted to unix socket to see if anyone is listening.
63         Now -R can be used even when no previous process was running.  If there
64         is previous process, but -R is not used, startup fails.
65     * New console commands:
66       - SHOW TOTALS that shows stats summary (as goes to log) plus mem usage.
67       - SHOW ACTIVE_SOCKETS - like show sockets; but filter only active ones.
68
69   = Less visible features =
70
71     * suspend_timeout - drop stalled conns and long logins. This brings
72       additional safety to reboot.
73     * When remote database throws error on logging in, notify clients.
74     * Removing a database from config and reloading works - all connections
75       are killed and the database is removed.
76     * Fake some parameters on console SHOW/SET commands to be more Postgres-like.
77       That was needed to allow psycopg to connect to console.
78       (client_encoding/default_transaction_isolation/datestyle/timezone)
79     * Make server_lifetime=0 disconnect server connection immediately
80       after first use.  Previously "0" made PgBouncer ignore server age.
81       As this behavior was undocumented, there should not be any users
82       depending on it.
83     * Internal improvements:
84       - Packet buffers are allocated lazily and reused.  This should bring
85         huge decrease in memory usage.  This also makes realistic to use
86         big pktbuf with lot of connections.
87       - Lot's of error handling improvements, PgBouncer should now
88         survive OOM situations gracefully.
89       - Use slab allocator for memory management.
90       - Lots of code cleanups.
91
92   = Fixes =
93
94     * Only single accept() was issued per event loop which could
95       cause connection backlog when having high amount of connection
96       attempts.  Now the listening socket is always drained fully,
97       which should fix this.
98     * Handle EINTR from connect().
99     * Make configure.ac compatible with autoconf 2.59.
100     * Solaris compatibility fixes (Magne Mæhre)
101
102 2007-12-10  -  PgBouncer 1.1.2  -  "The Hammer"
103
104   = Features =
105
106     * Disconnects because of server_lifetime are now separated by
107       (server_lifetime / pool_size) seconds.  This avoids pgbouncer
108       causing reconnect floods.
109
110   = Fixes =
111
112     * Online upgrade 1.0 -> 1.1 problems:
113       - 1.0 does not track server parameters, so they stay NULL
114         but 1.1 did not expect it and crashed.
115       - If server params are unknown, but client ones are set,
116         then issue a SET for them, instead complaining.
117     * Remove temp debug statements that were accidentally left
118       in code on INFO level, so they polluted logs.
119     * Unbroke debian/changelog
120
121   = Cleanup =
122
123     * reorder struct SBuf fields to get better alignment for buffer.
124
125 2007-10-26  -  PgBouncer 1.1.1  -  "Breakdancing Bee"
126
127   = Fixes =
128
129   * Server parameter cache could stay uninitialized, which caused
130     unnecessary SET of them.  This caused problem on 8.1 which
131     does not allow touching standard_conforming_strings.
132     (Thanks to Dimitri Fontaine for report & testing.)
133
134   * Some doc fixes.
135   * Include doc/fixman.py in .tgz.
136
137 2007-10-09  -  PgBouncer 1.1  -  "Mad-Hat Toolbox"
138
139   = Features =
140
141   * Keep track of following server parameters:
142
143       client_encoding  datestyle, timezone, standard_conforming_strings
144
145   * Database connect string enhancements:
146     - Accept hostname in host=
147     - Accept custom unix socket location in host=
148     - Accept quoted values: password=' asd''foo'
149
150   * New config var: server_reset_query, to be sent immidiately after release
151   * New config var: server_round_robin, to switch between LIFO and RR.
152   * Cancel pkt sent for idle connection does not drop it anymore.
153   * Cancel with ^C from psql works for SUSPEND / PAUSE.
154   * Print FD limits on startup.
155   * When suspending, try to hit packet boundary ASAP.
156   * Add 'timezone' to database parameters.
157   * Use longlived logfile fd.  Reopened on SIGHUP / RELOAD;
158   * Local connection endpoint info in SHOW SERVERS/CLIENTS/SOCKETS.
159
160   = Code cleanup =
161
162   * More debug log messages include socket info.
163   * Magic number removal and error message cleanup. (David Fetter)
164   * Wrapper struct for current pkt info.  Removes lot of compexity.
165
166   = Fixes =
167
168   * Detect invalid pkt headers better.
169   * auth_file modification check was broken, which made pgbouncer
170     reload it too often.
171
172 2007-06-18  -  PgBouncer 1.0.8  -  "Undead Shovel Jutsu"
173
174   = Fixes =
175
176   * Fix crash in cancel packet handling. (^C from psql)
177
178   = Features =
179
180   * PAUSE <db>; RESUME <db>; works now.
181   * Cleanup of console command parsing.
182   * Disable expensive in-list assert check.
183
184 2007-04-19  -  PgBouncer 1.0.7  -  "With Vitamin A-Z"
185
186   * Several error/notice packets with send() blocking between
187     triggered assert.  Fix it by removing flushing logic altogether.
188     As pgbouncer does not actively buffer anything, its not needed.
189     It was a remnant from the time when buffering was pushed to
190     kernel with MSG_MORE.
191   * Additionally avoid calling recv() logic when sending unblocks.
192   * List search code for admin_users and stats_users
193     mishandled partial finds.  Fix it.
194   * Standardise UNIX socket peer UID finding to getpeereid().
195
196 2007-04-12  -  PgBouncer 1.0.6  -  "Daily Dose"
197
198   * The "Disable maintenance during the takeover" fix could
199     disable maintenance altogether.  Fix it.
200   * Compilation fix for FreeBSD, <sys/ucred.h> requires <sys/param.h> there.
201     Thanks go to Robert Gogolok for report.
202
203 2007-04-11  -  PgBouncer 1.0.5  -  "Enough for today"
204
205   * Fix online-restart bugs:
206     - Set ->ready for idle servers.
207     - Remove obsolete code from use_client_socket()
208     - Disable maintenance during the takeover.
209
210 2007-04-11  -  PgBouncer 1.0.4  -  "Last 'last' bug"
211
212   * Notice from idle server tagged server dirty.
213     release_server() did not expect it.  Fix it
214     by dropping them.
215
216 2007-04-11  -  PgBouncer 1.0.3  -  "Fearless Fork"
217
218   = Fixes =
219
220   * Some error handling was missing in login path, so dying
221     connection there could trigger asserts.
222   * Cleanup of asserts in sbuf.c to catch problems earlier.
223   * Create core when Assert() triggers.
224
225   = New stuff =
226
227   * New config vars: log_connections, log_disconnections,
228     log_pooler_errors to turn on/off noise.
229   * Config var: client_login_timeout to kill dead connections
230     in login phase that could stall SUSPEND and thus online restart.
231
232 2007-03-28  -  PgBouncer 1.0.2  -  "Supersonic Spoon"
233
234   * libevent may report a deleted event inside same loop.
235     Avoid socket reuse for one loop.
236   * release_server() from disconnect_client() didnt look
237     it the packet was actually sent.
238
239 2007-03-15  -  PgBouncer 1.0.1  -  "Alien technology"
240
241   = Fixes =
242
243   * Mixed usage of cached and non-cached time, plus unsiged usec_t typedef
244     created spurious query_timeout errors.
245   * Fix rare case when socket woken up from send-wait could stay stalling.
246   * More fair queueing of server connections.  Before, a new query could
247     get a server connections before older one.
248   * Delay server release until everything is guaranteed to be sent.
249
250   = Features =
251
252   * SHOW SOCKETS command to have detailed info about state state.
253   * Put PgSocket ptr to log, to help tracking one connection.
254   * In console, allow SELECT in place of SHOW.
255   * Various code cleanups.
256
257 2007-03-13  -  PgBouncer 1.0  -  "Tuunitud bemm"
258
259   * First public release.
260