Skip site navigation (1) Skip section navigation (2)

Re: COULD NOT OPEN SEGMENT 1

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: jose ricardo <joripeca(at)yahoo(dot)com(dot)ar>
Cc: psql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: COULD NOT OPEN SEGMENT 1
Date: 2006-11-28 18:41:51
Message-ID: 20061128184151.GL20159@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
jose ricardo escribió:
> Lo unico que se me ocurre es que hay un indice que esta corrupto.
> En que sistema operativo estas ejecutando esto?
>  
>  Linux madrake 10.0
>  
>  Si tienes GDB a mano,
> pegate al backend antes de mostrar el error, pon un breakpoint en
> errfinish y repite la consulta para obtener un backtrace.  Muestra el
> backtrace aca.
>  
>  Perdona mi ignoracia pero no manejo todo lo que me dices.  el gestor
>  que tego es pgadmin III pero en realidad lo uso muy poco casi siempre
>  trabajo de psql.  si me explicas un poco o me dice donde puedo leer
>  al respecto te lo agradezco.

Ok, presta atencion.  Primero que nada, conectate a la base de datos con
psql.  Luego examina la lista de procesos y determina cual es el que
corresponde a la conexion que acabas de hacer.  (Supongo que la manera
mas facil es hacer un "ps" antes de conectarte, y otro "ps" despues de
conectarte, obviamente en otro terminal, y ver cual es el que es nuevo
en el segundo listado).  Obtienes la lista de procesos con:

ps uw -C postmaster

Deberias ver algo asi:

alvherre  4939  0.0  0.2  28824  2756 pts/0    S+   15:23   0:00 postmaster
alvherre  4941  0.0  0.1  28808  1696 pts/0    S+   15:23   0:00 postgres: writer process
alvherre  4942  0.0  0.0  20884   860 pts/0    S+   15:23   0:00 postgres: stats buffer process
alvherre  4943  0.0  0.0  19880   980 pts/0    S+   15:23   0:00 postgres: stats collector process
alvherre  6013  0.0  0.2  30124  2628 pts/0    S+   15:28   0:00 postgres: alvherre template1 [local] idle

El que me interesa en este caso es el "6013", que esta conectado a la
base de datos "template1" con el usuario "alvherre".

Luego, lanzas GDB pegado al proceso 6013:
gdb -p 6013

$ gdb -p 6013
GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Attaching to process 6013
[alguna chachara va aqui]
(gdb)

Aqui en el prompt "gdb", ejecuta "breakpoint errfinish", y a
continuacion "cont".  Esto se debe "quedar pegado".

Entonces vuelves a la ventana donde abriste psql e ingresas tu join.
Antes de arrojarte el error que habias mencionado, deberia quedarse
pegado y la ventana de GDB deberia volver a mostrar el prompt "(gdb)".
En esa ventana escribe "bt".

Luego manda la salida del "bt" por correo a la lista.


> Quizas tienes la base de datos en discos IDE?
> 
> Si 

Si no deshabilitaste el cache de escritura, tu base de datos puede
sufrir problemas continuamente.  Te sugiero que lo deshabilites.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

pgsql-es-ayuda by date

Next:From: Martin MarquesDate: 2006-11-28 20:57:54
Subject: Re: COULD NOT OPEN SEGMENT 1
Previous:From: jose ricardoDate: 2006-11-28 17:48:27
Subject: Re: COULD NOT OPEN SEGMENT 1

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group