Обсуждение: New btree_gist code has a few problems

Поиск
Список
Период
Сортировка

New btree_gist code has a few problems

От
Tom Lane
Дата:
I tried running 'make installcheck' in contrib just now, and didn't
get past btree_gist :-(

The interval test fails with the attached diffs.  text, varchar, char,
bytea, bit, varbit and numeric either dump core or go into infinite
loops during CREATE INDEX.  (It's probably significant that these are
all varlena datatypes...)

This is on HPUX 10.20 using gcc.  Let me know if you have any thoughts
about tracking it down.
        regards, tom lane

*** ./expected/interval.out    Fri May 28 06:43:27 2004
--- ./results/interval.out    Tue Jun  1 01:35:07 2004
***************
*** 49,66 **** SELECT count(*) FROM intervaltmp WHERE a  = '199 days 21:21:23'::interval;  count  -------
!      1 (1 row)  SELECT count(*) FROM intervaltmp WHERE a >= '199 days 21:21:23'::interval;  count  -------
!    271 (1 row)  SELECT count(*) FROM intervaltmp WHERE a >  '199 days 21:21:23'::interval;  count  -------
!    270 (1 row) 
--- 49,66 ---- SELECT count(*) FROM intervaltmp WHERE a  = '199 days 21:21:23'::interval;  count  -------
!      0 (1 row)  SELECT count(*) FROM intervaltmp WHERE a >= '199 days 21:21:23'::interval;  count  -------
!      8 (1 row)  SELECT count(*) FROM intervaltmp WHERE a >  '199 days 21:21:23'::interval;  count  -------
!      8 (1 row)


Core dump in varchar test looks like:

Program terminated with signal 10, Bus error.
#0  0xc0c6de40 in gbt_var_key_copy (u=0x7b03e4f0, force_node=5 '\005')   at btree_utils_var.c:31
31                r = (GBT_VARKEY *) palloc(VARSIZE(u->lower) + VARSIZE(u->upper) + VARHDRSZ );
(gdb) bt
#0  0xc0c6de40 in gbt_var_key_copy (u=0x7b03e4f0, force_node=5 '\005')   at btree_utils_var.c:31
#1  0xc0c6e3f8 in gbt_var_bin_union (u=0x7b03d920, e=0x40110cd8,   tinfo=0x7afff594) at btree_utils_var.c:220
[ gdb gets confused here, possibly stack is smashed ]


Re: New btree_gist code has a few problems

От
Teodor Sigaev
Дата:
Ok, I'll have a look.

Tom Lane wrote:
> I tried running 'make installcheck' in contrib just now, and didn't
> get past btree_gist :-(
> 
> The interval test fails with the attached diffs.  text, varchar, char,
> bytea, bit, varbit and numeric either dump core or go into infinite
> loops during CREATE INDEX.  (It's probably significant that these are
> all varlena datatypes...)
> 
> This is on HPUX 10.20 using gcc.  Let me know if you have any thoughts
> about tracking it down.
> 
>             regards, tom lane
> 
> *** ./expected/interval.out    Fri May 28 06:43:27 2004
> --- ./results/interval.out    Tue Jun  1 01:35:07 2004
> ***************
> *** 49,66 ****
>   SELECT count(*) FROM intervaltmp WHERE a  = '199 days 21:21:23'::interval;
>    count 
>   -------
> !      1
>   (1 row)
>   
>   SELECT count(*) FROM intervaltmp WHERE a >= '199 days 21:21:23'::interval;
>    count 
>   -------
> !    271
>   (1 row)
>   
>   SELECT count(*) FROM intervaltmp WHERE a >  '199 days 21:21:23'::interval;
>    count 
>   -------
> !    270
>   (1 row)
>   
> --- 49,66 ----
>   SELECT count(*) FROM intervaltmp WHERE a  = '199 days 21:21:23'::interval;
>    count 
>   -------
> !      0
>   (1 row)
>   
>   SELECT count(*) FROM intervaltmp WHERE a >= '199 days 21:21:23'::interval;
>    count 
>   -------
> !      8
>   (1 row)
>   
>   SELECT count(*) FROM intervaltmp WHERE a >  '199 days 21:21:23'::interval;
>    count 
>   -------
> !      8
>   (1 row)
> 
> 
> Core dump in varchar test looks like:
> 
> Program terminated with signal 10, Bus error.
> #0  0xc0c6de40 in gbt_var_key_copy (u=0x7b03e4f0, force_node=5 '\005')
>     at btree_utils_var.c:31
> 31                r = (GBT_VARKEY *) palloc(VARSIZE(u->lower) + VARSIZE(u->upper) + VARHDRSZ );
> (gdb) bt
> #0  0xc0c6de40 in gbt_var_key_copy (u=0x7b03e4f0, force_node=5 '\005')
>     at btree_utils_var.c:31
> #1  0xc0c6e3f8 in gbt_var_bin_union (u=0x7b03d920, e=0x40110cd8,
>     tinfo=0x7afff594) at btree_utils_var.c:220
> [ gdb gets confused here, possibly stack is smashed ]
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faqs/FAQ.html

-- 
Teodor Sigaev                                  E-mail: teodor@sigaev.ru


Re: New btree_gist code has a few problems

От
Teodor Sigaev
Дата:
>> I tried running 'make installcheck' in contrib just now, and didn't
>> get past btree_gist :-(

Fix and test on Alpha box.


-- 
Teodor Sigaev                                  E-mail: teodor@sigaev.ru


Re: New btree_gist code has a few problems

От
Tom Lane
Дата:
Teodor Sigaev <teodor@sigaev.ru> writes:
> I tried running 'make installcheck' in contrib just now, and didn't
> get past btree_gist :-(

> Fix and test on Alpha box.

Works for me on HPPA now, too.  Thanks.
        regards, tom lane