Re: PANIC: ERRORDATA_STACK_SIZE exceeded

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: PANIC: ERRORDATA_STACK_SIZE exceeded
Date: 2006-06-20 19:49:59
Message-ID: 44985167.70704@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro Herrera escribió:

> Hmm, interesante, ahora que examino mas de cerca el log, la secuencia
> relevante es esta:
>
>
> 2006-06-20 18:56:07 - postgres(2616-10997)ERROR: no existe la relación «pruebas.articulos»
> 2006-06-20 18:56:07 - postgres(2616-10997)WARNING: ignorando el carácter UTF-8 no convertible 0xf36e20ab
> 2006-06-20 18:56:07 - postgres(2616-10997)WARNING: ignorando el carácter UTF-8 no convertible 0xe16374
> 2006-06-20 18:56:07 - postgres(2616-10997)WARNING: ignorando el carácter UTF-8 no convertible 0xe16374
> 2006-06-20 18:56:07 - postgres(2616-10997)WARNING: ignorando el carácter UTF-8 no convertible 0xe16374
> 2006-06-20 18:56:07 - postgres(2616-10997)PANIC: ERRORDATA_STACK_SIZE exceeded
> 2006-06-20 18:56:07 - postgres(2616-10997)SENTENCIA: copy pruebas.articulos (referencia, descripcion, ref_proveedor, proveedor, coste, pventa) from 'c:\\temp\\exportmdb\\ficheros\\exp_articulos.txt' csv;
>
>
> Primero que nada, que tienes en log_line_prefix? Ese 10997 es constante
> en todo este reporte; parece ser un ID de transaccion y es una pista
> importante. Es importante porque el ERROR deberia haber terminado la
> transaccion, sin embargo a continuacion seguramente trata de mostrar la
> linea del archivo de importacion que tiene problemas (o que se yo, algo
> esta tratando de convertir a UTF-8 o de vuelta), y luego, en ese intento
> de conversion, se queda sin espacio de stack, y por eso el PANIC.
>
> Esto es reproducible supongo? Puedes pasarme por favor la siguiente
> informacion:
>
> - server_encoding
> - client_encoding
> - un archivo con la sentencia COPY exacta que estas usando
> - un archivo con los datos CSV (se me ocurre que puedes inventar un
> archivo con una linea, o quizas un archivo vacio, que cause el mismo
> error, dado que el problema es que la tabla no existe)
> - la version exacta de Postgres, reportada segun SELECT version();
>

log_line_prefix = '%t - %u(%p-%x)'

postgres=# show server_encoding;
server_encoding
-----------------
UTF8
(1 fila)

postgres=# show client_encoding;
client_encoding
-----------------
UTF8
(1 fila)
* Este el el valor por defecto de client_encoding, antes del error lo modifico.

postgres=# select version();
version
------------------------------------------------------------------------------------------
PostgreSQL 8.1.1 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4.2 (mingw-special)
(1 fila)

Reproducción del error:
-----------------------
C:\Archivos de programa\PostgreSQL\8.1\bin>psql postgres postgres
Bienvenido a psql 8.1.1, la terminal interactiva de PostgreSQL.

Digite: \copyright para ver los tÚrminos de distribuci¾n
\h para ayuda de comandos SQL
\? para ayuda de comandos psql
\g o or termine con punto y coma para ejecutar una consulta
\q para salir

Precauci¾n: El c¾digo de pßgina de la consola (850) difiere del c¾digo
de pßgina de Windows (1252).
Los caracteres de 8 bits pueden funcionar incorrectamente.
Vea la pßgina de referencia de psql ½Notes for Windows users╗
para obtener mßs detalles.
postgres=# set client_encoding to windows_1250;
SET
postgres=# copy pruebas.x from 'c:\\temp\\datoscopy.txt' csv;
PANIC: ERRORDATA_STACK_SIZE exceeded
el servidor ha cerrado la conexi¾n inesperadamente,
probablemente porque termin¾ de manera anormal
antes o durante el procesamiento de la petici¾n.
La conexi¾n al servidor se ha perdido. Intentando reiniciar: fall¾.
!>

NOTAS:
------
1.- El error se produce cuando el esquema si existe, pero la tabla no.
Si el esquema tampoco existe:

postgres=# copy x.x from 'c:\\temp\\datoscopy.txt' csv;
ERROR: no existe el esquema «x»

2.- Si cambio de base de datos y vuelvo a la base de datos en la que no existe la tabla, *ya no se
produce el error* :

Bienvenido a psql 8.1.1, la terminal interactiva de PostgreSQL.

Digite: \copyright para ver los términos de distribución
\h para ayuda de comandos SQL
\? para ayuda de comandos psql
\g o or termine con punto y coma para ejecutar una consulta
\q para salir

postgres=# \c otra
Ahora está conectado a la base de datos «otra».
soft-com=# \c postgres
Ahora está conectado a la base de datos «postgres».
postgres=# copy pruebas.x from 'c:\\temp\\datoscopy.txt' csv;
ERROR: no existe la relación «pruebas.x»

No se si olvido enviar algo.

Saludos,

--
*****************************************
Oswaldo Hernández
oswaldo(at)soft-com(dot)es
*****************************************

Attachment Content-Type Size
copy.txt text/plain 51 bytes
datoscopy.txt text/plain 4 bytes

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Daniel Carrero 2006-06-20 19:50:56 Re: Consulta sobre funcion
Previous Message Luis Rodrigo Gallardo Cruz 2006-06-20 19:26:44 Re: Consulta sobre funcion