ERROR: 2 trigger record(s) not found for relation "companies"

From: Cesar Martin <cmartinp(at)gmail(dot)com>
To: FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: ERROR: 2 trigger record(s) not found for relation "companies"
Date: 2010-04-08 16:42:00
Message-ID: u2l308f53031004080942o9ef6bb66y5431397cdf0cb5b0@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas,

Tengo pgpool2 + postgres 8.3.9, ayer se desconecto un nodo por un trigger
que estaba mal hecho, una vez solucionado eso, hoy le lanzado un recovery
del nodo desconectado, todo a transcurrido con normalidad, pero al volver a
reconectar el nodo, inmediatamente el nodo que estaba offline, ha empezado a
dar errores y lo ha vuelto a desconectar. Mirando el log he podido comprobar
que salia un error:

ERROR: 2 trigger record(s) not found for relation "companies"

Al intentar realizar un select sobre esta tabla. He estado comparando las
estructuras en ambos nodos y estan iguales:
*
Columna | Tipo |
Modificadores
--------------------+-----------------------------+----------------------------------------------------------------
company_id | integer | not null default
nextval('companies_company_id_seq'::regclass)
user_id | character varying(255) |
type | character varying(50) |
name | character varying(150) |
abbr | character varying(50) |
activity | text |
products | text |
phone | character varying(32) |
fax | character varying(32) |
address | character varying(150) |
postal_code | character varying(20) |
city | character varying(50) |
province | character varying(50) |
country | character varying(50) |
nif | character varying(20) |
email | character varying(254) |
web | character varying(254) |
contact_name | character varying(30) |
contact_last_name | character varying(100) |
contact_position | character varying(50) |
president | character varying(150) |
director | character varying(150) |
foundation_year | integer |
currency | character(3) |
invoicing | bigint |
res_before | bigint |
res_after | bigint |
investments | bigint |
costs_id | bigint |
n_employees | integer |
logo | character varying(254) |
mission | character varying(254) |
vision | character varying(254) |
status | character(4) |
subscribe_date | timestamp without time zone | default now()
unsubscribe_reason | character varying(254) |
dun_code | character varying(50) |
category0 | character varying(3) |
category1 | character varying(3) |
category2 | character varying(3) |
category3 | character varying(3) |
category4 | character varying(3) |
category5 | character varying(3) |
category6 | character varying(3) |
category7 | character varying(3) |
category8 | character varying(3) |
category9 | character varying(3) |
annex | smallint | default 0
hits | integer | default 0
tracking | smallint | default 0
stock | character varying(31) |
partner | character varying(8) | default
'acceso'::character varying
is_global | smallint | default 1
searchidx | tsvector |
subdir | character varying(255) |
users_public | integer | default 0
users_backend | integer | default 0
ticker | character(32) |
�ndices:
�companies_pkey� PRIMARY KEY, btree (company_id)
�companies_category0_idx� btree (category0)
�companies_category1_idx� btree (category1)
�companies_category2_idx� btree (category2)
�companies_category3_idx� btree (category3)
�companies_category4_idx� btree (category4)
�companies_category5_idx� btree (category5)
�companies_category6_idx� btree (category6)
�companies_category7_idx� btree (category7)
�companies_category8_idx� btree (category8)
�companies_category9_idx� btree (category9)
�companies_company_id_idx� btree (company_id)
�companies_name_idx� btree (name)
�companies_searchidx_idx� gist (searchidx)
�companies_subdir_idx� btree (subdir)
Restricciones de llave for�nea:
�companies_user_id_fkey� FOREIGN KEY (user_id) REFERENCES users(user_id)
ON UPDATE CASCADE ON DELETE SET NULL
Triggers:
companies_tsearch2_trigger BEFORE INSERT OR UPDATE ON companies FOR EACH
ROW EXECUTE PROCEDURE tsearch2('searchidx', 'name', 'activity', 'products',
'abbr')*
-------------------------------------------------------------------------------------------------------------

El script que utilizo para replicar en pgpool, hace un rsync de todos los
directorios y vuelca el valor de las secuencias al pg_xlog antes de forzar
su rotado. Este es el log de pgpool:

NOTICE: Executing base-backup as user postgres
NOTICE: Executing pg_start_backup
pg_start_backup
-----------------
1F7/3E000020
(1 fila)

NOTICE: Creating file recovery.conf
NOTICE: Rsyncing directory base
NOTICE: Rsyncing directory global
NOTICE: Rsyncing directory pg_clog
NOTICE: Rsyncing directory pg_multixact
NOTICE: Rsyncing directory pg_subtrans
NOTICE: Rsyncing directory pg_tblspc
NOTICE: Rsyncing directory pg_twophase
NOTICE: Rsyncing directory pg_xlog
NOTICE: Rsyncing file recovery.conf (with source deletion)
recovery.conf
NOTICE: Executing pg_stop_backup
pg_stop_backup
----------------
1F7/3E000088
(1 fila)

2010-04-08 17:18:38 LOG: pid 20525: 1st stage is done
2010-04-08 17:18:38 LOG: pid 20525: starting 2nd stage
2010-04-08 17:18:38 LOG: pid 20525: all connections from clients have been
closed
2010-04-08 17:18:38 LOG: pid 20525: CHECKPOINT in the 2nd stage done
2010-04-08 17:18:38 LOG: pid 20525: starting recovery command: "SELECT
pgpool_recovery('pgpool-recovery-pitr', '192.168.50.2',
'/var/lib/pgsql/data')"
2010-04-08 17:18:38 NOTICE: Executing pgpool-recovery-pitr as user postgres
2010-04-08 17:18:38 NOTICE: Executing flush of sequencesces
2010-04-08 17:18:38 NOTICE: Executing pg_switch_xlog
pg_switch_xlog
----------------
1F7/3F02FDC0
(1 fila)

2010-04-08 17:18:41 NOTICE: Host: 192.168.50.2
2010-04-08 17:18:41 NOTICE: Executing pgpool_remote_start as user postgres
2010-04-08 17:18:41 NOTICE: Starting remote PostgreSQL server
2010-04-08 17:18:41 NOTICE: Salida del comando 0
2010-04-08 17:18:48 LOG: pid 20525: 1 node restarted
2010-04-08 17:18:48 LOG: pid 20525: send_failback_request: fail back 1 th
node request from pid 20525
2010-04-08 17:18:48 LOG: pid 20702: starting fail back. reconnect host
192.168.50.2(5432)
2010-04-08 17:18:48 LOG: pid 20702: execute command:
/var/lib/pgsql/data/pgpool-failover 1 192.168.50.2 5432 /var/lib/pgsql/data
0 0
Null message body; hope that's ok
2010-04-08 17:18:48 NOTICE: Executing failover:
2010-04-08 17:18:48 NOTICE: Failover of node 1 at hostname 192.168.50.2. New
master node is 0. Old master node was 0.
2010-04-08 17:18:48 LOG: pid 20702: failover_handler: set new master node:
0
2010-04-08 17:18:48 LOG: pid 20702: failback done. reconnect host
192.168.50.2(5432)
2010-04-08 17:18:48 LOG: pid 20525: recovery done
2010-04-08 17:18:48 ERROR: pid 20525: pcp_child: pcp_read() failed. reason:
Success
2010-04-08 17:19:03 ERROR: pid 25037: read_kind_from_backend: 1 th kind E
does not match with master or majority connection kind C
2010-04-08 17:19:03 ERROR: pid 25037: kind mismatch among backends. Possible
last query was: "UPDATE companies SET hits=hits+1 WHERE company_id='6506'"
kind details are: 0[C] 1[E]
2010-04-08 17:19:03 LOG: pid 25037: notice_backend_error: 1 fail over
request from pid 25037
2010-04-08 17:19:03 LOG: pid 20702: starting degeneration. shutdown host
192.168.50.2(5432)
2010-04-08 17:19:04 LOG: pid 20702: execute command:
/var/lib/pgsql/data/pgpool-failover 1 192.168.50.2 5432 /var/lib/pgsql/data
0 0
Null message body; hope that's ok

He estado buscando el error que me da al hacer cualquier consulta sobre la
tabla companies, pero lo poco que he encontrado, recomienda restaurar de
backup...
Hay alguna otra solucion??
Se os ocurre que ha podido pasar?? Supongo que esa tabla ha quedado corrupta
por algun motivo, lo que no se es el motivo.

Gracias, un saludo a todos

--
César Martín Pérez
cmartinp(at)gmail(dot)com

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Julio Cesar Rodriguez Dominguez 2010-04-08 16:46:32 Re: Error al restaurar base ERROR: unsupported byval length: 8
Previous Message Alvaro Herrera 2010-04-08 16:36:40 Re: Error al restaurar base ERROR: unsupported byval length: 8