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 |
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 |