Hola estamos trabajando sobre un servidor de postgresql 8.1 que está en cluster con pgpool II en la versión 2.4. Recientemente nos dimos cuenta de que cuando realizamos un insert con un select para uno de los campos, el nodo 2 se cae.

-¿Hay alguna manera de solucionar ese problema?

Aqui está el log en el momento de realizar la operación:

/2009-09-07 19:34:20 LOG: pid 15563: statement: INSERT INTO ventas_pago( id_venta, id_corte_caja, id_sucursal, numero_caja, id_forma_pago, monto) VALUES ( (select max(id_venta) from ventas where numero_caja=1 and id_sucursal=59 and id_corte_caja=2),2, 59, 1, 1, 6.50);
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: Query: BEGIN
2009-09-07 19:34:20 DEBUG: pid 15563: detect_error: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: kind: Z
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: transaction state: T
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: Query: BEGIN
2009-09-07 19:34:20 DEBUG: pid 15563: detect_error: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: kind: Z
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: transaction state: T
2009-09-07 19:34:20 DEBUG: pid 15563: get_insert_command_table_name: extracted table name: "ventas_pago"
2009-09-07 19:34:20 DEBUG: pid 15563: do_query: kind: T
2009-09-07 19:34:20 DEBUG: pid 15563: num_fileds: 1
2009-09-07 19:34:20 DEBUG: pid 15563: do_query: kind: D
2009-09-07 19:34:20 DEBUG: pid 15563: do_query: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: do_query: kind: Z
2009-09-07 19:34:20 DEBUG: pid 15563: get_insert_command_table_name: extracted table name: "ventas_pago" 2009-09-07 19:34:20 DEBUG: pid 15563: do_command: Query: LOCK TABLE "ventas_pago" IN SHARE ROW EXCLUSIVE MODE
2009-09-07 19:34:20 DEBUG: pid 15563: detect_error: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: kind: Z
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: transaction state: T
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: Query: LOCK TABLE "ventas_pago" IN SHARE ROW EXCLUSIVE MODE
2009-09-07 19:34:20 DEBUG: pid 15563: detect_error: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: kind: Z
2009-09-07 19:34:20 DEBUG: pid 15563: do_command: transaction state: T
2009-09-07 19:34:20 DEBUG: pid 15563: wait_for_query_response: waiting for backend 0 completing the query
2009-09-07 19:34:20 DEBUG: pid 15563: detect_error: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: detect_error: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: detect_error: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: detect_error: kind: C
2009-09-07 19:34:20 DEBUG: pid 15563: wait_for_query_response: waiting for backend 1 completing the query 2009-09-07 19:34:20 DEBUG: pid 15563: read_kind_from_backend: read kind from 0 th backend C NUM_BACKENDS: 2 2009-09-07 19:34:20 DEBUG: pid 15563: read_kind_from_backend: read kind from 1 th backend E NUM_BACKENDS: 2 2009-09-07 19:34:20 ERROR: pid 15563: read_kind_from_backend: 1 th kind E does not match with master or majority connection kind C 2009-09-07 19:34:20 ERROR: pid 15563: kind mismatch among backends. Possible last query was: "INSERT INTO ventas_pago( id_venta, id_corte_caja, id_sucursal, numero_caja, id_forma_pago, monto) VALUES ( (select max(id_venta) from ventas where numero_caja=1 and id_sucursal=59 and id_corte_caja=2),2, 59, 1, 1, 6.50);" kind details are: 0[C] 1[E] 2009-09-07 19:34:20 LOG: pid 15563: notice_backend_error: 1 fail over request from pid 15563
2009-09-07 19:34:20 DEBUG: pid 14949: failover_handler called
2009-09-07 19:34:20 DEBUG: pid 14949: failover_handler: starting to select new master node 2009-09-07 19:34:20 LOG: pid 14949: starting degeneration. shutdown host node2(5432)/

Saludos

Atentamente

Manuel Alejandro Estevez Fernandez

Responder a