Skip to content
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

FB 3 embedded tries to load ICU DLLs from PATH folders [CORE4583] #4899

Closed
firebird-automations opened this issue Oct 16, 2014 · 9 comments
Closed

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Nick (nick)

ICU dlls deployed with fb 3 embeded is:
icudt52.dll
icuin52.dll
icuuc52.dll

But, FB tries to load
icuuc519.dll
icuuc518.dll
icuuc517.dll
icuuc516.dll
icuuc515.dll
icuuc514.dll
icuuc513.dll
icuuc512.dll
icuuc511.dll
icuuc510.dll
icuuc59.dll
icuuc58.dll
icuuc57.dll
icuuc56.dll
icuuc55.dll
icuuc54.dll
icuuc53.dll
And it tries to load it from all folders defined in PATH.
What was happen if some third-party tool will write to PATH some folder with some of this ICU-dlls?
May it be that some of this third-party icu will be somehow incompatibe with my database?
For example:
1.user installs tool from SomeCompany, which bundled with custom-builded icuuc519.* (SomeCompany builds they own icu-dlls, as FB does). And this program adds self to PATH (they really need that)
2.user intalls our program "A" with FB embedded
3.user successfully works with our program "A" (using SomeCompany's icuuc519.*, as side-effect (which is not predicted by us, as developers of "A"))
4.user uninstalls tool from SomeCompany
5.user now can't work with our program A, because now FB loads icuuc52.*, and it is incompatible with custom-build icuuc519.dll from SomeCompany.

May we be shure, that SomeCompany build their icuuc519.* without errors? :)

Commits: 066dfda FirebirdSQL/fbt-repository@07d67f8

@firebird-automations
Copy link
Collaborator Author

Modified by: Nick (nick)

Component: Engine [ 10000 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Regression: 3.0 Beta 1 [ 10332 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @AlexPeshkoff

summary: FB 3 embedded tries to load wrong ICU DLLs (from third-party folders) => FB 3 embedded tries to load ICU DLLs from PATH folders

@firebird-automations
Copy link
Collaborator Author

Commented by: @AlexPeshkoff

Loading ICU from PATH is designed behavior, making it possible to easier replace ICU with new better version (I do not accept an argument that someone installed bad build of ICU on a box, with same probability bad version of C runtime may be installed). But it's really good idea to start with our own 5.2 version.

@firebird-automations
Copy link
Collaborator Author

Modified by: @AlexPeshkoff

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 3.0 Beta 2 [ 10586 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @AlexPeshkoff

assignee: Alexander Peshkov [ alexpeshkoff ]

@firebird-automations
Copy link
Collaborator Author

Commented by: Nick (nick)

our users prepared to handle this?: http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1119708&msg=16674233
I think that in windows by default must be used icu from fb root. And only by some key in config we may allow to load something from global path. If Admin or program developer really want to handle things like loading icu from unknown place with unpredictable results, then he just say it in config and all be happy.

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: Cannot be tested

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants