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

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 (view raw or flat)
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: datoscopy.txt
Description: text/plain (4 bytes)
Attachment: copy.txt
Description: text/plain (51 bytes)

In response to

Responses

pgsql-es-ayuda by date

Next:From: Daniel CarreroDate: 2006-06-20 19:50:56
Subject: Re: Consulta sobre funcion
Previous:From: Luis Rodrigo Gallardo CruzDate: 2006-06-20 19:26:44
Subject: Re: Consulta sobre funcion

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