Thread: weird problem with latest cvs

weird problem with latest cvs

From
Oleg Bartunov
Date:
Hi,


just updated development version from cvs and got strange problem :

select * from WORK_FLATS where DISTRICT_ID in (4,101);
select * from WORK_FLATS where DISTRICT_ID in (101,4);

Does anyone understand what's the difference between this two selects ?

explain produces the same plans:
Index Scan using wfidx_district_id on work_flats  (cost=6.90 size=29 width=132)
but first select works fine while second fails with message:
flats=> select * from WORK_FLATS where DISTRICT_ID in (101,4);
pqReadData() -- backend closed the channel unexpectedly.
        This probably means the backend terminated abnormally before or while processing the request.
We have lost the connection to the backend, so further processing is impossible.  Terminating.


6.3.2+patches works ok !!!

    Regards,

        Oleg

_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83


Re: [HACKERS] weird problem with latest cvs

From
Oleg Bartunov
Date:
It seems this happens only if
select * from WORK_FLATS where DISTRICT_ID=101
produces zero result                                           ^^^
and
select * from WORK_FLATS where DISTRICT_ID=4
                                           ^
produces non-zero result

Below is an example:

flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (101);
count
-----
    0
(1 row)

flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (100);
count
-----
    0
(1 row)

flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (100,101);
count
-----
    0
(1 row)

flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (0);
count
-----
    4
(1 row)

flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (101,0);
pqReadData() -- backend closed the channel unexpectedly.
        This probably means the backend terminated abnormally before or while processing the request.
We have lost the connection to the backend, so further processing is impossible.  Terminating.


    Oleg

On Tue, 18 Aug 1998, Oleg Bartunov wrote:

> Date: Tue, 18 Aug 1998 23:27:57 +0400 (MSK DST)
> From: Oleg Bartunov <oleg@sai.msu.su>
> To: hackers@postgreSQL.org
> Subject: [HACKERS] weird problem with latest cvs
>
> Hi,
>
>
> just updated development version from cvs and got strange problem :
>
> select * from WORK_FLATS where DISTRICT_ID in (4,101);
> select * from WORK_FLATS where DISTRICT_ID in (101,4);
>
> Does anyone understand what's the difference between this two selects ?
>
> explain produces the same plans:
> Index Scan using wfidx_district_id on work_flats  (cost=6.90 size=29 width=132)
> but first select works fine while second fails with message:
> flats=> select * from WORK_FLATS where DISTRICT_ID in (101,4);
> pqReadData() -- backend closed the channel unexpectedly.
>         This probably means the backend terminated abnormally before or while processing the request.
> We have lost the connection to the backend, so further processing is impossible.  Terminating.
>
>
> 6.3.2+patches works ok !!!
>
>     Regards,
>
>         Oleg
>
> _____________________________________________________________
> Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> Sternberg Astronomical Institute, Moscow University (Russia)
> Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> phone: +007(095)939-16-83, +007(095)939-23-83
>
>

_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83


Re: [HACKERS] weird problem with latest cvs

From
Bruce Momjian
Date:
It is my code that tries to check if a new row was matched by a previous
index, and hence discard it.  If the previous index did not return any
rows, the slot is NULL, and it crashes.  I will try to work on a fix.


> It seems this happens only if
> select * from WORK_FLATS where DISTRICT_ID=101
> produces zero result                                           ^^^
> and
> select * from WORK_FLATS where DISTRICT_ID=4
>                                            ^
> produces non-zero result
>
> Below is an example:
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (101);
> count
> -----
>     0
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (100);
> count
> -----
>     0
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (100,101);
> count
> -----
>     0
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (0);
> count
> -----
>     4
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (101,0);
> pqReadData() -- backend closed the channel unexpectedly.
>         This probably means the backend terminated abnormally before or while processing the request.
> We have lost the connection to the backend, so further processing is impossible.  Terminating.
>
>
>     Oleg
>
> On Tue, 18 Aug 1998, Oleg Bartunov wrote:
>
> > Date: Tue, 18 Aug 1998 23:27:57 +0400 (MSK DST)
> > From: Oleg Bartunov <oleg@sai.msu.su>
> > To: hackers@postgreSQL.org
> > Subject: [HACKERS] weird problem with latest cvs
> >
> > Hi,
> >
> >
> > just updated development version from cvs and got strange problem :
> >
> > select * from WORK_FLATS where DISTRICT_ID in (4,101);
> > select * from WORK_FLATS where DISTRICT_ID in (101,4);
> >
> > Does anyone understand what's the difference between this two selects ?
> >
> > explain produces the same plans:
> > Index Scan using wfidx_district_id on work_flats  (cost=6.90 size=29 width=132)
> > but first select works fine while second fails with message:
> > flats=> select * from WORK_FLATS where DISTRICT_ID in (101,4);
> > pqReadData() -- backend closed the channel unexpectedly.
> >         This probably means the backend terminated abnormally before or while processing the request.
> > We have lost the connection to the backend, so further processing is impossible.  Terminating.
> >
> >
> > 6.3.2+patches works ok !!!
> >
> >     Regards,
> >
> >         Oleg
> >
> > _____________________________________________________________
> > Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> > Sternberg Astronomical Institute, Moscow University (Russia)
> > Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> > phone: +007(095)939-16-83, +007(095)939-23-83
> >
> >
>
> _____________________________________________________________
> Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> Sternberg Astronomical Institute, Moscow University (Russia)
> Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> phone: +007(095)939-16-83, +007(095)939-23-83
>
>
>


