[IRC-DEV] Corrupción de MMAP bajo FreeBSD

Santiago thebutche at interec.org
Mon Jun 16 17:25:09 CEST 2003



Buenas a tod at s,

Como ya sabeis por GlobalChat hemos sufrido un problema con uno
de los servidores el cual esta montado bajo FreeBSD 4.7-STABLE,
el problema sucede cuando se activa la opción de MMAP en el servidor
el cual al añadir un registro despues del burst a las db este 
recibe un MTIME incorrecto y lo interpreta como una corrupción (como
es lógico), despues de junto jcea intentar buscar el fallo hemos
decido adjuntaros el proceso de dicho fallo para pediros opiniones
y saber si da algun otro problema bajo otras plataformas y intentar
buscar entre todos soluciones.

-- 


Por una mirada, un mundo,	    Santiago <thebutche at interec.org>
Por una sonrisa, un cielo, Por un beso...
¡yo no sé qué te diera por un beso! ( Gustavo Adolfo Becquer )

-------------- next part --------------
                                                        GlobalChat IRC Networks
							    Grupo de desarrollo



.Asunto : Problemas con MMAP bajo FreeBSD.



.Fecha del reporte del problema : lunes, 16 de junio de 2003, 15:18:27 CEST

.S.o afectado(s) : FreeBSD 4.7 - 4.8 testeados y afectados, desconozco si
hay algun otro afectado agradeceria que se comunicara en dicho caso para hacer
pruebas.

.Problema localizado : MMAP al añadir un registro a la tabla o al compactarla
la fecha del MMAP es diferente a la que deberia ser, no es alterado por ningun
programa -externo- a la aplicación servidor del ircd.

.Detalles extras : las bases de datos estan -totalmente limpias- y no se debe
a una corrupcion de dbs.

.Solución -temporal- : Deshabilitar la función MMAP


- - - - - Salida de ircd.log con MMAP - - - - -
Parsing: 5 DB * 32608 n lal43lx :lala
FindNServer: 5(57)
Sending [:devel3.globalchat.org ERROR :DB 'n' - Se detecta una modificacion no autorizada de la BDD
(ALTA) [MTIME: 1055775701<>1055775700] (database). El daemon muere...] to devel.globalchat.org
DB 'n' - Se detecta una modificacion no autorizada de la BDD (ALTA) [MTIME: 1055775701<>1055775700]
(database). El daemon muere...
- - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - Trazada con GDB - - - - - - - - -

Breakpoint 1, db_die_persistent (st1=0xbfbfeb20, st2=0x8165058,
    msg=0x80a5de0 "Se detecta una modificacion no autorizada de la BDD (ALTA)", que_bdd=8 '\b')
    at s_bdd.c:646
646     {
(gdb) p *st1
$1 = {dev = 160768, ino = 891644, size = 258541, mtime = 1055775701}
(gdb) p *st2
$2 = {dev = 160768, ino = 891644, size = 258541, mtime = 1055775700}
(gdb) bt
#0  db_die_persistent (st1=0xbfbfeb20, st2=0x8165058,
    msg=0x80a5de0 "Se detecta una modificacion no autorizada de la BDD (ALTA)", que_bdd=8 '\b')
    at s_bdd.c:646
#1  0x808c445 in db_alta (registro=0xbfbff3d4 "32647 * n lal43lx lala\n", que_bdd=110 'n',
    cptr=0x8173800) at s_bdd.c:1289
#2  0x808e631 in m_db (cptr=0x8173800, sptr=0x81ca500, parc=6, parv=0x80c2a40) at s_bdd.c:2214
#3  0x80649fa in parse_server (cptr=0x8173800, buffer=0x81738d4 "5 DB", bufend=0x81738f0 "")
    at parse.c:804
#4  0x80636c2 in dopacket (cptr=0x8173800, buffer=0x80d8680 "\bI\032æW$Y\200", length=1)
    at packet.c:161
#5  0x806ce37 in read_packet (cptr=0x8173800, rfd=0) at s_bsd.c:1688
#6  0x806e367 in read_message (delay=5) at s_bsd.c:2161
#7  0x805a784 in main (argc=0, argv=0xbfbffbfc) at ircd.c:988
(gdb) frame 1
#1  0x808c445 in db_alta (registro=0xbfbff3d4 "32647 * n lal43lx lala\n", que_bdd=110 'n',
    cptr=0x8173800) at s_bdd.c:1289
1289          db_die_persistent(&st, &tabla_stats[que_bdd],

- - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - -messages.log - - - - - - - - - -
Jun 16 17:05:56 anuria ./ircd/ircd[5195]: DB 'n' - Se detecta una modificacion no autorizada de la B
DD (ALTA) [MTIME: 1055775701<>1055775700] (database). El daemon muere...
- - - - - - - - - - - - - - - - - - - - - - - -


More information about the IRC-Dev mailing list