Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2014
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Desconexión FBServer

Hola a tod@s, un cliente a cambiado de servidor y desde entonces tiene muchas desconexiones del Firebird, lo que provoca que todos los puestos conectados a veces caigan poco a poco y otras veces todos de golpe.

La versión del firebird es la 2.1.4. La base de datos pesa unos 2.5GB, está en Windows Server 2012 estándar 64bits y sobre discos SDD en raid 1. La ruta de ficheros temporales (TempDirectories) apunta a otro disco (mecánicos SAS en raid 5). La máquina tiene 16GB de RAM y un xeon a 2GHz.

Examinando el log de firebird me encuentro con muchísimos registros de este tipo

Cita:
SERVIDOR (Server) Mon May 05 16:37:06 2014
Database: unknown, SERVER/process_packet
unable to allocate memory from operating system

SERVIDOR (Server) Mon May 05 15:54:07 2014
INET/inet_error: read errno = 10054

SERVIDOR (Server) Mon May 05 15:09:26 2014
Database: ThreadData::start() failed:
operating system directive _beginthreadex failed
Espacio de almacenamiento insuficiente para procesar este comando.
La red del cliente debe estar certificada (eso dice), aún así ha cambiado uno de los switch que tenía un poco antiguo. Por mi parte se ha modificado los parámetros de LanmanServer del registro de Windows para modificar el IRPStackSize (actualmente a 24). También se ha enredado con los parámetros de configuración del firebird probando bastantes valores, desde como aparecen por defecto a como están actualmente siguiendo recomendaciones de distintos foros y blogs:

Cita:
DefaultDbCachePages = 20480
TempBlockSize = 2097152
TempCacheLimit=134217728
TcpRemoteBufferSize = 16384
Y por último, perdón por todo el rollo, os dejo un volcado de memoria del error por si os puede servir de pista:

Cita:
FAULTING_IP:
fbserver!REMOTE_reset_statement+2b [e:\fb21_dev_svn\b2_1_release_r2_1_4\firebird2\src\remote\remote.cpp @ 621]
0054413b 8b5108 mov edx,dword ptr [ecx+8]

EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 0054413b (fbserver!REMOTE_reset_statement+0x0000002b)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: a1f6f461
Attempt to read from address a1f6f461

CONTEXT: 00000000 -- (.cxr 0x0;r)
eax=00000000 ebx=017f768c ecx=00000000 edx=00000000 esi=017f75fc edi=00000000
eip=77aae1a4 esp=017f74d4 ebp=017f7654 iopl=0 nv up ei pl nz na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000206
ntdll!NtWaitForMultipleObjects+0xc:
77aae1a4 c21400 ret 14h

DEFAULT_BUCKET_ID: INVALID_POINTER_READ

PROCESS_NAME: fbserver.exe

ERROR_CODE: (NTSTATUS) 0xc0000005 - La instrucci n en 0x%08lx hace referencia a la memoria en 0x%08lx. La memoria no se pudo %s.

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - La instrucci n en 0x%08lx hace referencia a la memoria en 0x%08lx. La memoria no se pudo %s.

EXCEPTION_PARAMETER1: 00000000

EXCEPTION_PARAMETER2: a1f6f461

READ_ADDRESS: a1f6f461

FOLLOWUP_IP:
fbserver!REMOTE_reset_statement+2b [e:\fb21_dev_svn\b2_1_release_r2_1_4\firebird2\src\remote\remote.cpp @ 621]
0054413b 8b5108 mov edx,dword ptr [ecx+8]

NTGLOBALFLAG: 0

APPLICATION_VERIFIER_FLAGS: 0

APP: fbserver.exe

ANALYSIS_VERSION: 6.3.9600.17029 (debuggers(dbg).140219-1702) x86fre

FAULTING_THREAD: 00001a98

PRIMARY_PROBLEM_CLASS: INVALID_POINTER_READ

BUGCHECK_STR: APPLICATION_FAULT_INVALID_POINTER_READ

