-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathNEWS
7627 lines (5162 loc) · 298 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
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Release Notes
===============================================================================
3.4 Series (2014/11/07 - )
===============================================================================
3.4.3 (tataraboshi) 2015/07/24
* Version 3.4.3
This is a bugfix release against pgpool-II 3.4.2.
__________________________________________________________________
* Bug fixes
- Fix "cannot find xlog functions" error in pgpool-recovery
(Muhammad Usama)
The argument data type of PostgreSQL's pg_xlogfile_name() function
has been changed from text to pg_lsn since PostgreSQL 9.4. And
pgpool-recovery was still trying to locate the function by old
signature.
- Fix problem with memory cache invalidation (Muhammad Usama)
The internal buffer for storing the table oids needs to be homed in
long living memory context as it has to survive throughout the child
life.
See [pgpool-general: 3643] for details.
- Pass empty string parameters in failover command when pgpool-II
does not have a value for any particular parameter (Muhammad Usama)
Instead of omitting the values for the parameters when pgpool-II does
not have any value for a particular parameter, it now passes an empty
string to the failover command. This makes sure that failover script
will always receive the exact number of expected parameters.
- pgpool-II should use the local definition of snprintf functions only
if they are not provided by OS (Muhammad Usama)
- Add debug info to show how much shared memory is allocated
(Tatsuo Ishii)
- Downgrading the error level for EOF on backend connection for main
process (Muhammad Usama)
Throwing the FATAL error when EOF is encountered with backend is very
harsh in pgpool main process and can cause undesirable behavior.
Downgrading it to simple ERROR.
- doc: Clarify load balancing condition (Tatsuo Ishii)
- doc: Clarify description of pcp_promote_node (Tatsuo Ishii)
It does not actually promote PostgreSQL standby.
- doc: Fix outdated limitation description about load balancing using
JDBC driver (Tatsuo Ishii)
Even if autocommit is false, load balancing is possible in certain
conditions.
- Fix a misplaced code which makes a log code unreachable and rephrase
the log message (Muhammad Usama)
- Fix a problem in elog.c when forwarding a message to frontend clients
(Muhammad Usama)
Error while forwarding the message to the frontend client can
potentially cause the infinite recursion and terminate the child with
ERRORDATA_STACK_SIZE exceeded error.
Fix is to check the recursion depth of send_message_to_frontend()
function and pulling the plug if it is more than two levels deep.
- Fix "select() system call interrupted" error (Tatsuo Ishii)
The health check process complains above and then:
ERROR: failed to make persistent db connection
DETAIL: connection to host:"x.x.x.x:5432 failed
However, the healthchek triggers neither fail over nor retrying. So,
except the annoying messages above, everything goes well. This could
occur more easily if 1) num_init_children is big and 2) pgpool
children go into idle state (no query arrived from client for
child_life_time seconds).
Original bug report is [pgpool-general: 3756] Connection Interrupted.
Patch created by Tatsuo Ishii. Enhancement from Usama.
- Fix the case when user table includes spaces (Tatsuo Ishii)
For example if table names including spaces are used, pgpool-II cannot
be handled correctly by the internal functions which access system
catalogs and it results in SQL errors. Solution is, to always use
delimited identifier.
Per bug #136.
http://www.pgpool.net/mantisbt/view.php?id=136
Also see [pgpool-general: 3818].
- Allow to use in-memory query cache size more than 4GB (Tatsuo Ishii)
This should have been allowed since in memory query cache was born.
- Do not send a query for checking insert lock in non replication mode
with extended query (Tatsuo Ishii)
- Save pgpool_status to disk each time when it is changed
(Tatsuo Ishii)
Previously, pgpool-II saves pgpool_status file when pgpool-II
explicitly is going shutdown. This is fine in most cases and it saves
slight CPU cycles. But if pgpool-II killed abnormally or the system
forces pgpool-II to go down by OOM killer, next pgpool-II restarting
could load obsolete status file.
===============================================================================
3.4.3 (tataraboshi) 2015/07/24
* Version 3.4.3
This is a bugfix release against pgpool-II 3.4.2.
__________________________________________________________________
* Bug fixes
- Fix "cannot find xlog functions" error in pgpool-recovery
(Muhammad Usama)
The argument data type of PostgreSQL's pg_xlogfile_name() function
has been changed from text to pg_lsn since PostgreSQL 9.4. And
pgpool-recovery was still trying to locate the function by old
signature.
- Fix problem with memory cache invalidation (Muhammad Usama)
The internal buffer for storing the table oids needs to be homed in
long living memory context as it has to survive throughout the child
life.
See [pgpool-general: 3643] for details.
- Pass empty string parameters in failover command when pgpool-II
does not have a value for any particular parameter (Muhammad Usama)
Instead of omitting the values for the parameters when pgpool-II does
not have any value for a particular parameter, it now passes an empty
string to the failover command. This makes sure that failover script
will always receive the exact number of expected parameters.
- pgpool-II should use the local definition of snprintf functions only
if they are not provided by OS (Muhammad Usama)
- Add debug info to show how much shared memory is allocated
(Tatsuo Ishii)
- Downgrading the error level for EOF on backend connection for main
process (Muhammad Usama)
Throwing the FATAL error when EOF is encountered with backend is very
harsh in pgpool main process and can cause undesirable behavior.
Downgrading it to simple ERROR.
- doc: Clarify load balancing condition (Tatsuo Ishii)
- doc: Clarify description of pcp_promote_node (Tatsuo Ishii)
It does not actually promote PostgreSQL standby.
- doc: Fix outdated limitation description about load balancing using
JDBC driver (Tatsuo Ishii)
Even if autocommit is false, load balancing is possible in certain
conditions.
- Fix a misplaced code which makes a log code unreachable and rephrase
the log message (Muhammad Usama)
- Fix a problem in elog.c when forwarding a message to frontend clients
(Muhammad Usama)
Error while forwarding the message to the frontend client can
potentially cause the infinite recursion and terminate the child with
ERRORDATA_STACK_SIZE exceeded error.
Fix is to check the recursion depth of send_message_to_frontend()
function and pulling the plug if it is more than two levels deep.
- Fix "select() system call interrupted" error (Tatsuo Ishii)
The health check process complains above and then:
ERROR: failed to make persistent db connection
DETAIL: connection to host:"x.x.x.x:5432 failed
However, the healthchek triggers neither fail over nor retrying. So,
except the annoying messages above, everything goes well. This could
occur more easily if 1) num_init_children is big and 2) pgpool
children go into idle state (no query arrived from client for
child_life_time seconds).
Original bug report is [pgpool-general: 3756] Connection Interrupted.
Patch created by Tatsuo Ishii. Enhancement from Usama.
- Fix the case when user table includes spaces (Tatsuo Ishii)
For example if table names including spaces are used, pgpool-II cannot
be handled correctly by the internal functions which access system
catalogs and it results in SQL errors. Solution is, to always use
delimited identifier.
Per bug #136.
http://www.pgpool.net/mantisbt/view.php?id=136
Also see [pgpool-general: 3818].
- Allow to use in-memory query cache size more than 4GB (Tatsuo Ishii)
This should have been allowed since in memory query cache was born.
- Do not send a query for checking insert lock in non replication mode
with extended query (Tatsuo Ishii)
- Save pgpool_status to disk each time when it is changed
(Tatsuo Ishii)
Previously, pgpool-II saves pgpool_status file when pgpool-II
explicitly is going shutdown. This is fine in most cases and it saves
slight CPU cycles. But if pgpool-II killed abnormally or the system
forces pgpool-II to go down by OOM killer, next pgpool-II restarting
could load obsolete status file.
===============================================================================
3.4.2 (tataraboshi) 2015/04/08
* Version 3.4.2
This is a bugfix release against pgpool-II 3.4.1.
__________________________________________________________________
* Bug fixes
- rpm: Fix %tmpfiles_create to not be executed in RHEL/CentOS 6
(Nozomi Anzai)
- Fix to reset on_exit call back functions in exec_if_cmd and exec_ping
worker processes (Muhammad Usama)
exec_if and exec_ping child processes were inheriting the parent exit
callback functions which could result in undesired behavior if one of
these commands fails. Fixed by adding on_exit_reset() at child start-up
in both processes.
- Fix to use void * type for receiving return value of thread function
(Yugo Nagata)
Previously int type was used and this could occur stack buffer
overflow. This caused an infinity loop of ping error at bringing
up or down VIP.
- Fix to set SIGCHLD to SIG_DFL instead of SIG_IGN in watchdog processes
(Yugo Nagata)
When using waitpid, it isn't necessary to set SIGCHLD to SIG_IGN.
Rather, it is harmful, and due to this it was regarded that ping
command exited abnormally in error even when this succeeded.
- Fix to use waitpid instead of wait in exec_ifconifg (Yugo Nagata)
- Remove an unnecessary include directive (Yugo Nagata)
- Enlarge POOLCONFIG_MAXDESCLEN to 80 (Tatsuo Ishii)
This is used in show pool_status command and limits the length of
parameter description. Unfortunately recovery_timeout description is
64 chars, which is 1 byte longer than former definition of the macro.
- doc: Update document of condition for load balancig (Yugo Nagata)
Load balancing is possible in an explicit transaction block
even in replication mode since 3.3.0.
- Support SSL certificate chains in the certificate file for incoming
frontend connections (Muhammad Usama)
- Use to_regclass if available in time stamp rewriting in replication
mode (Tatsuo Ishii)
- Fix to not emits a fatal error message when clear text password auth
is used (Muhammad Usama)
The problem was introduced in pgpool-II after inclusion of exception
manager. EOF on the frontend connection during client authentication
should not be treated as an error when the password authentication
method is used. psql disconnects from the server in such case to get
the password from the terminal, reconnects and sends the read password
to server.
- previous session for the same child had exited because of some ERROR.
(Muhammad Usama)
- Fix a hang when an error occurs in a transaction block with
replication mode (Yugo Nagata)
When an error occurs at a backend node in a transaction block with
replication mode, pgpool-II sends an invalid query to other
backends to sync transaction states. However, previously, this was
not sent to master node, and pgpool-II was waiting for master's
response forever.
- Fix a problem with pcp_detach_node about graceful node detach (Muhammad Usama)
When graceful node detach is requested gracefully, pcp_detach_node should
check if it is allowed to process detach_node command on the particular
node before blocking the incoming connections and closing the existing
connections.
- doc: Update table and flowchart of where a query should be sent to
(Yugo Nagata)
- rpm: pgpool.spec is required only in RHEL/CentOS 7 (Nozomi Anzai)
- Fix a compilation issue about sighandler_t type on BSD variants
(Muhammad Usama)
===============================================================================
3.4.1 (tataraboshi) 2015/02/05
* Version 3.4.1
This is a bugfix release against pgpool-II 3.4.0.
__________________________________________________________________
* Bug fixes
- RPM: Add to support for memcached. (Tatsuo Ishii)
- Fix number of parameters of pgpool_recovery from 3 to 4. (Tatsuo Ishii)
This really should be done before releasing 3.4.0.
- test: Allow pgpool_setup to set configuration file directory by setting
environment variable PGPOOLDIR (Tatsuo Ishii)
- RPM: Rename RPM file (Yugo Nagata)
Rename filename to include the RHEL version number like PostgreSQL's
official RPM file. (e.g. pgpool-II-pg93-3.4.0-2pgdg.rhel6.x86_64.rpm)
- Fix node id range check bug in trigger_failover_command(). (Tatsuo Ishii)
The node id should be lower than NUM_BACKENDS. Probably harmless since
callers never pass node ids greater or equal to NUM_BACKENDS.
- Fix occasional stuck that occures when a NOTIFY message is sent from
a backend. (Muhammad Usama)
The issue happens in master slave mode with load balancing when the
client is doing extended query messaging.
per bug #116
http://www.pgpool.net/mantisbt/view.php?id=116
- test: Fix failover script of pgpool_setup to use absolute path to the
database cluster (Tatsuo Ishii)
- test: Reorganize port numbers assigned in pgpool_setup (Tatsuo Ishii)
Assign base port (11000 by default) to pgpool, base port + 1 to pcp,
port + 2 to PostgreSQL node0, port + 3 to PostgreSQL node1 and so on.
- Fix a bug that pgpool-II 3.4 can't cancel query (Muhammad Usama)
- test: Add regression test for cancelling query (Muhammad Usama)
- Fix to not use non-thread-safe APIs in thread functions
(Muhammad Usama)
pgpool-II has borrowed the Memory and Exception managers from PostgreSQL
which never utilizes the threads so its APIs are not thread safe.
Previously, those API functions which manipulate the global variables
in thread functions, and it caused to undefined behavior or a
segmentation fault. Especially, the main process could die silently.
- test: Add memory leak regression test (Tatsuo Ishii)
- Fix a memory leak with long-lived connections (Muhammad Usama)
Problem reporeted in [pgpool-general: 3325].
- Change the log level of "Frontend Terminated" message to DEBUG1 from LOG
(Muhammad Usama)
- Fix ill signal befavior of SIGCHLD in exec_ifconfig() (Tatsuo Ishii)
For some reason SIGCHLD was set to SIG_IGN *and* tries to wait
child process which always fails because SIGCHLD is never delivered.
Due to this "ifconfig up" fails when switching to watchdog master.
See "[pgpool-general: 3310] for more details.
- Allow $_IP_$ having address prefix in if_up_cmd and if_down_cmd
(Muhammad Usama)
Previously, it is assumed that "$_IP_$" keyword will always have a
white space at the end, and when "$_IP_$" has address prefix (e.g.
$_IP_$/24), this prefix was ignored.
Per bug #122.
http://www.pgpool.net/mantisbt/view.php?id=122
- Fix to not send signal to init process (Muhammad Usama)
This is more of a guard against a situation where a crash of the
pgpool main process can make the child processes to send the signal
to system's init process.
Per bug #119.
http://www.pgpool.net/mantisbt/view.php?id=119
- RPM: Fix "error: Installed (but unpackaged) file(s) found" while
creating RPMs for PostgreSQL 9.4 (Tatsuo Ishii)
- Allow "show pool_nodes" to print node ids having more than one digits
(Muhammad Usama)
Problem reported in [pgpool-general: 3374].
- Prevent "WARNING: failed to execute regex matching, pattern is NULL"
message that could happen when application name is not set in the old
clients (Tatsuo Ishii)
- Fix pgpool main process to shutdown in case of child process start-up
failures (Muhammad Usama)
Problem rported in [pgpool-general: 3358].
- Fix a segmentation fault that could happen in child process error
(Muhammad Usama)
Problem reported in [pgpool-general: 3377].
- Fix occasional failure in regression test '004.watchdog' (Yugo Nagata)
The patch provided by uehara in bug #127.
http://www.pgpool.net/mantisbt/view.php?id=127
- Fix client connection leak (Tatsuo Ishii)
Since 3.4.0 pgpool-II child does not close the connection to client
when it ends the session. This leads to serious "CLOSE_WAIT" flood,
which makes pgpool-II unusable since no new connection from clients
accepted.
Problem reported by Pablo Sanchez in [pgpool-general: 3394].
- Restore SIGCHLD handler to its original after executing if_up/down_cmd
(Yugo Nagata)
Previously SIGCHLD was set to SIGIGN always after if_up/down_cmd.
This led to a incorrect error handling of ping or other commands
execution, and warning messages were output to log even when the
command exited successfully.
- RPM: Add pgpool.service for systemd in RHEL/CentOS 7 (Nozomi Anzai)
- Fix process termination after several reload with enabled_pool_hba
(Muhammad Usama)
- Tighten up checking for app_name_redirect_preference_list and
database_redirect_preference_list (Tatsuo Ishii)
Before empty application name or database name or invalid DB node
number were silently accepted. Now they are strictly checked and
let raise fatal error when starting up.
Problem reported in [pgpool-general-jp: 1337].
- RPM: Change to use systemd if it is available (Nozomi Anzai)
- Fix the behavior of "client_min_messages" configuration parameter
(Muhammad Usama)
This parameter controls the minimum message levels to be sent to the
frontend. Previously, regardless of the value of the parameter all
the messages with severity less than NOTICE level were not being
forwarded to the client.
===============================================================================
3.4.0 (tataraboshi) 2014/11/07
* Version 3.4.0
This is the first version of pgpool-II 3.4 series.
That is, a "major version up" from 3.3 series.
__________________________________________________________________
* Incompatible changes
- Parallel query mode is obsoleted and is removed from
pgpool.conf. This is due to the very few users using the mode
(and the relatively high cost to maintain it). Actual codes for
the mode are still there and users can use the mode if they
specify necessary parameters in pgpool.conf. Note, however, the
next version of pgpool-II (will be 3.5.0) will actually remove
the code.
- "print_timestamp" parameter is removed. Instead new
"log_line_prefix" should be used.
- Recovery script now accepts 4 parameters, rather than 3 (the 4th
parameter is the port number of master PostgreSQL). Existing
3-parameter-style recovery scripts can be used if you don't care
about information provided by the 4th parameter.
__________________________________________________________________
* New features
- Allow fine control of load balancing by using application name
or database name. For example, if a client has particular
application name, read queries can be redirect to master node,
rather than to one of slave nodes (Tatsuo Ishii)
- Allow to print pgpool-II process names in the log output. New
parameter "log_line_prefix", which is the printf-style string
that is output at the beginning of each log line (Muhammad Usama)
- Allow to control log verbosity like PostgreSQL. For this purpose
new parameters "log_error_verbosity", "client_min_messages",
"log_min_messages" are added (Muhammad Usama)
- Allow to use SQL comments without disturbing load balancing if
new parameter "allow_sql_comments" is on. If it's off, previous
behavior is kept (Tatsuo Ishii)
- Allow to skip unlogged tables checking by using new parameter
"check_unlogged_table". This reduces the number of pgpool-II's
internal catalog look up queries and enhances performance
(Tatsuo Ishii)
- Prevent listen backlog overflow by using new parameter
"listen_backlog_multiplier" for very busy systems (Tatsuo Ishii)
- Prevent connection timeout to backend by using new parameter
"connect_timeout". This is useful in unstable networks
(Tatsuo Ishii)
__________________________________________________________________
* Enhancements
- Builtin SQL parser is now compatible with PostgreSQL 9.4 (Muhammad Usama)
- Import PostgreSQL's memory manager and exception manager (Muhammad Usama)
- Reorganize source code tree (Muhammad Usama)
- The status file "pgpool_status" is now a plain ASCII file. This
allows to register down PostgreSQL nodes before pgpool-II
starts for example (Tatsuo Ishii)
- Allow to use IPv6 address for PostgreSQ (Michael Stapelberg)
- Allow to use IPv6 bind address for pgpool-II (Michael Stapelberg)
- Rename all occurrence of "on memory query cache" to "in memory
query cache" because latter is more correct in English (Tatsuo Ishii)
- Add 4th paramter "master node port number" to recovery script
(Tatsuo Ishii)
- Allow to handle more than 3 database nodes in pgpool_setup
(Tatsuo Ishii)
__________________________________________________________________
* Bug fixes (since 3.3.4)
- Fix failover deadlock problem in watchdog (Muhammad Usama). See
bug #105 and [pgpool-committers: 2195] for more details.
- As per the PostgreSQL specification, calling close on non
existing portals is not an error. So on the same footings this
commit ignores all such packets and return the 'close complete'
message to client with out going to backend (Muhammad Usama)
- Fix many issues/bugs found by Coverity (Muhammad Usama, Tatsuo Ishii)
===============================================================================
3.3 Series (2013/07/30 - )
===============================================================================
3.3.7 (tokakiboshi) 2015/07/24
* Version 3.3.7
This is a bugfix release against pgpool-II 3.3.6.
__________________________________________________________________
* Bug fixes
- Fix "cannot find xlog functions" error in pgpool-recovery
(Muhammad Usama)
The argument data type of PostgreSQL's pg_xlogfile_name() function
has been changed from text to pg_lsn since PostgreSQL 9.4. And
pgpool-recovery was still trying to locate the function by old
signature.
- Pass empty string parameters in failover command when pgpool-II
does not have a value for any particular parameter (Muhammad Usama)
Instead of omitting the values for the parameters when pgpool-II does
not have any value for a particular parameter, it now passes an empty
string to the failover command. This makes sure that failover script
will always receive the exact number of expected parameters.
- doc: Clarify load balancing condition (Tatsuo Ishii)
- doc: Clarify description of pcp_promote_node (Tatsuo Ishii)
It does not actually promote PostgreSQL standby.
- doc: Fix outdated limitation description about load balancing using
JDBC driver (Tatsuo Ishii)
Even if autocommit is false, load balancing is possible in certain
conditions.
- Fix "select() system call interrupted" error (Tatsuo Ishii)
The health check process complains above and then:
ERROR: failed to make persistent db connection
DETAIL: connection to host:"x.x.x.x:5432 failed
However, the healthchek triggers neither fail over nor retrying. So,
except the annoying messages above, everything goes well. This could
occur more easily if 1) num_init_children is big and 2) pgpool
children go into idle state (no query arrived from client for
child_life_time seconds).
Original bug report is [pgpool-general: 3756] Connection Interrupted.
Patch created by Tatsuo Ishii. Enhancement from Usama.
- Fix the case when user table includes spaces (Tatsuo Ishii)
For example if table names including spaces are used, pgpool-II cannot
be handled correctly by the internal functions which access system
catalogs and it results in SQL errors. Solution is, to always use
delimited identifier.
Per bug #136.
http://www.pgpool.net/mantisbt/view.php?id=136
Also see [pgpool-general: 3818].
- Allow to use in-memory query cache size more than 4GB (Tatsuo Ishii)
This should have been allowed since in memory query cache was born.
- Do not send a query for checking insert lock in non replication mode
with extended query (Tatsuo Ishii)
===============================================================================
3.3.6 (tokakiboshi) 2015/04/08
* Version 3.3.6
This is a bugfix release against pgpool-II 3.3.5.
__________________________________________________________________
* Bug fixes
- rpm: Fix %tmpfiles_create to not be executed in RHEL/CentOS 6
(Nozomi Anzai)
- Fix to use void * type for receiving return value of thread function
(Yugo Nagata)
Previously int type was used and this could occur stack buffer
overflow. This caused an infinity loop of ping error at bringing
up or down VIP.
- Fix to set SIGCHLD to SIG_DFL instead of SIG_IGN in watchdog processes
(Yugo Nagata)
When using waitpid, it isn't necessary to set SIGCHLD to SIG_IGN.
Rather, it is harmful, and due to this it was regarded that ping
command exited abnormally in error even when this succeeded.
- Remove an unnecessary include directive (Yugo Nagata)
- Enlarge POOLCONFIG_MAXDESCLEN to 80 (Tatsuo Ishii)
This is used in show pool_status command and limits the length of
parameter description. Unfortunately recovery_timeout description is
64 chars, which is 1 byte longer than former definition of the macro.
- doc: Update document of condition for load balancig (Yugo Nagata)
Load balancing is possible in an explicit transaction block
even in replication mode since 3.3.0.
- Support SSL certificate chains in the certificate file for incoming
frontend connections (Muhammad Usama)
- Use to_regclass if available in time stamp rewriting in replication
mode (Tatsuo Ishii)
- Fix a hang when an error occurs in a transaction block with
replication mode (Yugo Nagata)
When an error occurs at a backend node in a transaction block with
replication mode, pgpool-II sends an invalid query to other
backends to sync transaction states. However, previously, this was
not sent to master node, and pgpool-II was waiting for master's
response forever.
- Fix a problem with pcp_detach_node about graceful node detach (Muhammad Usama)
When graceful node detach is requested gracefully, pcp_detach_node should
check if it is allowed to process detach_node command on the particular
node before blocking the incoming connections and closing the existing
connections.
- doc: Update table and flowchart of where a query should be sent to
(Yugo Nagata)
- rpm: pgpool.service is required only in RHEL/CentOS 7 (Nozomi Anzai)
===============================================================================
3.3.5 (tokakiboshi) 2015/02/05
* Version 3.3.5
This is a bugfix release against pgpool-II 3.3.4.
__________________________________________________________________
* Bug fixes
- doc: Describe explicitly that the number of slave nodes is not
necessarily 1 (Tatsuo Ishii)
- Fix occasinal deadlock in failover with watchdog enabled
(Muhammad Usama)
per bug #105
http://www.pgpool.net/mantisbt/view.php?id=105
- Fix uninitialized variable (Tatsuo Ishii)
Per Coverity 1234603.
- doc: Fix missing release note entries in the previous release
(Tatsuo Ishii)
- test: Fix wait_for_pgpool_startup in pgpool_setup to use "postgres"
database rather than "test" (Tatsuo Ishii)
The test database may or may not exist and if it does not, it will
always retry until timeout expired (20 seconds), and regression test
takes unnecessary long.
- Fix possible segmentation fault in query cache (Tatsuo Ishii)
- RPM: Add to support for memcached. (Tatsuo Ishii)
- test: Allow pgpool_setup to set configuration file directory by setting
environment variable PGPOOLDIR (Tatsuo Ishii)
- RPM: Rename RPM file (Yugo Nagata)
Rename filename to include the RHEL version number like PostgreSQL's
official RPM file. (e.g. pgpool-II-pg93-3.4.0-2pgdg.rhel6.x86_64.rpm)
- Fix node id range check bug in trigger_failover_command(). (Tatsuo Ishii)
The node id should be lower than NUM_BACKENDS. Probably harmless since
callers never pass node ids greater or equal to NUM_BACKENDS.
- test: Fix failover script of pgpool_setup to use absolute path to the
database cluster (Tatsuo Ishii)
- test: Add memory leak regression test (Tatsuo Ishii)
- Fix ill signal befavior of SIGCHLD in exec_ifconfig() (Tatsuo Ishii)
For some reason SIGCHLD was set to SIG_IGN *and* tries to wait
child process which always fails because SIGCHLD is never delivered.
Due to this "ifconfig up" fails when switching to watchdog master.
See "[pgpool-general: 3310] for more details.
- Allow $_IP_$ having address prefix in if_up_cmd and if_down_cmd
(Muhammad Usama)
Previously, it is assumed that "$_IP_$" keyword will always have a
white space at the end, and when "$_IP_$" has address prefix (e.g.
$_IP_$/24), this prefix was ignored.
Per bug #122.
http://www.pgpool.net/mantisbt/view.php?id=122
- Allow "show pool_nodes" to print node ids having more than one digits
(Muhammad Usama)
Problem reported in [pgpool-general: 3374].
- Fix occasional failure in regression test '004.watchdog' (Yugo Nagata)
The patch provided by uehara in bug #127.
http://www.pgpool.net/mantisbt/view.php?id=127
- Restore SIGCHLD handler to its original after executing if_up/down_cmd
(Yugo Nagata)
Previously SIGCHLD was set to SIGIGN always after if_up/down_cmd.
This led to a incorrect error handling of ping or other commands
execution, and warning messages were output to log even when the
command exited successfully.
- RPM: Add pgpool.service for systemd in RHEL/CentOS 7 (Nozomi Anzai)
- RPM: Split pgpool_regclass and pgpool_recovery as a separate extension
package (Tatsuo Ishii)
On PostgreSQL server, only the extension package is required, no pgpool
full package is necessary.
Per Andrew N Golovkov.
- RPM: Fix wrong SSL configure option in the RPM spec file (Tatsuo Ishii)
SSL enabling option is "--with-openssl=/usr" and this is wrong. This
should be "--with-openssl".
Per bug #115.
http://www.pgpool.net/mantisbt/view.php?id=115
- RPM: Change to use systemd if it is available and adopt to PostgreSQL 9.4
(Nozomi Anzai)
- Fix to disable debug mode by reloading config (Yugo Nagata)
Per bug #114
http://www.pgpool.net/mantisbt/view.php?id=114
===============================================================================
3.3.4 (tokakiboshi) 2014/09/05
* Version 3.3.4
This is a bugfix release against pgpool-II 3.3.3.
__________________________________________________________________
* Bug fixes
- Fix a typo of pgpool.spec (Yugo Nagata)
- Fix bug that worker child process keeps failing when there's no
primary backend (Tatsuo Ishii)
Problem identified and fix contributed by Junegunn Choi.
See [pgpool-hackers: 471] for more details.
- Close listen socket when smart shutdown request is made (Tatsuo Ishii)
When smart shutdown process starts, pgpool children still listen on
the port and clients can send further connection requests which fail
in the end. Which is not only waste of time, but also prevents a load
balancer which sits in front of pgpool from realizing the pgpool is
going down.
Problem analyzed and patch provided by Junegunn Choi in [pgpool-hackers
474], and enhanced to take care not only inet domain socket but UNIX
domain socket by Tatsuo Ishii.
- doc: Add cautions that recovery commands are killed by statement_timeout
of PostgreSQL. (Tatsuo Ishii)
- test: Fix bug that wait_for_pgpool_startup does not work. (Tatsuo Ishii)
- test: Fix test driver for watchdog to use wait_for_pgpool_startup correctly
(Tatsuo Ishii)
- Fix to ignore a harmless error code when executing ifconfig command
(Yugo Nagata)
When executing command such as ifconfig or ping by execv() in a forked
child proess, wait() can fails with an error code ECHILD, although the
process exists exactly, if SIGCHLD is set to SIG_IGN in Linux. We should
ignore this and not treat as failure of the command.
- test: Add undocumented "-j" option to the script comment. (Tatsuo Ishii)
- test: Fix unwanted JDBC regression test failure (Tatsuo Ishii)
- test: Fix to prevent regression test failures on slow machines
(Tatsuo Ishii)
- test: Allow to specify PostgreSQL library directory by environment
variable (Tatsuo Ishii)
- Adopt PostgreSQL 9.4 having to_regclass (Tatsuo Ishii)
PostgreSQL 9.4 has built-in function "to_regclass", which has
equivalent functionality of pgpool_regclass. Now pgpool searches
to_regclass first then try pgpool_regclass.
- Fix unportable code related to SO_REUSEPORT (Tatsuo Ishii)
There are several places using setsockopt(sock, SOL_SOCKET,
SO_REUSEPORT...). SO_REUSEPORT is not available on all Linux kernels
and the source code uses ifdef to detect the feature in the compile
time. Problem is, the binary created with kernel which provides the
feature cannot run on a kernel which does not provide the feature. Fix
is, detecting the feature in the run time by checking error code
returned by setsockopt() and ignore it if the cause of the error is
lacking the feature.
- doc: Remove old restriction description which is no longer true
(Tatsuo Ishii)
- Fix return type of text_to_lsn() function (Yugo Nagata)
This caused compile warning.
- Fix file descriptor leak when daemonize. (Tatsuo Ishii)
Per Coverity 1111471.
- Fix memory leak. (Tatsuo Ishii)
Per Coverity 1111442.
- Fix pgpool.init's long-standing bug of stop/restart failure
(Yugo Nagata)
In previous, pgpool.init uses killproc for stopping pgpool, but there
are several problems. In the new version, "pgpool -m fast stop" is
used in stop command.
Original patch contributed by Ryan DeShone and modified by Yugo Nagata.
See [pgpool-hackers: 239][pgpool-hackers: 512].
- Allow to run pgpool_setup and regression test on Ubuntu box
(Tatsuo Ishii)
- test: Fix -i option (install directory of pgpool) not working
(Tatsuo Ishii)
- Add missing include file sys/wait.h. (Tatsuo Ishii)
Per bug #104.
http://www.pgpool.net/mantisbt/view.php?id=104
- Fix an infinite loop of ping error at new active pgpool when virtual
IP switching (Yugo Nagata)
This bug also caused hangs of the old active pgpool, since this waits
response from the new active pgpool, which is in the infinite loop and
not able to respond.
This problem is reported by Qian Peng in [pgpool-hackers: 520].
- Disbale statement_timeout of PostgreSQL while executing online recovery
(Tatsuo Ishii)
Online recovery may take very long time and user may enable statement
timeout. To prevent online recovery canceled by statement timeout,
disable statement timeout in the connection used by online recovery.
See [pgpool-general: 2919] for more details.
- Fix pool_table_name_to_oid in case new to_regclass used which is
introduced in PostgreSQL 9.4 (Tatsuo Ishii)
The relcache func used here should return 0 if target table is not
found. However to_regclass returns NULL in this case. To fix the
problem now COALESCE is used.