Re: Tsearch2 crashes my backend, ouch !

From: Listmail <lists(at)peufeu(dot)com>
To: "Oleg Bartunov" <oleg(at)sai(dot)msu(dot)su>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Tsearch2 crashes my backend, ouch !
Date: 2007-04-01 20:56:42
Message-ID: op.tp4hssr5zcizji@apollo13
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


>> Anyway, just to signal that tsearch2 crashes if SELECT is not granted
>> to pg_ts_dict (other tables give a proper error message when not
>> GRANTed).On
>
> I don't understand this. Are sure on this ? From prompt in your select
> examples I see you have superuser's rights and you have successfully
> select from pg_ts_dict column.

It was tricky to reproduce... I thought I had hallucinations but here it
is :

- open two psql windows (one postgres user, one normal unprivileged user),
see > or # in prompt for which window I use to type commands/

- first let's lock ourselves up :

caillaudangers=# REVOKE select ON pg_ts_dict FROM caillaudangers ;
REVOKE
caillaudangers=# REVOKE select ON pg_ts_cfg FROM caillaudangers ;
REVOKE
caillaudangers=# REVOKE select ON pg_ts_cfgmap FROM caillaudangers ;
REVOKE
caillaudangers=# REVOKE select ON pg_ts_parser FROM caillaudangers ;
REVOKE

- then try to access :

caillaudangers=> SELECT to_tsvector( 'bill gates is watching us' );
ERREUR: droit refusé pour la relation pg_ts_dict
CONTEXT: instruction SQL «select dict_init, dict_initoption, dict_lexize
from public.pg_ts_dict where oid = $1»

caillaudangers=# GRANT select ON pg_ts_dict TO caillaudangers ;
GRANT

caillaudangers=> SELECT to_tsvector( 'bill gates is watching us' );
ERREUR: No dictionary with id 138493128

Strange error message ??

caillaudangers=> SELECT to_tsvector( 'bill gates is watching us' );
ERREUR: droit refusé pour la relation pg_ts_cfg
CONTEXT: instruction SQL «select prs_name from public.pg_ts_cfg where oid
= $1»

Proper error message now. Let's go back.

caillaudangers=# REVOKE select ON pg_ts_dict FROM caillaudangers ;
REVOKE

Now try to select to_tsvector and each time a permission is denied, grant
the needed table.

caillaudangers=> SELECT to_tsvector( 'bill gates is watching us' );
ERREUR: droit refusé pour la relation pg_ts_cfg
CONTEXT: instruction SQL «select prs_name from public.pg_ts_cfg where oid
= $1»

caillaudangers=# GRANT select ON pg_ts_cfg TO caillaudangers ;
GRANT

caillaudangers=> SELECT to_tsvector( 'bill gates is watching us' );
ERREUR: droit refusé pour la relation pg_ts_cfgmap
CONTEXT: instruction SQL «select lt.tokid, map.dict_name from
public.pg_ts_cfgmap as map, public.pg_ts_cfg as cfg, public.token_type( $1
) as lt where lt.alias = map.tok_alias and map.ts_name = cfg.ts_name and
cfg.oid= $2 order by lt.tokid desc;»

caillaudangers=# GRANT select ON pg_ts_cfgmap TO caillaudangers ;
GRANT

caillaudangers=> SELECT to_tsvector( 'bill gates is watching us' );
ERREUR: droit refusé pour la relation pg_ts_parser
CONTEXT: instruction SQL «select prs_start, prs_nexttoken, prs_end,
prs_lextype, prs_headline from public.pg_ts_parser where oid = $1»

caillaudangers=# GRANT select ON pg_ts_parser TO caillaudangers ;
GRANT

caillaudangers=> SELECT to_tsvector( 'bill gates is watching us' );
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
La connexion au serveur a été perdue. Tentative de réinitialisation :
Echec.

There it crashes. It's bizarre.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Chris 2007-04-02 02:29:36 Re: Connecting a sequence with table column
Previous Message Listmail 2007-04-01 20:55:40 Re: postgresl for mysql?