Search Postgresql Archives

Re: Tsearch2 crashes my backend, ouch !

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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.





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux