FirebirdSQL / firebird

Firebird server, client and tools
https://www.firebirdsql.org/
1.22k stars 213 forks source link

Starting Firebird service fails with "Security database error!" in systemctl status #7127

Open hhfiddelke opened 2 years ago

hhfiddelke commented 2 years ago

After installing Firebird 4.0.1 from source on SUSE SLES 15.3 i got the above error message when starting the service. Then i tried to start fbguard -deamon as root which worked fine. After this i changed the service definition file firebird. service to run the service as root, which also worked fine when starting. So this had to be a permission issue, but i found no difference in firebird directories compared to other installations.

While searching for filenames used in firebird, i found the -d (debug) switch. Then i changed the firebird user temporary to allow login. With su - firebird -c "/usr/local/firebird/bin/firebird -d" i got the hint i needed. It showed me that firebird was not able to access the '/tmp/firebird'- directory that i created as good admin root during installation to contain my installation files, but i created the directory with user root:root not firebird:firebird as required.

So this is a short explanation of my odyssey locating the cause for my problem, and probably a hint to others locating similar issues.

I would request for a future release a more detailed/better explaining error message, that helps a little bit moreand does not show into the wrong direction.

AlexPeshkoff commented 2 years ago

On 2/9/22 10:33, Hans H. Fiddelke wrote:

I would request for a future release a more detailed/better explaining error message, that helps a little bit moreand does not show into the wrong direction.

Did you check firebird.log file?

hhfiddelke commented 2 years ago

Yes, it only returned that starting the service returns error(2)

AlexPeshkoff commented 2 years ago

On 2/9/22 11:13, Hans H. Fiddelke wrote:

Yes, it only returned that starting the service returns error(2)

Very strange. The fragment of code:

        // first tries to log error     gds__log_status(path, status);

        // next tries to type it on a tty     gds__put_error(path);     gds__print_status(status);

        // finally puts minimal error string to syslog (you've seen it)     Firebird::Syslog::Record(Firebird::Syslog::Error, "Security database error");

        // exits with status 2 (was logged)     exit(STARTUP_ERROR);

I understand why you did not see message on tty w/o '-d' switch, but why did gds__log_status fail? What about /usr/local/firebird & /usr/local/firebird/firebird.log permissions?

hhfiddelke commented 2 years ago

these permission are/were all O.K.

There was a log entry, but only error(2)

after renaming /tmp/firebird to a different name, starting service as user firebird worked fine.

hhfiddelke commented 2 years ago

Don't know if this is expected, but perhaps we see the messages, but we can't read them, because they are written black on black😉😎 There are several empty lines in the log. Is this an expected behavior?

AlexPeshkoff commented 2 years ago

On 2/9/22 14:55, Hans H. Fiddelke wrote:

Don't know if this is expected, but perhaps we see the messages, but we can't read them, because they are written black on black😉😎

FB never controls color in the log.

There are several empty lines in the log. Is this an expected behavior?

Sooner of all not.

hhfiddelke commented 2 years ago

So is it possible that the log function writes empty log-strings, instead of the values passed to the function, or are the values empty when passed ?

AlexPeshkoff commented 2 years ago

On 2/9/22 17:36, Hans H. Fiddelke wrote:

So is it possible that the log function writes empty log-strings, instead of the values passed to the function, or are the values empty when passed ?

Hardly possible. I've sumulated your case and got in firebird.log the follwoing:

fbs3    Wed Feb  9 17:46:51 2022     Operating system call access failed. Error code 13

fbs3    Wed Feb  9 17:46:51 2022     ConfigStorage: Cannot initialize the shared memory region     operating system directive access failed     Permission denied     /tmp/firebird/

fbs3    Wed Feb  9 17:46:51 2022     Operating system call access failed. Error code 13

fbs3    Wed Feb  9 17:46:51 2022     ConfigStorage: Cannot initialize the shared memory region     operating system directive access failed     Permission denied     /tmp/firebird/