[pgpool-general: 2496] Re: Segfault in pgpool triggered by a background query

Yugo Nagata nagata at sraoss.co.jp
Tue Jan 28 13:46:01 JST 2014


On Mon, 27 Jan 2014 10:46:53 +0900
Yugo Nagata <nagata at sraoss.co.jp> wrote:

> Hi,
> 
> I'm sorry for late reply. I have reproduced the problem.
> I'll analyze this from now.
> 
> 
> On Wed, 22 Jan 2014 07:48:03 +0200
> Kristjan Siimson <kristjan.siimson at cashongo.co.uk> wrote:
> 
> > Odd. I am attaching my pgpool.conf in case I missed something. I was easily
> > able to get the same issue on different machines where I set up PostgreSQL.
> > I used the sample schemas and partition rules that come with PgPool II.
> > 
> > 
> > On 22 January 2014 05:23, Yugo Nagata <nagata at sraoss.co.jp> wrote:
> > 
> > > I'm trying to reproduce the problem but cannot.
> > >
> > > set paramell_mode = on and issuing the following query is all to do?
> > >
> > > SELECT has_function_privilege('user', 'pgpool_regclass(cstring)',
> > > 'execute')
> > > WHERE EXISTS(select * from account)

I find that this is a long-standing bug with parallel query.
This occurs by some queries with "*" as below:

 SELECT 1 WHERE EXISTS (SELECT * from tbl);

when table "tbl" doesn't exists or isn't include in dist_diff or
replicate_diff. If tbl is registered in thease table, segfault
doesn't occur.

BTW, you might register "accounts" to dist_diff, since sample of documents
says so. However, "pgbench_accounts" would be right if you use pgbench's
table schema. 

> > >
> > > Could you please tell me about DB schema and partition rule registed
> > > in pgpool_catalog.dist_def? If you use replication mode, please tell
> > > me about pgpool_catalog.replicate_def, too.
> > >
> > > On Mon, 20 Jan 2014 13:50:50 +0200
> > > Kristjan Siimson <kristjan.siimson at cashongo.co.uk> wrote:
> > >
> > > > I'm using pgpool II 3.3.2 and PostgreSQL 9.3.2. It's easy to replicate
> > > the
> > > > issue, all you need to do is set parallel_mode = on.
> > > >
> > > > 0x00007ffff6be85c3 in __select_nocancel () at
> > > > ../sysdeps/unix/syscall-template.S:82
> > > > 82    T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
> > > >
> > > > Thread 2 (Thread 0x7ffff7fe57c0 (LWP 6849)):
> > > > Continuing.
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: ProcessFrontendResponse: kind from
> > > > frontend Q(51)
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849:
> > > > pool_unset_doing_extended_query_message: done
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: statement2: SELECT
> > > > has_function_privilege('kristjan', 'pgpool_regclass(cstring)', 'execute')
> > > > WHERE EXISTS(select * from account);
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: pool_set_query_in_progress: done
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: initSelectStmt: ANALYZE now(0)
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: inside build_range_info num= 1
> > > > current_select=0
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: inside build_range_info const or
> > > func
> > > > 0
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: initSelectStmt: ANALYZE now(1)
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: inside build_range_info num= 1
> > > > current_select=1
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: inside build_range_info const or
> > > func
> > > > 1
> > > > 2014-01-20 13:43:55 DEBUG: pid 6849: inside build_virtual_info no dist
> > > > state=E account
> > > >
> > > > Program received signal SIGSEGV, Segmentation fault.
> > > > 0x000000000043df31 in DetectValidColumn (message=0x75c3e0,
> > > table_name=0x0,
> > > > column_name=0x4c763f "*", no=0, call=2) at pool_rewrite_outfuncs.c:4747
> > > > 4747        v_num = virtual->col_num;
> > > >
> > > > Thread 1 (Thread 0x7ffff7fe57c0 (LWP 6847)):
> > > > Continuing.
> > > >
> > > > Program terminated with signal SIGSEGV, Segmentation fault.
> > > > The program no longer exists.
> > > >
> > > >
> > > > On 20 January 2014 04:05, Tatsuo Ishii <ishii at postgresql.org> wrote:
> > > >
> > > > > Could you please provide pgpool-II version, pgpool.conf, PostgreSQL
> > > > > version and backtrace of pgpool when the sefault occured?
> > > > >
> > > > > Best regards,
> > > > > --
> > > > > Tatsuo Ishii
> > > > > SRA OSS, Inc. Japan
> > > > > English: http://www.sraoss.co.jp/index_en.php
> > > > > Japanese: http://www.sraoss.co.jp
> > > > >
> > >
> > >
> > > --
> > > Yugo Nagata <nagata at sraoss.co.jp>
> > >
> 
> 
> -- 
> Yugo Nagata <nagata at sraoss.co.jp>
> _______________________________________________
> pgpool-general mailing list
> pgpool-general at pgpool.net
> http://www.pgpool.net/mailman/listinfo/pgpool-general


-- 
Yugo Nagata <nagata at sraoss.co.jp>


More information about the pgpool-general mailing list