[Pgpool-general] pgpool hangs

Tzvi Rotshtein tzvi.ro at gmail.com
Tue Jul 17 07:11:34 UTC 2007


*Hi,

I've installed dblink and pgpool according to the instructions and I
encountered some off behavior I was hoping you could help me with.
It seems that simple queries work just fine (such as "select * from **
pool.users**" work just fine and I get the merged data from both databases)
however more complex ones cause pgpool to * *hang **(for example "select
count(*) from **pool.users** ").
I tried using dblink directly to access both databases from each other, and
it worked just fine.**

**The last log entry on pgpool is (where it hangs): **
**DEBUG: pid 4469: OneNode_do_command: Query:  SELECT  sum(** args_$0**) AS
COUNT FROM  dblink('host=localhost dbname=pool port=5433 user=pool','SELECT
pool_parallel("select count(*)  FROM pool.users")') AS users(
**args_$0 **bigint
)*
**
*

* *The stack trace is here:**
**#0  0x0060c7a2 in _dl_sysinfo_int80 () from /lib/ld- linux.so.2*
*#1  0x006d945d in ___newselect_nocancel () from /lib/tls/libc.so.6*
*#2  0x0805767b in pool_check_fd (cp=0xfffffdfe, notimeout=0) at
pool_process_query.c:2457 *
*#3  0x0805be2a in pool_read (cp=0x9199308, buf=0xbfee4537, len=1) at
pool_stream.c:126*
*#4  0x0805acf2 in OneNode_do_command (frontend=0x919c428,
backend=0x9199308, *
*    query=0x91a6034 " SELECT  sum(args_$0) AS COUNT   FROM
dblink('host=localhost dbname=pool port=5433 user=pool','SELECT
pool_parallel(\"select count(*)  FROM pool.users\")') AS users( args_$0
bigint )", database=0xb7f34000 "pool")*
*    at pool_process_query.c:3941*
* *
*
**We have two database machines, running postgresql 8.2.4 (one is a 32 bit
Linux machine that also hosts system_db, the other is a 64 bit Linux
machine) . pgpool is also installed on the server32 machine.
This is the configuration we use:**

* *# if non 0, run in parallel query mode*
*parallel_mode = true*
**
* # if non 0, use query cache*
*enable_query_cache = false*
**
*#set pgpool2 hostname *
*pgpool2_hostname = 'localhost'*
**
*# 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 = 'pgpool'*
**
*# backend_hostname, backend_port, backend_weight*
*# here are examples*
*backend_hostname0 = 'server32'*
*backend_port0 = 5432*
*backend_weight0 = 1*
*
*
*backend_hostname1 = 'server64' *
*backend_port1 = 5432*
*backend_weight1 = 1*
**
*

**This is the content of our "pgpool_catalog.dist_def" table.**

* * dbname | schema_name | table_name | col_name |  col_list   |
type_list    |       dist_def_func*
*--------+-------------+------------+----------+-------------+-----------------+---------------------------
*
* pool   | pool        | users      | uid    | {uid,age} | {bigint,bigint} |
pgpool_catalog.dist_users*
**
*

**The defined function is:**
* *CREATE OR REPLACE FUNCTION pgpool_catalog.dist_users(val anyelement)*
*  RETURNS integer AS*
* $BODY$*
*    SELECT CASE*
*        WHEN ($1 % 1024) >= 0 and ($1 % 1024) < 512 THEN 0*
*         ELSE 1*
*END$BODY$*
*  LANGUAGE 'sql' VOLATILE;*
*ALTER FUNCTION pgpool_catalog.dist_users(val anyelement) OWNER TO pgpool; *
**
*

**I hope someone here could provide me some guidance (if you need more info,
let me know).

Thanks
   Tzvi.
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://pgfoundry.org/pipermail/pgpool-general/attachments/20070717/fc86642b/attachment.html 


More information about the Pgpool-general mailing list