--
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)

Re: [HACKERS] weird problem with latest cvs

From
Bruce Momjian
Date:
I am able to reproduce the bug.  Looks like some problem with the
indexing or OR's.  I will check into it.


> It seems this happens only if
> select * from WORK_FLATS where DISTRICT_ID=101
> produces zero result                                           ^^^
> and
> select * from WORK_FLATS where DISTRICT_ID=4
>                                            ^
> produces non-zero result
>
> Below is an example:
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (101);
> count
> -----
>     0
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (100);
> count
> -----
>     0
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (100,101);
> count
> -----
>     0
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (0);
> count
> -----
>     4
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (101,0);
> pqReadData() -- backend closed the channel unexpectedly.
>         This probably means the backend terminated abnormally before or while processing the request.
> We have lost the connection to the backend, so further processing is impossible.  Terminating.
>
>
>     Oleg
>
> On Tue, 18 Aug 1998, Oleg Bartunov wrote:
>
> > Date: Tue, 18 Aug 1998 23:27:57 +0400 (MSK DST)
> > From: Oleg Bartunov <oleg@sai.msu.su>
> > To: hackers@postgreSQL.org
> > Subject: [HACKERS] weird problem with latest cvs
> >
> > Hi,
> >
> >
> > just updated development version from cvs and got strange problem :
> >
> > select * from WORK_FLATS where DISTRICT_ID in (4,101);
> > select * from WORK_FLATS where DISTRICT_ID in (101,4);
> >
> > Does anyone understand what's the difference between this two selects ?
> >
> > explain produces the same plans:
> > Index Scan using wfidx_district_id on work_flats  (cost=6.90 size=29 width=132)
> > but first select works fine while second fails with message:
> > flats=> select * from WORK_FLATS where DISTRICT_ID in (101,4);
> > pqReadData() -- backend closed the channel unexpectedly.
> >         This probably means the backend terminated abnormally before or while processing the request.
> > We have lost the connection to the backend, so further processing is impossible.  Terminating.
> >
> >
> > 6.3.2+patches works ok !!!
> >
> >     Regards,
> >
> >         Oleg
> >
> > _____________________________________________________________
> > Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> > Sternberg Astronomical Institute, Moscow University (Russia)
> > Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> > phone: +007(095)939-16-83, +007(095)939-23-83
> >
> >
>
> _____________________________________________________________
> Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> Sternberg Astronomical Institute, Moscow University (Russia)
> Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> phone: +007(095)939-16-83, +007(095)939-23-83
>
>
>


--
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)

Re: [HACKERS] weird problem with latest cvs

From
Bruce Momjian
Date:
I fixed this problem this morning, and the current sources contain the
fix.

Thanks for the report.

> It seems this happens only if
> select * from WORK_FLATS where DISTRICT_ID=101
> produces zero result                                           ^^^
> and
> select * from WORK_FLATS where DISTRICT_ID=4
>                                            ^
> produces non-zero result
>
> Below is an example:
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (101);
> count
> -----
>     0
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (100);
> count
> -----
>     0
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (100,101);
> count
> -----
>     0
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (0);
> count
> -----
>     4
> (1 row)
>
> flats=> select count(*) from WORK_FLATS where DISTRICT_ID in (101,0);
> pqReadData() -- backend closed the channel unexpectedly.
>         This probably means the backend terminated abnormally before or while processing the request.
> We have lost the connection to the backend, so further processing is impossible.  Terminating.
>
>
>     Oleg
>
> On Tue, 18 Aug 1998, Oleg Bartunov wrote:
>
> > Date: Tue, 18 Aug 1998 23:27:57 +0400 (MSK DST)
> > From: Oleg Bartunov <oleg@sai.msu.su>
> > To: hackers@postgreSQL.org
> > Subject: [HACKERS] weird problem with latest cvs
> >
> > Hi,
> >
> >
> > just updated development version from cvs and got strange problem :
> >
> > select * from WORK_FLATS where DISTRICT_ID in (4,101);
> > select * from WORK_FLATS where DISTRICT_ID in (101,4);
> >
> > Does anyone understand what's the difference between this two selects ?
> >
> > explain produces the same plans:
> > Index Scan using wfidx_district_id on work_flats  (cost=6.90 size=29 width=132)
> > but first select works fine while second fails with message:
> > flats=> select * from WORK_FLATS where DISTRICT_ID in (101,4);
> > pqReadData() -- backend closed the channel unexpectedly.
> >         This probably means the backend terminated abnormally before or while processing the request.
> > We have lost the connection to the backend, so further processing is impossible.  Terminating.
> >
> >
> > 6.3.2+patches works ok !!!
> >
> >     Regards,
> >
> >         Oleg
> >
> > _____________________________________________________________
> > Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> > Sternberg Astronomical Institute, Moscow University (Russia)
> > Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> > phone: +007(095)939-16-83, +007(095)939-23-83
> >
> >
>
> _____________________________________________________________
> Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> Sternberg Astronomical Institute, Moscow University (Russia)
> Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> phone: +007(095)939-16-83, +007(095)939-23-83
>
>
>


--
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)