New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firebird handles ':' characters in mount table entries invalid [CORE4624] #4939
Comments
Modified by: @AlexPeshkoffassignee: Alexander Peshkov [ alexpeshkoff ] |
Commented by: Michał Ziemski (r_o_o_k) I've found a workaround to acrually run fb inside a docker container. Start a docker container with some volume mounted. Now firebird will now start without problems. |
Commented by: Sean Leyne (seanleyne) Michal, It seems this was an issue related to your setup/configuration within docker container, not a Firebird issue. Correct? |
Commented by: Michał Ziemski (r_o_o_k) Actually it seems to be a problem with firebird failing to interpret the colon character in the |
Commented by: @AlexPeshkoff Michal, you are absolutely right - it's a bug in a code that does not expect ':' in file name. |
Commented by: Marcus Brinkmann (m.brinkmann) This is a work-around.for CORE4624, a bug in firebird where it interprets a /dev/mapper/ filename with a colon as an NFS volume. This happens in Docker on Fedora 21. |
Modified by: Marcus Brinkmann (m.brinkmann)Attachment: firebird-docker.patch [ 12665 ] |
Commented by: @AlexPeshkoff Fix required modification of OS-dependent code. |
Modified by: @AlexPeshkoffsummary: Firebird won't start under Docker => Firebird handles ':' characters in mount table entries invalid |
Modified by: @AlexPeshkoffstatus: Open [ 1 ] => Resolved [ 5 ] resolution: Fixed [ 1 ] Fix Version: 2.5.4 [ 10585 ] |
Modified by: @pcisarstatus: Resolved [ 5 ] => Closed [ 6 ] |
Submitted by: Michał Ziemski (r_o_o_k)
Attachments:
firebird-docker.patch
Votes: 1
When running under docker Firebird won't start.
As far as I was able to debug the issue the reason is as follows:
Under Docker the mount table looks somewhat like follows:
/dev/mapper/docker-9:1-3063-cf43ec04ee218f73bcc6e0b31f04c73a7c2df8b838a4a391b3b70462d58345e0 on / type ext4 (rw,relatime,discard,stripe=16,data=ordered)
It contains a colon character ':' which is handled specially somewhere in src/jrd/isc_file.cpp
As a result only the former part "/dev/mapper/docker-9" gets prepended to the file name in
the call to isc_expand_filename with expand_mounts = true
Commits: 5b567f2 1bfe2d7 FirebirdSQL/fbt-repository@33f8a4b FirebirdSQL/fbt-repository@5d673c3
The text was updated successfully, but these errors were encountered: