Issue Details (XML | Word | Printable)

Key: CORE-4583
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Alexander Peshkov
Reporter: Nick
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Firebird Core

FB 3 embedded tries to load ICU DLLs from PATH folders

Created: 16/Oct/14 12:21 PM   Updated: 23/Sep/15 11:31 AM
Component/s: Engine
Affects Version/s: 3.0 Beta 1
Fix Version/s: 3.0 Beta 2

QA Status: Cannot be tested


 Description  « Hide
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? :)

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Alexander Peshkov added a comment - 30/Mar/15 05:42 PM
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.

Nick added a comment - 30/Mar/15 06:47 PM - edited
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.