Einzelnen Beitrag anzeigen

ZOD

Registriert seit: 6. Mai 2009
97 Beiträge
 
#1

Portierung Firebird von Win auf Linux: UDF Lib Fehler

  Alt 20. Apr 2023, 10:34
Datenbank: Firebird • Version: 2.5 • Zugriff über: dbexpress
Hallo zusammen,

wir arbeiten derzeit daran, unseren FB Server auf Linux zu migrieren, unter Win verwenden wir derzeit FB2.5 (daher habe ich FB2.5 als ergänzende Angabe für den Thread hinterlegt).

Da ich selbst leider nahezu keine Erfahrung mit Linux habe, haben wir uns dafür Unterstützung geholt.
Die Installation der Virtualisierung auf dem Host, der VM und von FB hat gut geklappt, der FB Server läuft, Datenbanken können aus der Sicherung vom aktuellen FB2.5 Server (erzeugt mit dem FB CL Befehl "gback") importiert werden und angesprochen werden.

Leider bekommen wir eine notwendige UDF Library nicht zum laufen (FreeAdhocUDF (http://freeadhocudf.org) ), wir bekommen den Fehler

Use of UDF/BLOB-filter module at location FreeAdhocUDF is not allowed by server configuration.

Zuerst haben wir es mit FB3 versucht und sind an Fehlern beim UDF aufruf z.B. in selects gescheitert. Dann haben wir es mit FB4 versucht und sind ebenfalls gescheitert.
Uns ist nicht klar, welche Server Konfiguration (darauf verweist die Fehlermeldung) wir falsch eingestellt haben.

Kann mir jemand dazu Hilfe bzw. Tipps beben? Das wäre klasse. Dazu sind natürlich weitere Infos nötig, im Folgenden versuche ich die Details so gut wie möglich zu beschreiben.

Vorher noch eine Anmerkung zum Thema UDF Ablösung:
sicher werden in Zukunft auch bei uns die UDF durch aktuelle Konzepte ersetzt, derzeit möchten wir das aber aus pragmatischen Gründen (viele Abfragen müssen dafür geändert werden) derzeit noch nicht angehen .. wenn möglich.

Unten nun die Detais zu unserem Problem.

Danke und Gruß
Markus

Was wir aktuell erledigt haben:
  1. Aufbau Linux Host (HP DL380 Gen9) -> erledigt
  2. Installation Virtualisierung Proxmox 7.4.3 -> erledigt
  3. Aufsetzen einer Linux VM (Debian 11) -> erledigt
  4. Installation Firebird 4.0 -> erledigt

Hier die Eckdaten der VM für den FB Server:
  • Debian 11 64bit
  • uname -a sagt: Linux RMVM18 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux

Firebird haben wir sowohl über apt installiert...
firebird3.0-common 3.0.7.33374.ds
firebird3.0-server 3.0.7.33374.ds
firebird3.0-server-core q3.0.7.33374.ds
firebird3.0-utils q3.0.7.33374.ds

... als auch alternativ direkt mit den Installations-Paketen von
https://firebirdsql.org/en/firebird-3-0/#Linux_AMD64:

https://github.com/FirebirdSQL/fireb...0.amd64.tar.gz

Am Ende haben wir es dann noch mit der 4er-Version probiert:

https://github.com/FirebirdSQL/fireb...0.amd64.tar.gz

Die Abhängigkeiten von den zusätzlich zu installierenden lib-Dateien
haben wir erfolgreich geprüft mit...

ldd FreeAdhocUDF.so

Ergebnis:
cd.1 (0x00007fff557da000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fae5a559000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fae5a384000)
libib_util.so => /lib/x86_64-linux-gnu/libib_util.so (0x00007fae5a37f000)
libicudataFAU.so.44 => /lib/x86_64-linux-gnu/libicudataFAU.so.44
(0x00007fae5933f000)
libicui18nFAU.so.44 => /lib/x86_64-linux-gnu/libicui18nFAU.so.44
(0x00007fae58f65000)
libicuucFAU.so.44 => /lib/x86_64-linux-gnu/libicuucFAU.so.44
(0x00007fae58c12000)
libfbclient.so.2 => /lib/x86_64-linux-gnu/libfbclient.so.2
(0x00007fae58a6e000)
/lib64/ld-linux-x86-64.so.2 (0x00007fae5a8d3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007fae58a4c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fae58a46000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fae58879000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fae5885f000)
libtommath.so.1 => /lib/x86_64-linux-gnu/libtommath.so.1
(0x00007fae5883d000)

Einstellung in der firebird.conf:

UdfAccess = Restrict (mit/ohne Pfadangaben, alle möglichen Pfade probiert, auch Full)

Das Ergebnis ist leider aber identisch: die Einbindung von FreeAdhocUDF gelingt NICHT, es kommt beim Aufruf

Code:
Select f_abs(-1) from rdb$database;
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Use of UDF/BLOB-filter module at location FreeAdhocUDF is not
allowed by server configuration.
-------------------------------------------------------------------------------------------------------------
SQLCODE: -902
SQLSTATE: 28000
GDSCODE: 335544831

Geändert von ZOD (20. Apr 2023 um 10:40 Uhr)
  Mit Zitat antworten Zitat