LAST_CONTROL_TRANSFER: from 00546d1d to 0054413b

STACK_TEXT:
017f7da4 00546d1d 57a1f2dc 76563b84 154adbec fbserver!REMOTE_reset_statement+0x2b
017f7dcc 0053f037 76563c00 154adbec 00000000 fbserver!xdr_protocol+0x71d
017f7de4 0054429b 76563b84 154adbec 005b433a fbserver!receive+0x17
017f7df0 005b433a 154adbec 887c883e 002de044 fbserver!rem_port::receive+0xb
017ffea8 005ad0b0 002d5f24 0000003a 002de088 fbserver!SRVR_multi_thread+0x21a
017fff0c 0041d0c0 00000000 00000000 004040d3 fbserver!inet_connect_wait_thread+0xb0
017fff18 004040d3 887c09de 00000000 00000000 fbserver!ThreadPriorityScheduler::run+0x10
017fff44 74ab29bb 002de088 fcafae69 00000000 fbserver!`anonymous namespace'::threadStart+0x53
017fff7c 74ab2a47 00000000 7603850d 00892b48 msvcr80!_callthreadstartex+0x1b
017fff84 7603850d 00892b48 017fffd4 77adbf39 msvcr80!_threadstartex+0x66
017fff90 77adbf39 00892b48 ffa33a9b 00000000 kernel32!BaseThreadInitThunk+0xe
017fffd4 77adbf0c 74ab29e1 00892b48 ffffffff ntdll!__RtlUserThreadStart+0x72
017fffec 00000000 74ab29e1 00892b48 00000000 ntdll!_RtlUserThreadStart+0x1b


STACK_COMMAND: ~3s; .ecxr ; kb

FAULTING_SOURCE_LINE: e:\fb21_dev_svn\b2_1_release_r2_1_4\firebird2\src\remote\remote.cpp

FAULTING_SOURCE_FILE: e:\fb21_dev_svn\b2_1_release_r2_1_4\firebird2\src\remote\remote.cpp

FAULTING_SOURCE_LINE_NUMBER: 621

SYMBOL_STACK_INDEX: 0

SYMBOL_NAME: fbserver!REMOTE_reset_statement+2b

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: fbserver

IMAGE_NAME: fbserver.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 4d47b640

FAILURE_BUCKET_ID: INVALID_POINTER_READ_c0000005_fbserver.exe!REMOTE_reset_statement

BUCKET_ID: APPLICATION_FAULT_INVALID_POINTER_READ_fbserver!REMOTE_reset_statement+2b

ANALYSIS_SOURCE: UM

FAILURE_ID_HASH_STRING: um:invalid_pointer_read_c0000005_fbserver.exe!remote_reset_statement

FAILURE_ID_HASH: {994dcbc6-c72d-26b6-3dd5-2143d14fc12b}

Followup: MachineOwner
---------
Si alguien puede encaminarme un poco, ya no sé que hacer más.
Un saludo y gracias de antemano.
Responder Con Cita
  #2  
Antiguo 05-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
INET/inet_error: read errno = 10054 or 10038 or 10093
Multiple entries in interbase.log or firebird.log with errors 10054, 10038, 10093, etc. These errors are caused by network problems - check your hubs, network adapters, etc. It is not an InterBase or Firebird error in itself, but it may cause problems
En teoría, ese número de error inidca un fallo en la red. Deberías hacer pruebas, poco a poco, primero un equipo conectado y probar. Si va bien entonces conectas otro... y así, hasta que encuentres al culpable.
Si de primera hora no funciona tampoco, entonces puede que el problema esté en el servidor.

Asegúrate, antes de empezar, que la base de datos está bien y no ha sufrido ningún problema en esos cortes.
Responder Con Cita
  #3  
Antiguo 05-05-2014
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Desconexión FBServer

Hola y lo primero muchísimas gracias por la rápida respuesta.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
En teoría, ese número de error inidca un fallo en la red.
Según el cliente la red está certificada y además con el anterior servidor (Server 2003) no tenía este problema. De todas formas ha cambiado un switch que tenía viejo. También se ha hecho algún "ping -t" contra algún equipo sospechoso (hora de error 10054 coincide con conexión de algún puesto) y todo correcto, no pierde ningún paquete.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Deberías hacer pruebas, poco a poco, primero un equipo conectado y probar. Si va bien entonces conectas otro... y así, hasta que encuentres al culpable.
No tengo esta posibilidad, siempre hay gente trabajando y además son muchos equipos (simultáneos entre 20 y 30).

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Si de primera hora no funciona tampoco, entonces puede que el problema esté en el servidor.
Aquí es donde me he liado a tocar el LanmanServer del registro de Windows y el archivo de configuración del firebird.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Asegúrate, antes de empezar, que la base de datos está bien y no ha sufrido ningún problema en esos cortes.
Efectivamente, estos cortes dejan cientos de páginas huérfanas (cosa que asusta). Por cierto el barrido (sweep) se hace de forma manual de madrugada, es ahí donde se ven esos cientos de páginas huérfanas.

Un saludo.
Responder Con Cita
  #4  
Antiguo 05-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hombre, pues así poco podemos hacer desde aquí.

Cita:
Empezado por ARPE1 Ver Mensaje
Según el cliente la red está certificada
He visto "redes certificadas" donde incluso se habían equivocado en la categoría del cableado. Yo no haría mucho caso a eso.
Cita:
Empezado por ARPE1 Ver Mensaje
y además con el anterior servidor (Server 2003) no tenía este problema.
Prueba a poner el otro.
De todas formas, puede ser problema físico de ese servidor, y la red sigue estando certificada

Otro apunte, por tus palabras deduzco que son muchas conexiones, ¿por qué habéis puesto un windows en lugar de cambiar, ya puestos, a linux?, la diferencia es enorme.
Responder Con Cita
  #5  
Antiguo 06-05-2014
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hombre, pues así poco podemos hacer desde aquí.
He visto "redes certificadas" donde incluso se habían equivocado en la categoría del cableado. Yo no haría mucho caso a eso.
Ya, eso sospechaba, ayer tirando de la lengua al cliente dijo que tenía unos equipos con tarjetas de 1000 pero que se conectaban a 100, así que algo mal hay.
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Prueba a poner el otro.
De todas formas, puede ser problema físico de ese servidor, y la red sigue estando certificada
No es posible, el otro lo jubilaron, dio todo lo que pudo, incluso más.
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Otro apunte, por tus palabras deduzco que son muchas conexiones, ¿por qué habéis puesto un windows en lugar de cambiar, ya puestos, a linux?, la diferencia es enorme.
No dependía de nosotros, usan el servidor para otras aplicaciones, además hay una buena cantidad de funciones UDF escritas para Windows.

Para los 10054's se le comentará al cliente que revise bien su red, está claro que no está bien. Y con los errores de reserva de memoria ¿alguna pista?
Responder Con Cita
  #6  
Antiguo 06-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ARPE1 Ver Mensaje
usan el servidor para otras aplicaciones
Muy mala idea.
Cita:
Empezado por ARPE1 Ver Mensaje
Y con los errores de reserva de memoria ¿alguna pista?
Primero se arregla una cosa y luego toca la otra, quién sabe si está provocado por lo mismo.
Responder Con Cita
  #7  
Antiguo 07-05-2014
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Si, a veces es mejor ir pasito a pasito, el cliente ha quedado para que le revisen la red. Lo de los otros errores lo comentaba porque después de todos estos días está claro que los 10054 ya los tenía antes, así que lo novedoso del tema son los cortes del firebird que provocan esos cientos de páginas huérfanas y siempre se dan tras los errores de reserva de memoria. Ayer el IBExpert se quejó como que no tenía permisos suficientes para abrir la tabla MON$ATTACHMENTS, hago y deshago lo que quiero con todas las tablas y voy a echarle un vistazo a esa y se queja... flipante.
Lo que queráis, esperamos a ver qué le dicen los técnicos de la red pero creo que hay dos errores paralelos.

Un saludo y muchísimas gracias.
Responder Con Cita
  #8  
Antiguo 07-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Espero que tengan buenas copias de seguridad.
Deberías estar preparado para lo que viene después de que los técnicos revisen la red, ¿por qué?, porque te adelanto lo que te van a decir: "La red está perfectamente bien".
Si hay problemas de red (cables, routers, tarjetas de red, etc.), que los hay, porque ese código de error lo demuestra, la base de datos estará dañada, así que no es que haya 2 problemas, uno con la red y otra con la BD, sino que el problema de la red ha dañado la BD. Puedo asegurarte que una BD firebird no se estropea sola.
Responder Con Cita
  #9  
Antiguo 24-06-2014
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Hola de nuevo, después de todo este tiempo, los técnicos han revisado la red. Han cambiado algún equipo, algunas tarjetas y renovado los switch's. Después de esto hemos estado analizando unos días el log del firebird, los errores se han reducido, ya no tienen cortes del motor de FB, además al hacer los procesos de mantenimiento ya no aparecen las páginas de huérfanos, pero sigue habiendo algún registro con el error 10054 y el siguiente
Cita:
Database: unknown, SERVER/process_packet
unable to allocate memory from operating system
Examinando otros log's de otros clientes en todos aparece algún 10054, así que ahora nos preocupa más este último error, ¿por qué indica "unknown database" si sólo hay una?, ¿hay alguna forma de darle más memoria a FBServer en Windows Server?, usamos UDF's propias ¿puede ser que no liberemos bien la memoria usa en ellas?

un saludo y gracias de antemano
Responder Con Cita
  #10  
Antiguo 24-06-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ARPE1 Ver Mensaje
¿puede ser que no liberemos bien la memoria usa en ellas?
Adivina, adivinanza... no tenemos una bola de cristal
Responder Con Cita
  #11  
Antiguo 24-06-2014
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Hola, ¡¡qué rapidez!!
Cita:
Adivina, adivinanza... no tenemos una bola de cristal
¡¡qué pena!!, ¡¡ya podríamos ser un poco brujos!!

Al grano, las udf's que hemos creado las declaramos enviando el parámetro de salida como uno más de entrada
Código SQL [-]
DECLARE EXTERNAL FUNCTION nombre
    CSTRING(32765),
    CSTRING(400)
RETURNS Parameter 2
ENTRY_POINT 'nombre' MODULE_NAME 'nombreDLL.dll'
De esta forma tenemos entendido que es el propio FB el que gestiona la memoria necesaria para ese parámetro de salida. Antes las definíamos como salida usando FREE_IT y usando la función ib_util_malloc de la librería "ib_util.dll", pero tuvimos peores resultados (más cortes).

un saludo y espero haber puesto imagen en la bola
Responder Con Cita
  #12  
Antiguo 24-06-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Una pregunta, ¿por qué unos parámetros string tan grandes?
Responder Con Cita
  #13  
Antiguo 25-06-2014
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Una pregunta, ¿por qué unos parámetros string tan grandes?
Era un ejemplo, de todas formas alguna tenemos así, puede que se envíe alguna concatenación de campos, ese es el máximo que nos permite, con blob's ya estuvimos enredando y nos daba más errores y sobretodo eran mucho más lentos. ¿Por qué lo preguntas?, ¿pueden venir por ahí los errores de memoria de Windows?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
liberar fbserver paty_rlopez Firebird e Interbase 7 22-04-2008 18:51:26
problemas con fbserver thebignico Firebird e Interbase 1 14-09-2006 14:55:09
Problemas de desconexion de la BD Giniromero Firebird e Interbase 6 27-12-2005 18:56:06
fbserver.exe: terminated abnormally (4294967295) JMOTON Firebird e Interbase 1 29-11-2004 16:58:54
Desconexión de red Kira Windows 0 06-04-2004 16:45:04


La franja horaria es GMT +2. Ahora son las 02:03:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi