Cómo hacer fallar el servidor Firebird
A veces es necesario provocar un fallo en el motor del servidor Firebird, para crear un archivo de volcado o comprobar la fiabilidad de su esquema de copia de seguridad/replicación, o con fines de depuración.
Para provocar el fallo en Windows, puede utilizar la siguiente UDF: badudf.dll.7z
Descárguela, colóquela en la carpeta de UDF y cree un archivo .bat con el siguiente contenido:
@echo off
setlocal enabledelayedexpansion enableextensions
set fbc=C:\HQBird25.in
set dbnm=%~dp0tmptest.fdb.tmp
set usr=SYSDBA
set psw=masterkey
del 2>nul
echo create database 'localhost:!dbnm!' user '!usr!' password '!psw!'; | "!fbc!\isql.exe" -q -z
(
echo set echo on;
echo declare external function crashme
echo returns int by value
echo entry_point 'crashme' module_name 'badudf';
echo commit;
echo show function;
echo select crashme(^) from rdb$database;
) > %~dp0tmptest.sql.tmp
"!fbc!\isql.exe" ^
localhost:!dbnm! ^
-q -i %~dp0tmptest.sql.tmp ^
-user !usr! -pas !psw!
del !dbnm!
del %~dp0tmptest.sql.tmp
En el script, asigne a la variable de entorno fbc la ruta a la carpeta de Firebird, por ejemplo
c:\Firebird25.in o C:\Firebird30
y su nombre de usuario y contraseña de superusuario reales (SYSDBA/masterkey es el valor predeterminado) a las variables usr y psw.
El script creará la base de datos temporal, registrará la UDF en ella y ejecutará la “consulta asesina”, después de lo cual eliminará la base de datos.
El resultado será un fallo de Firebird y, si ha configurado correctamente el Informe de errores de Windows, el volcado del proceso firebird.exe.
Por favor, ¡no registre BadUDF.dll en la base de datos de producción!
También, elimínela de la carpeta de UDF después del experimento.