reproducable command sequence to get "mdopen: Couldn't open..."

Поиск
Список
Период
Сортировка
От Palle Girgensohn
Тема reproducable command sequence to get "mdopen: Couldn't open..."
Дата
Msg-id 87d7h2m5qh.fsf@palle.girgensohn.se
обсуждение исходный текст
Ответы Re: reproducable command sequence to get "mdopen: Couldn't open..."  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Hi!

I have seen this problem on several occasions, using 7.02:

# vacuum;
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  RelationIdBuildRelation: smgropen(at_provider_user_info): No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
ERROR:  cannot open relation at_provider_user_info

To get it back to functional, I have to touch the file
data/base/dbname/at_provider_user_info, drop the table and restore it
from a backup (if it wasn't empty, which was luckily mostly the
case). This works, but there's a bug letting this happen...

Here's how I get it happening:

Script started on Sun Oct 15 18:06:12 2000
$  psql -e < src/core/db/elever-to-person.sql
You are now connected as new user nobody.
BEGIN;
BEGIN
CREATE TABLE person (userid text, giver text, first_name text, last_name text, email text, default_language text
DEFAULT'sv'); 
CREATE
CREATE UNIQUE INDEX person_index on person using btree (userid text_ops);
CREATE
CREATE INDEX person_giver_idx on person (giver);
CREATE
INSERT INTO person (userid,giver,first_name,last_name,email,default_language)
       SELECT userid,giver,fnamn,enamn,datorpost,defaultlanguage FROM elever;
INSERT 1189717 1
COMMIT;
COMMIT
BEGIN;
BEGIN
ALTER TABLE at_provider_user_info RENAME TO tmp;
NOTICE:  Caution: RENAME TABLE cannot be rolled back, so don't abort now
ALTER
CREATE TABLE at_provider_user_info (id int4, giver text, name text, order_nr int4, type text, az_only bool DEFAULT
false,hideable bool DEFAULT false, is_unique bool DEFAULT false ); 
CREATE
INSERT INTO at_provider_user_info (id,giver,name,order_nr,type,az_only,hideable,is_unique)
       SELECT *,false,false,false FROM tmp;
ERROR:  INSERT has more expressions than target columns
DROP TABLE tmp;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
ALTER TABLE at_user_info RENAME TO tmp;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
CREATE TABLE at_user_info (userid text, info_id int4, content text, visible bool DEFAULT true );
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_user_info (userid,info_id,content,visible)
       SELECT *,true FROM tmp;
ERROR:  Attribute 'visible' is of type 'bool' but expression is of type 'int4'
    You will need to rewrite or cast the expression
DROP TABLE tmp;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_provider_user_info (id,giver,name,order_nr,type)
       SELECT nextval('at_provider_user_info_seq'),giver,'Gatuadress',10,'text' FROM providers;
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  RelationIdBuildRelation: smgropen(at_provider_user_info): No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_user_info (userid,info_id,content)
       SELECT userid,currval('at_provider_user_info_seq'),gatuadress FROM elever;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_provider_user_info (id,giver,name,order_nr,type)
       SELECT nextval('at_provider_user_info_seq'),giver,'Postnummer',11,'text' FROM providers;
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_user_info (userid,info_id,content)
       SELECT userid,currval('at_provider_user_info_seq'),postnummer FROM elever;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_provider_user_info (id,giver,name,order_nr,type)
       SELECT nextval('at_provider_user_info_seq'),giver,'Postadress',12,'text' FROM providers;
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_user_info (userid,info_id,content)
       SELECT userid,currval('at_provider_user_info_seq'),postadress FROM elever;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_provider_user_info (id,giver,name,order_nr,type)
       SELECT nextval('at_provider_user_info_seq'),giver,'Telefon',13,'text' FROM providers;
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_user_info (userid,info_id,content)
       SELECT userid,currval('at_provider_user_info_seq'),telefon FROM elever;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_provider_user_info (id,giver,name,order_nr,type)
       SELECT nextval('at_provider_user_info_seq'),giver,'Fax',14,'text' FROM providers;
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_user_info (userid,info_id,content)
       SELECT userid,currval('at_provider_user_info_seq'),telefax FROM elever;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_provider_user_info (id,giver,name,order_nr,type)
       SELECT nextval('at_provider_user_info_seq'),giver,'Företag',15,'text' FROM providers;
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_user_info (userid,info_id,content)
       SELECT userid,currval('at_provider_user_info_seq'),foretag FROM elever;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_provider_user_info (id,giver,name,order_nr,type)
       SELECT nextval('at_provider_user_info_seq'),giver,'Beskrivning',16,'textarea' FROM providers;
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_user_info (userid,info_id,content)
       SELECT userid,currval('at_provider_user_info_seq'),beskrivning FROM elever;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_provider_user_info (id,giver,name,order_nr,type)
       SELECT nextval('at_provider_user_info_seq'),giver,'Titel',17,'text' FROM providers;
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  mdopen: couldn't open at_provider_user_info: No such file or directory
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_user_info (userid,info_id,content)
       SELECT userid,currval('at_provider_user_info_seq'),titel FROM elever;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
ALTER TABLE at_provider_course_info RENAME TO tmp;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
CREATE TABLE at_provider_course_info (id int4, giver text, name text, order_nr int4, type text, is_unique bool DEFAULT
false);
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_provider_course_info (id,giver,name,order_nr,type,is_unique)
       SELECT *,false FROM tmp;
ERROR:  INSERT has more expressions than target columns
DROP TABLE tmp;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
ALTER TABLE at_course_info RENAME TO tmp;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
CREATE TABLE at_course_info (course_id int4, info_id int4, content text, visible bool DEFAULT true);
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
INSERT INTO at_course_info (course_id,info_id,content,visible)
       SELECT *,false FROM tmp;
ERROR:  Attribute 'visible' is of type 'bool' but expression is of type 'int4'
    You will need to rewrite or cast the expression
DROP TABLE tmp;
NOTICE:  current transaction is aborted, queries ignored until end of transaction block
*ABORT STATE*
COMMIT;
COMMIT
VACUUM;
NOTICE:  Skipping "pg_type" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_attribute" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_proc" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_class" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_indexes" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_group" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_database" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_attrdef" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_relcheck" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_trigger" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_inherits" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_index" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_statistic" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_operator" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_opclass" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_am" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_amop" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_amproc" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_language" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_aggregate" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_ipl" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_inheritproc" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_rewrite" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_listener" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_description" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_shadow" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_user" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_rules" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_views" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_tables" --- only table owner can VACUUM it
ERROR:  pg_ownercheck: class "tmp" not found
VACUUM ANALYZE;
NOTICE:  Skipping "pg_type" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_attribute" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_proc" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_class" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_indexes" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_group" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_database" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_attrdef" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_relcheck" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_trigger" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_inherits" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_index" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_statistic" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_operator" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_opclass" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_am" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_amop" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_amproc" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_language" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_aggregate" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_ipl" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_inheritproc" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_rewrite" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_listener" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_description" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_shadow" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_user" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_rules" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_views" --- only table owner can VACUUM it
NOTICE:  Skipping "pg_tables" --- only table owner can VACUUM it
ERROR:  pg_ownercheck: class "tmp" not found
$ exit

Script done on Sun Oct 15 18:06:22 2000

Cheers,
Palle

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Lennert Buytenhek
Дата:
Сообщение: Selects on tables with cidr type primary keys are broken
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Selects on tables with cidr type primary keys are broken