]> git.8kb.co.uk Git - pgpool-ii/pgpool-ii_2.2.5/blob - NEWS
Attempt to send a proper failure message to frontend when authentication
[pgpool-ii/pgpool-ii_2.2.5] / NEWS
1 2.2.5 (urukiboshi) 2009/10/4
2           * Version 2.2.5
3
4           This version fixes various bugs in 2.2.4 or before.
5
6           * Bug fixes
7
8           - Fix connection_count_down(). It decrements the connection
9         counter too much in some corner cases and causes online
10         recover never completes(Tatsuo)
11
12           - Detect frontend exiting while waiting for commands complete in
13         other cases such as internal locks are issued and Parse
14         (Tatsuo)
15
16           - Fix inifinit loop in reset_backend(Xavier Noguer, Tatsuo)
17
18           - Fix Parse() to print actual query when it detects kind
19         mismatch error(Tatsuo)
20
21           - Document enhancements(Tatsuo)
22
23 2.2.4 (urukiboshi) 2009/8/24
24           * Version 2.2.4
25
26           This version fixes various bugs in 2.2.3 or before.
27
28           * Bug fixes
29
30           - Fix possible bug introduced in pgpool-II 2.2.2.  Load balance
31                 control variables may remain not be restored and subsequent
32                 DML/DDL call might sent to only master node(Tatsuo)
33
34           - Send NOTICE message to frontend periodically if V2 protocol is
35                 used. This is ifdef out since it affectes visible change to
36                 applications.  2.2.3 unconditionaly sends param packet to
37                 client even it uses version 2 protocol, which is apparentlt
38                 wrong. Also tweak checking period from 1 second to 30 seconds
39                 since 1 second seems too aggressive(Tatsuo)
40
41           - Block signals before forking children rather after.  Otherwise
42                 parent will be killed by failover signal if it receives a
43                 signal before establishing signal handler(Tatsuo)
44
45           - Remove unnecessary spaces and tabs at the end of line(Jun Kuriyama)
46
47 2.2.3 (urukiboshi) 2009/8/11
48           * Version 2.2.3
49
50           This version fixes various bugs in 2.2.2 or before.
51
52           * Bug fixes
53
54           - Fix child process death if one of backends is not available(Tatsuo).
55
56           - Fix various parallel query bugs(Yoshiharu Mori)
57
58           - Fix message corruption for kid mismatch error(Akio Ishida)
59
60           - Now stetmemt_time works(Tatsuo)
61
62           - Enhance health checking to detect postmaster stopping by
63         SIGSTOP(Tatsuo)
64
65           - Detect frontend abnormal exiting while waiting for reply from
66         backend. This only works with V3 protocol(Tatsuo)
67
68           - Do not start internal transaction if command is CLUSTER
69         without arguments(Tatsuo)
70
71           - Fix bug with COPY FROM in that backend process remains after
72         COPY failed(Tatsuo)
73
74           * Enhancements
75
76           - Show last query for extended protocol(Akio Ishida)
77
78           - Allow to compile sql/pgpool-recovery/pgpool-recovery.c with
79         PostgreSQL 8.4(Tatsuo)
80
81 2.2.2 (urukiboshi) 2009/5/5
82           * Version 2.2.2
83
84           This version fixes various bugs in 2.2.1 or before. Please note
85           that an importan fix is made to avoid data incositency risk,
86           which could happen when client does not exit gracely(without
87           sending "X" packet) while pgpool is trying to send data to
88           it. This could happen with all version of pgpool-II.
89
90           * Bug fixes
91
92           - Ignore write error on frontend connection. This is needed to
93                 continue processing with backend, otherwise we risk data
94                 incositency(Tatsuo)
95
96           - Fix bug introduced in 2.2.1 (In master slave mode, sometimes
97                 DEALLOCATE fails). If prepared statement reused, pgpool
98                 hangs(Toshihiro)
99
100           - Fix pgpool crash when SQL command PREPARE and protocol level
101         EXECUTE are mixed. The bug was introduced in 2.2(Tatsuo)
102
103           - Avoid "unexpected EOF on client connection" error in PostgreSQL
104         when reset query fails(Tatsuo)
105                 
106 2.2.1 (urukiboshi) 2009/4/25
107           * Version 2.2.1
108
109           This version fixes various bugs in 2.2.
110
111           * Bug fixes
112
113           - In master slave mode, sometimes DEALLOCATE fails. This is
114                 caused by that the first PREPARE was not executed on the
115                 slave(Toshihiro)
116
117           - Update pgpool.spec along with related files(Devrim)
118
119           - Fix inser_lock so that it is ignored when protocol version is
120         2(Tatsuo)
121                 
122           - Remove excessive log messages regarding parameter change notice(Tatsuo)
123
124           - Add missing files to doc(Tatsuo)
125
126 2.2 (urukiboshi) 2009/2/28
127           * Version 2.2
128
129           This version enhances SERIAL data type handling and on line
130           recovery. Also an important bug, serializable transactions could
131           cause data inconsistency among DB nodes, is fixed. Query
132           cancelation, which never worked since pgpool-II was born, is
133           finally fixed.
134
135           * New features/enhancements
136
137                 - With insert_lock, now a table is locked only if it has
138           SERIAL data type and now the default value for insert_lock
139           is true(Tatsuo)
140
141                 - Start internal transaction other than INSERT, UPDATE, DELETE
142           and SELECT to keep node consistency(Tatsuo)
143
144                 - Add client_idle_limit_in_recovery directive. This will
145                   prevent 2nd stage of on line recovery from not going forward
146                   by idle clients sitting forever(Tatsuo)
147
148                 - Add pid_file_name directive which specifies a path to the
149                   file containing pgpool process id. "logdir" is no more used(Tatsuo)
150
151                 - Allow to load balance DECLARE, FETCH and CLOSE(Tatsuo)
152
153                 - Add -d option to pcp commands(Jun Kuriyama)
154
155                 - Enahnce kind mismatch error message to include originarl
156           query string(Tatsuo)
157
158           * Bug fixes
159
160             - Close all file descriptors when running in daemon mode.
161               Otherwise we inherit sockets from apache when it's
162               started by pgpoolAdmin. This results in that port 80 is
163               occupied for example.  Patch provided by Akio
164               Ishida. Also add chdir("/"). This is always good for
165               daemon programs(Tatsuo)
166
167             - Allow MD5 authentication in raw mode as stated in docs(Tatsuo)
168
169             - Check transaction serialization failure error in
170               serializable mode and abort all nodes if so. Otherwise
171               we allow data inconsistency among DB nodes(Tatsuo).
172
173               See following scenario: (M:master, S:slave)
174
175                         M:S1:BEGIN;
176                         M:S2:BEGIN;
177                         S:S1:BEGIN;
178                         S:S2:BEGIN;
179                         M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
180                         M:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
181                         S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
182                         S:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
183                         M:S1:UPDATE t1 SET i = i + 1;
184                         S:S1:UPDATE t1 SET i = i + 1;
185                         M:S2:UPDATE t1 SET i = i + 1; <-- blocked
186                         S:S1:COMMIT;
187                         M:S1:COMMIT;
188                         M:S2:ERROR:  could not serialize access due to concurrent update
189                         S:S2:UPDATE t1 SET i = i + 1; <-- success in UPDATE and data becomes inconsistent!
190
191                 - avoid kind mismatch error caused by "SET TRANSACTION
192                   ISOLATION LEVEL must be called before any query"(Tatsuo).
193
194                    This could happen in following scenario:
195
196                 M:S1:BEGIN;
197             S:S1:BEGIN;
198                         M:S1:SELECT 1; <-- only sent to MASTER
199                         M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
200                         S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
201                         M: <-- error
202                         S: <-- ok since no previous SELECT is sent. kind mismatch error occurs!
203
204                 - Process status display has extra space on FreeeBSD(Jun Kuriyama)
205
206                 - Fix incorrect kind mismatch detection case. e.g: BEGIN;
207                   BEGIN; (Tatsuo)
208
209             - If PostgreSQL sends lots of DEBUG message, sometimes pgpool
210               complains:
211                   2008-11-08 22:41:53 ERROR: pid 23744: do_command: backend does not
212                   return ReadyForQuery. This due to a wrong assumption for the
213                   client/server protocol(Tatsuo)
214
215                 - Fix the case when sending an erronous query to abort
216           transaction. It assumed that after sending an error query,
217           always ReadyForQuery came right after that. If some
218           debugging or logging verboseness is set, PostgreSQL might
219           sends NOTICE before ReadyForQuery(Tatsuo)
220
221                 - Query cancelation now works. It never worked since pgpool-II
222           was born(Tatsuo)
223
224                 - Fix online recovery to wait for failback done before
225           allowing to accept connections from clients. It was supposed
226           to work like this but actually was not since the day 0 when
227           online recovery was born. Without the fix there could be
228           potential data inconsistency among DB nodes(Tatsuo)
229
230                 - Fix pgpool-II crash after on line recovery. This happens
231           after the failback process adds a recovered node which has
232           no connection to the node(Tatsuo)
233
234                 - Fix pgpool-II errors when postgresql.conf is reloaded. This
235           was caused by parameter status packet sent asynchronously
236           from backend, which indicates the internal setting of
237           backend has been changed(Tatsuo)
238
239           * Incompatible changes
240
241                 - Always fail over and restart all children. Before we do
242                   restart only if master has not been changed. This is
243                   wrong. If we have trouble with network cable or something,
244                   TCP/IP stack keeps on retrying for long time and the only
245                   way to prevent it is restarting process(Tatsuo)
246
247                 - "logdir" is no more used. Instead use
248           "pid_file_name"(Tatsuo)
249
250                 - Default value for insert_lock is now true(Tatsuo)
251
252 2.1 (inamiboshi) 2008/7/25
253       * Version 2.1
254
255       * New feature
256         - Add '%m' format to failover_command and failback_command to
257           obtain new master node ID. (Yoshiyuki)
258         - Add '%m' format to failover_command and failback_command to
259           obtain old master node ID. (Yoshiyuki)
260         - Add new directive "recovery_timeout" to specify recovery
261           timeout in second. (Taiki)
262         - Add optino '-v' to print pgpool version. (Yoshiyuki)
263
264       * Incompatibility
265         - Restrict pgpool_recovery() and pgpool_remote_start()
266           functions to superusers. (Yoshiyuki)
267         - Do not create a connection pool to standby node in raw
268           mode. (Yoshiyuki)
269         - Remove "replication_timeout" parameter. (Yoshiyuki)
270           - This enabled if replication_strict was false. However,
271             replication_strict was already removed.
272         - Ignore timeout argument of pcp commands. (Taiki)
273         - Do not replicate "COPY TO STDOUT" when replicate_select is
274           false. (Yoshiyuki)
275
276       * Bug fix
277       ** General
278         - Fix crash when CloseComplete message was
279           received. (Yoshiyuki)
280         - Improve network I/O routine. (Yoshiyuki)
281         - Fix compile errors on Solaris 10. (Yoshiyuki)
282         - Improve log messages of health check and recovery. (Tatsuo)
283         - Change error level of the "failed to read kind from
284           frontend" message from ERROR to LOG. (Yoshiyuki)
285         - Fix failover failure in raw mode. (Taiki)
286         - Fix zombie process bug. (Yoshiyuki)
287         - Fix health_check_timeout to work correctly. (Kenichi Sawada)
288         - Support ps status on FreeBSD. (ISHIDA Akio)
289         - Improve bind(2) failure report. (Jun Kuriyama)
290         - Improve error message when client authentication
291           failed. (Tatsuo)
292
293       ** Replication
294         - Fix replicate_select to work correctly. (Tatsuo)
295         - Fix a wrong rollback bug with extended query. (Yoshiyuki)
296         - Fix a bug with asynchronous query. (Yoshiyuki)
297         - Fix hint clause handling like /*REPLICATION*/ with extended
298           query. (Yoshiyuki)
299         - Fix crash of "DEALLOCATE ALL". (Yoshiyuki)
300         - Fix hang up when a backend node does immediate
301           shutdown. (Yoshiyuki)
302         - Fix hang up online recovery in high load. (Yoshiyuki)
303         - Fix hang up with extended query protocol when SELECT is
304           failed inside a transaction block. (Yoshiyuki)
305
306       ** Master Slave
307         - Fix load balancing to work correctly. (Yoshiyuki)
308         - Fix crash if SET, PREPARE or DEALLOCATE is executed inside a
309           transaction block. (Yoshiyuki)
310
311       ** Parallel query
312         - Fix INSERT failure. (Yoshiharu)
313         - Fix syntax error when a query contains "AS" in FROM
314           clause. (sho)
315         - Fix Hung up when two or more statment was executed 
316           in parallel mode (Yoshiharu)
317         - Fix Query rewriting of Join Expression and DISTINCT ON
318           (Yoshiharu)
319
320 2.0.1 (hikitsuboshi) 2007/11/21
321       * Version 2.0.1
322       * Fix process down with UPDATE or DELETE query.(Yoshiyuki)
323       * Send a syntax query only to a master node if master_slave is
324         true.(Yoshiyuki)
325
326 2.0 (hikitsuboshi) 2007/11/16
327       * Version 2.0
328
329       * Incompatibility since pgpool-II 1.x
330         - the default value for ignore_leading_white_space is now
331           true(Yoshiyuki) 
332         - replicate_strict is removed. The value is always
333           true(Yoshiyuki)
334
335       * General
336         - Allow to reload pgpool.conf(Yoshiyuki)
337         - The paraser is now compatible with PostgreSQL 8.3(Yoshiyuki)
338         - Add new directive "failover_command" to specify command when
339           a node is detached(Yoshiyuki)
340         - Add new directive "client_idle_limit" to specify the time out since
341           the last command is arrived from a client(Tatsuo)
342   
343       * Replication
344         - Always start a new transaction even if the query is not in
345           an explicit transaction to enhance the reliabilty of
346           replication(Yoshiyuki)
347         - Enhance the performance of replication for write
348           queries. Now the worst case is 1/2 compared with single DB
349           node regardless the number of DB nodes. Previous release
350           tends to degrade according to the numer of DB
351           nodes(Yoshiyuki)
352         - Add "online recovery" which allows to add a DB node and sync
353           with other DB nodes without stopping the pgpool
354           server(Yoshiyuki)
355         - Abort a transaction if INSERT, UPDATE and DELETE reports
356           different number of result rows(Yoshiyuki)
357
358           x=# update t set a = a + 1;
359           ERROR:  pgpool detected difference of the number of update tuples
360           HINT:  check data consistency between master and other db node
361
362         - If the results from DB nodes do not match, select the
363           possible correct result by "decide by majority". Previous
364           release always trust the result of the master DB
365           node(Yoshiyuki)
366         - Allow load balance in V2 frontend/backend protocol(Yoshiyuki)
367
368       * Parallel query
369         - Allow "partial replication" to enhance the performance of
370           the parallel query(Yoshiharu)
371
372 1.3 (sohiboshi) 2007/10/23
373       * Version 1.3
374       * Add new "authentication_timeout" directive, being the default
375         value is 60. (Yoshiyuki)
376         - Maximum time in seconds to complete client authentication.
377       * Reject a connection when startup packet length is greater than
378         10,000 byte. (Yoshiyuki)
379       * Fix invalid memory access when pgpool processed DEALLOCATE
380         statement. (Yoshiyuki)
381       * Fix hang up in load balance mode. (Yoshiyuki)
382         - This was introduced in V1.2.
383       * Fix segmentation fault in 64-bit environment when query cache
384         is enable. (Yoshiyuki)
385
386 1.2.1 (tomoboshi) 2007/09/28
387       * Version 1.2.1
388       * Fix deadlock while processing Parse message. (Yoshiyuki)
389       * Fix memory leak in reset_prepared_list(). (Yoshiyuki)
390       * Fix compile error on FreeBSD 4.11. (Yoshiyuki)
391       * SET, PREPARE and DEALLOCATE statements are replicated in
392         master/slave mode. (Yoshiyuki)
393
394 1.2 (tomoboshi) 2007/08/01
395       * Version 1.2
396       * Add new "replicate_select" directive, being the default value
397         is false. (Yoshiyuki) 
398         - If it is true, SELECT query is replicated. This behavior is
399           same as V3.2 or earlier.
400       * Improve signal handling. (Yoshiyuki)
401         - Occasionaly, zombie processes were remained. Or processes
402           were unstable.
403       * Fix hang up when SELECT was error inside a transaction
404         block. The bug was introduced in V3.3. (Yoshiyuki)
405       * Fix PREPARE/EXECUTE handling in master slave mode. (Yoshiyuki)
406       * Fix "kind mismatch error" when deadlock error 
407       * Fix hang up and SEGV in extended query protocol when a warning
408         SQL like "SELECT '\'';" executed. (Yoshiyuki)
409       * Fix hang up when postmaster did fast or immediate
410         shutdown. (Yoshiyuki)
411       * Fix memory leak when connection cache was full. (Yoshiyuki)
412       * Load balancing node is selected when a session
413         starts. (Yoshiyuki)
414       * Fix buffer overrun if connection_life_time was
415         set. (Yoshiyuki)
416
417 1.1.1 (amiboshi) 2007/6/15
418       * Version 1.1.1
419       * Fix "kind mismatch" bug when load_balance_mode is true
420         introduced in 1.1 (Yoshiyuki)
421       * Fix deadlock with extended query protocol(Yoshiyuki)
422       * Fix numerous bugs with protocol V2(Yoshiyuki)
423
424 1.1 (amiboshi) 2007/5/25
425       * Version 1.1
426       * Support HBA authentication(Taiki)
427       * Support log_connections(Taiki)
428       * Support log_hostname(Taiki)
429       * Show pgpool status in ps command(Taiki)
430       * Fix compile error on MacOS X(Yoshiyuki)
431       * Allow load balancing with extended protocol(Yoshiyuki)
432       * Improve replication. SELECT nextval() and SELECT setval() are
433         now replicated. (Yoshiyuki)
434       * Change SELECT query is only sent to the master node. (Yoshiyuki)
435         - Use /*REPLICATION*/ comment to repliate a SELECT query.
436       * Fix unexpected failover error due to receiving an interrupt
437         signal while connecting to the backend. (Yoshiyuki)
438       * Add "pgpool.pam" file, for PAM configuration file, to be
439         installed under "$PREFIX/share/pgpool-II/". (Taiki)
440       * Fix core dump when executing large SQL. (Yoshiyuki)
441
442 1.0.2 (suboshi) 2007/02/12
443       * Version 1.0.2
444       * Fix bug when executing large SQL to prevent pgpool goes into
445         infinite loop(Yoshiyuki)
446       * Fix bug with extended protocol handling(Yoshiyuki)
447       * Enhance log for failover and failback(Tatsuo)
448       * Add backend status info to show pool_status(Tatsuo)
449       * Fix UPDATE/DELETE returns wrong number of rows(Tatsuo)
450       * Fix configure fails to link libpq when used with older
451         version of gcc(Yoshiyuki)
452       * Fix DEALLOCATE treatment when used with PHP:PDO DBD-Pg(Yoshiyuki)
453       * Do not load balance SELECT FOR UPDATE, SELECT INTO and SELECT
454         with comments. This behavior is compatible with
455         pgpool-I(Yoshiyuki)
456       * Obtain path to libpq using pg_config. --with-pgsql will be
457         removed in next version(Yoshiyuki) 
458       * When reusing connection pool, reconnect to backend if the
459         socket is broken(Yoshiyuki)
460       * Fix error with configure when used with PostgreSQL
461         7.4(Yoshiyuki)
462
463 1.0.1 (suboshi) 2006/09/22
464       * Version 1.0.1
465       * This version fixes bugs including master/slave not being
466         working, deadlock problem in COPY FROM STDIN. Also documents
467         are improved.
468
469 1.0.0 (suboshi) 2006/09/08
470       * Initial release
471
472 Local Variables:
473 mode: outline
474 End: