Thank you very much for your time Tatsuo, I wasn't really expecting to deal with an almost two months old bug in the stable port.
On Fri, 2010-12-17 at 09:55 +0900, Tatsuo Ishii wrote: > It is a known issue and fixed in this. > > http://lists.pgfoundry.org/pipermail/pgpool-committers/2010-October/001521.html > -- > Tatsuo Ishii > SRA OSS, Inc. Japan > English: http://www.sraoss.co.jp/index_en.php > Japanese: http://www.sraoss.co.jp > > > Guys, I'm re-posting the message that I've sent yesterday. Please if my > > question is too trivial to be posted here help me to address it in the > > right place. > > Many thanks. > > ________________________________________ > > Hi everybody! I need some help please. > > > > I was using as a test pgpool-II 2.3.2.2 compiled from ports on FreeBSD > > 8.1-RELEASE with PostgreSQL 8.4.4_2 for Synchronous Multi-Master > > Replication. > > Everything was working fine. I've upgraded to PostgreSQL 9.0.1_2 > > and pgpool-II 3.0.1 (same server but kernel upgraded to patchset 2 which > > I believe is not relevant anyway but just for the record) and I get this > > incredible error: > > > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: listen_addresses > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '*' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: port > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 5430 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: pcp_port > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 9898 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: socket_dir > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '/tmp' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: pcp_socket_dir > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '/tmp' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: backend_socket_dir > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '/tmp' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: pcp_timeout > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 10 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: num_init_children > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 32 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: max_pool > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 4 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: child_life_time > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 300 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: connection_life_time > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 0 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: child_max_connections > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 0 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: client_idle_limit > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 0 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: authentication_timeout > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 60 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: logdir > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '/tmp' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: pid_file_name > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '/var/run/pgpool/pgpool.pid' > > kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: replication_mode > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: true kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: replication_strict > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: replication_timeout > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 5000 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: load_balance_mode > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: true kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: > > failover_if_affected_tuples_mismatch > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: > > failover_if_affected_tuples_mismatch: 0 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: replication_stop_on_mismatch > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: replication_stop_on_mismatch: 0 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: replicate_select > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: true kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: replicate_select: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: reset_query_list > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 'ABORT; RESET ALL; SET > > SESSION AUTHORIZATION DEFAULT' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: extract_string_tokens: token: ABORT > > 2010-12-15 17:56:58 DEBUG: pid 4876: extract_string_tokens: token: > > RESET ALL > > 2010-12-15 17:56:58 DEBUG: pid 4876: extract_string_tokens: token: SET > > SESSION AUTHORIZATION DEFAULT > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: print_timestamp > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: true kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: master_slave_mode > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: connection_cache > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: true kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: health_check_timeout > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 20 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: health_check_period > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 0 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: health_check_user > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 'nobody' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: failover_command > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: failback_command > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: insert_lock > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: true kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: ignore_leading_white_space > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: true kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: log_statement > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: log_connections > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: log_hostname > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: parallel_mode > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: enable_query_cache > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: pgpool2_hostname > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: backend_hostname0 > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 'xxxxxxxx001' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: backend_port0 > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 5432 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: pool_config: port slot number 0 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: backend_weight0 > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 1 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: pool_config: weight slot number 0 > > weight: 1.000000 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: backend_data_directory0 > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '/data' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: backend_hostname1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 'xxxx002' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: backend_port1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 5432 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: pool_config: port slot number 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: backend_weight1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 1 kind: 2 > > 2010-12-15 17:56:58 DEBUG: pid 4876: pool_config: weight slot number 1 > > weight: 1.000000 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: backend_data_directory1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: '/data' kind: 4 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: enable_pool_hba > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: ssl > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: false kind: 1 > > 2010-12-15 17:56:58 DEBUG: pid 4876: key: debug_level > > 2010-12-15 17:56:58 DEBUG: pid 4876: value: 0 kind: 2 > > 2010-12-15 17:56:58 ERROR: pid 4876: pool_init_pool_passwd: couldn't > > open /usr/local/etc/pgpool.conf/pool_passwd. reason: Not a directory > > 2010-12-15 17:56:58 DEBUG: pid 4876: shmem_exit(0) > > > > I've tried to rename the config file and to create a directory with the > > same config file name (as it seems to be expecting but just for a try, > > because it's clearly insane) but it doesn't fix it. In fact the error > > > > pool_init_pool_passwd: couldn't > > open /usr/local/etc/pgpool.conf/pool_passwd. reason: Not a directory > > 2010-12-15 17:56:58 DEBUG: pid 4876: shmem_exit(0) > > > > will become > > > > pool_init_pool_passwd: couldn't > > open /usr/local/etc/pgpool.conf/pgpool.conf/pool_passwd. reason: Not a > > directory > > 2010-12-15 17:56:58 DEBUG: pid 4876: shmem_exit(0) > > > > I'm pretty sure this is a little and very easily fixable bug. > > I've sent a private email to the FreeBSD port maintainer too that is > > most likely to be in this mailing list anyway, but just to be sure. > > > > Below my configuration file: > > > > # > > # pgpool-II configuration file sample > > # $Header: /cvsroot/pgpool/pgpool-II/pgpool.conf.sample,v 1.26 > > 2009/02/15 05:26:28 t-ishii Exp $ > > > > # Host name or IP address to listen on: '*' for all, '' for no TCP/IP > > # connections > > listen_addresses = '*' > > > > # Port number for pgpool > > port = 5430 > > > > # Port number for pgpool communication manager > > pcp_port = 9898 > > > > # Unix domain socket path. (The Debian package defaults to > > # /var/run/postgresql.) > > socket_dir = '/tmp' > > > > # Unix domain socket path for pgpool communication manager. > > # (Debian package defaults to /var/run/postgresql) > > pcp_socket_dir = '/tmp' > > > > # Unix domain socket path for the backend. Debian package defaults > > to /var/run/postgresql! > > backend_socket_dir = '/tmp' > > > > # pgpool communication manager timeout. 0 means no timeout, but strongly > > not recommended! > > pcp_timeout = 10 > > > > # number of pre-forked child process > > num_init_children = 32 > > > > # Number of connection pools allowed for a child process > > max_pool = 4 > > > > # If idle for this many seconds, child exits. 0 means no timeout. > > child_life_time = 300 > > > > # If idle for this many seconds, connection to PostgreSQL closes. > > # 0 means no timeout. > > connection_life_time = 0 > > > > # If child_max_connections connections were received, child exits. > > # 0 means no exit. > > child_max_connections = 0 > > > > # If client_idle_limit is n (n > 0), the client is forced to be > > # disconnected whenever after n seconds idle (even inside an explicit > > # transactions!) > > # 0 means no disconnect. > > client_idle_limit = 0 > > > > # Maximum time in seconds to complete client authentication. > > # 0 means no timeout. > > authentication_timeout = 60 > > > > # Logging directory > > logdir = '/tmp' > > > > # pid file name > > pid_file_name = '/var/run/pgpool/pgpool.pid' > > > > # Replication mode > > replication_mode = true > > > > # Set this to true if you want to avoid deadlock situations when > > # replication is enabled. There will, however, be a noticable > > performance > > # degration. A workaround is to set this to false and insert > > a /*STRICT*/ > > # comment at the beginning of the SQL command. > > replication_strict = false > > > > # When replication_strict is set to false, there will be a chance for > > # deadlocks. Set this to nonzero (in milliseconds) to detect this > > # situation and resolve the deadlock by aborting current session. > > replication_timeout = 5000 > > > > # Load balancing mode, i.e., all SELECTs are load balanced. > > # This is ignored if replication_mode is false. > > load_balance_mode = true > > > > # Load balance weight for master and secondary. The actual weight is > > # calculated by weight_master divided by weight_secondary. For > > # example both > > # > > # weight_master = 10 and weight_secondary = 5 > > # weight_master = 4 and weight_secondary = 2 > > # > > # are regarded as the master having double the weight compared to the > > # secondary. Master and secondary have the same weight in the default. > > # weight_master = 0.5 > > # weight_secondary = 0.5 > > > > # When set to true, if a backend returns number of affected tuples by > > INSERT/UPDATE/DELETE different between the backends, the backends that > > differ from most frequent result set are degenerated. If set to false, > > the session is terminated and the backends are not degenerated. > > failover_if_affected_tuples_mismatch = false > > > > # if there's a data mismatch between master and secondary > > # start degeneration to stop replication mode > > replication_stop_on_mismatch = false > > > > # If true, replicate SELECT statement when load balancing is disabled. > > # If false, it is only sent to the master node. > > replicate_select = true > > > > # Semicolon separated list of queries to be issued at the end of a > > session > > reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT' > > # for 8.3 or newer PostgreSQL versions DISCARD ALL can be used as > > # follows. However beware that DISCARD ALL holds exclusive lock on > > # pg_listener so it will be a serious performance problem if there are > > # lots of concurrent sessions. > > # reset_query_list = 'ABORT; DISCARD ALL' > > > > # If true print timestamp on each log line. > > print_timestamp = true > > > > # If true, operate in master/slave mode. > > master_slave_mode = false > > > > # If true, cache connection pool. > > connection_cache = true > > > > # Health check timeout. 0 means no timeout. > > health_check_timeout = 20 > > > > # Health check period. 0 means no health check. > > health_check_period = 0 > > > > # Health check user > > health_check_user = 'nobody' > > > > # Execute command by failover. > > # special values: %d = node id > > # %h = host name > > # %p = port number > > # %D = database cluster path > > # %m = new master node id > > # %M = old master node id > > # %% = '%' character > > # > > failover_command = '' > > > > # Execute command by failback. > > # special values: %d = node id > > # %h = host name > > # %p = port number > > # %D = database cluster path > > # %m = new master node id > > # %M = old master node id > > # %% = '%' character > > # > > failback_command = '' > > > > # If true, automatically locks a table with INSERT statements to keep > > # SERIAL data consistency. If the data does not have SERIAL data > > # type, no lock will be issued. An /*INSERT LOCK*/ comment has the > > # same effect. A /NO INSERT LOCK*/ comment disables the effect. > > insert_lock = true > > > > # If true, ignore leading white spaces of each query while pgpool judges > > # whether the query is a SELECT so that it can be load balanced. This > > # is useful for certain APIs such as DBI/DBD which is known to adding an > > # extra leading white space. > > ignore_leading_white_space = true > > > > # If true, print all statements to the log. Like the log_statement > > option > > # to PostgreSQL, this allows for observing queries without engaging in > > full > > # debugging. > > log_statement = false > > > > # If true, incoming connections will be printed to the log. > > log_connections = false > > > > # If true, hostname will be shown in ps status. Also shown in > > # connection log if log_connections = true. > > # Be warned that this feature will add overhead to look up hostname. > > log_hostname = false > > > > # if non 0, run in parallel query mode > > parallel_mode = false > > > > # if non 0, use query cache > > enable_query_cache = false > > > > #set pgpool2 hostname > > pgpool2_hostname = '' > > > > # system DB info > > #system_db_hostname = 'localhost' > > #system_db_port = 5432 > > #system_db_dbname = 'pgpool' > > #system_db_schema = 'pgpool_catalog' > > #system_db_user = 'pgpool' > > #system_db_password = '' > > > > # backend_hostname, backend_port, backend_weight > > # here are examples > > backend_hostname0 = 'xxxx001' > > backend_port0 = 5432 > > backend_weight0 = 1 > > backend_data_directory0 = '/data' > > backend_hostname1 = 'xxxx002' > > backend_port1 = 5432 > > backend_weight1 = 1 > > backend_data_directory1 = '/data' > > > > # - HBA - > > > > # If true, use pool_hba.conf for client authentication. > > enable_pool_hba = false > > > > # - online recovery - > > # online recovery user > > #recovery_user = 'nobody' > > > > # online recovery password > > #recovery_password = '' > > > > # execute a command in first stage. > > #recovery_1st_stage_command = '' > > > > # execute a command in second stage. > > #recovery_2nd_stage_command = '' > > > > # maximum time in seconds to wait for the recovering node's postmaster > > # start-up. 0 means no wait. > > # this is also used as a timer waiting for clients disconnected before > > # starting 2nd stage > > #recovery_timeout = 90 > > > > # If client_idle_limit_in_recovery is n (n > 0), the client is forced > > # to be disconnected whenever after n seconds idle (even inside an > > # explicit transactions!) in the second stage of online recovery. > > # n = -1 forces clients to be disconnected immediately. > > # 0 disables this functionality(wait forever). > > # This parameter only takes effect in recovery 2nd stage. > > #client_idle_limit_in_recovery = 0 > > > > # Specify table name to lock. This is used when rewriting lo_creat > > # command in replication mode. The table must exist and has writable > > # permission to public. If the table name is '', no rewriting occurs. > > #lobj_lock_table = '' > > > > # If true, enable SSL support for both frontend and backend connections. > > # note that you must also set ssl_key and ssl_cert for SSL to work in > > # the frontend connections. > > ssl = false > > # path to the SSL private key file > > #ssl_key = './server.key' > > # path to the SSL public certificate file > > #ssl_cert = './server.cert' > > > > # If either ssl_ca_cert or ssl_ca_cert_dir is set, then certificate > > # verification will be performed to establish the authenticity of the > > # certificate. If neither is set to a nonempty string then no such > > # verification takes place. ssl_ca_cert should be a path to a single > > # PEM format file containing CA root certificate(s), whereas > > ssl_ca_cert_dir > > # should be a directory containing such files. These are analagous to > > the > > # -CAfile and -CApath options to openssl verify(1), respectively. > > #ssl_ca_cert = '' > > #ssl_ca_cert_dir = '' > > > > # Debug message verbosity level. 0: no message, 1 <= : more verbose > > debug_level = 0 > > > > > > > > Any help/workaround/quick fix would be appreciated. > > Thank you. > > > > > > > > > > -- > > Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP > > autenticato? GRATIS solo con Email.it http://www.email.it/f > > > > Sponsor: > > Emailpaghe: le paghe in 3 click, veloce ed efficiente puoi averlo in prova > > gratuita fino al 31 dicembre 2010. Cosa aspetti provalo! > > Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=10684&d=16-12 > > _______________________________________________ > > Pgpool-general mailing list > > [email protected] > > http://pgfoundry.org/mailman/listinfo/pgpool-general _______________________________________________ Pgpool-general mailing list [email protected] http://pgfoundry.org/mailman/listinfo/pgpool-general
