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
