[Pgpool-general] pgpool-II 3.0.1 on FreeBSD 8.1-RELEASE - Incredible error!!

Tatsuo Ishii ishii at sraoss.co.jp
Fri Dec 17 00:55:21 UTC 2010


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
> Pgpool-general at pgfoundry.org
> http://pgfoundry.org/mailman/listinfo/pgpool-general


More information about the Pgpool-general mailing list