icuuc54.dll dependencies

classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

icuuc54.dll dependencies

claytondonahue
Good evening all,

This perhaps is  a strange one. We typically run our 4D Client instances from a XenDesktop configuration and it appears that some recent updates to the Xen version are interfering with normal operations. Upon signing into the application, we are seeing an error message stating: "The executable could not be loaded. The plug-in method cannot be executed. License or privilege error (Active 4D (v6.1r14))".

Some digging into the error logs is showing a message stating: "The program can't start because icuuc54.dll is missing from your computer".

I am trying to rule out that this truly isn't a permissioning issue (folders appear to have full read/execute privileges). In the past, I believe that this has been caused by incompatibilities with a version of the Microsoft Visual C++ Redistributable packages on the machine.

Would anyone be able to confirm whether a *specific* version of the redistributable is required when running under the following conditions?

- Window Server 2008R2 (x64)
- 4D v14R5, Active4D 6.1r15

I can confirm that the version specified in the old "Release Notes" docs for v5.0r13 *is* installed on the machine.

Thank you for any insights or suggestions - especially if you think that the C++ redistributable is a red herring!

- Clayton

Clayton Donahue
iVantage Health Analytics(r)
Vice President, Engineering
300 Chestnut St., Suite 101 | Needham, MA 02492
direct: 781.247.2071 | office: 781.449.5287
email: [hidden email] | iVantageHealth.com<https://www.ivantagehealth.com/>

_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

Aparajita Fishman
> Upon signing into the application, we are seeing an error message stating: "The executable could not be loaded. The plug-in method cannot be executed. License or privilege error (Active 4D (v6.1r14))".

> Some digging into the error logs is showing a message stating: "The program can't start because icuuc54.dll is missing from your computer".
>
> I am trying to rule out that this truly isn't a permissioning issue (folders appear to have full read/execute privileges). In the past, I believe that this has been caused by incompatibilities with a version of the Microsoft Visual C++ Redistributable packages on the machine.

The error message is saying that one of the support DLLs for Active4D is missing, which has nothing to do with the C++ DLL, which are also distributed with Active4D.

I would just reinstall the plugin, and update to v6.1r15 or v6.2r1, the error message says you are running v6.1r14.


> I can confirm that the version specified in the old "Release Notes" docs for v5.0r13 *is* installed on the machine.

4D said it was v6.1r14 that was attempting to load.

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

claytondonahue
Thanks for weighing in Aparajita.

I can confirm that the file itself is present in the current 4D Client database folder ("X:\Users\vdiguest\AppAdata\Local\4D\myapp\4D\Plugins\Active4D\Contents\Windows\icuuc54.dll").

Additionally, everything works fine from a non-VDI (XenDesktop) machine, so it is something tied to the local setup that seems to be causing the issue. I mentioned the "v5.0r15" version just because that's the only reference I saw in the docs to the redistributable - you are correct in that we're running 6.1r14. It seems to be manifesting itself on all instances of XenDesktop, so it isn't tied to an individual corrupt configuration - though I did force an update of local resources to ensure that fresh copies of the plugin were requested from server.

Is there anything else you can think of that would prevent the plugin from recognizing this file if it was present?

Thanks,
- Clayton


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Aparajita Fishman
Sent: Tuesday, November 10, 2015 9:55 PM
To: Active4D Developer Discussion List <[hidden email]>
Subject: Re: [Active4d-dev] icuuc54.dll dependencies

> Upon signing into the application, we are seeing an error message stating: "The executable could not be loaded. The plug-in method cannot be executed. License or privilege error (Active 4D (v6.1r14))".

> Some digging into the error logs is showing a message stating: "The program can't start because icuuc54.dll is missing from your computer".
>
> I am trying to rule out that this truly isn't a permissioning issue (folders appear to have full read/execute privileges). In the past, I believe that this has been caused by incompatibilities with a version of the Microsoft Visual C++ Redistributable packages on the machine.

The error message is saying that one of the support DLLs for Active4D is missing, which has nothing to do with the C++ DLL, which are also distributed with Active4D.

I would just reinstall the plugin, and update to v6.1r15 or v6.2r1, the error message says you are running v6.1r14.


> I can confirm that the version specified in the old "Release Notes" docs for v5.0r13 *is* installed on the machine.

4D said it was v6.1r14 that was attempting to load.

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

Aparajita Fishman
> Additionally, everything works fine from a non-VDI (XenDesktop) machine, so it is something tied to the local setup that seems to be causing the issue.

> Is there anything else you can think of that would prevent the plugin from recognizing this file if it was present?

Active4D itself is not loading that file. The OS is responsible for loading DLL dependencies, and for some reason it is failing. It may not be a matter of that particular file, it may be that on XenDesktop the DLL lookup mechanism is somehow different/broken.

Try using Dependency Walker to see what's going on. Open Active4D.bundle/Contents/Windows/Active4D.4DX in Dependency Walker. At the bottom of the list on the left, you should see the icu DLLs. If they aren't found, there is something wrong with XenDesktop.

Dependency Walker can be downloaded here:

http://download.cnet.com/Dependency-Walker/3000-2086_4-10052198.html

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

claytondonahue
Interesting suggestion - I've not used Dependency Walker before. Thanks!

It appears that the .dll files are being found and are displayed in the plugin tree. I see a few warnings thrown, but they seem tangential, as I'm also seeing similar messages when I load the .dll on my local machine (which is working).

https://dl.dropboxusercontent.com/u/2092353/dependency-walker.png

My next step is to verify permissions on the AppData folder, to ensure that nothing is explicitly blocking this file from being loaded.

Thanks,
- Clayton


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Aparajita Fishman
Sent: Wednesday, November 11, 2015 8:47 AM
To: Active4D Developer Discussion List <[hidden email]>
Subject: Re: [Active4d-dev] icuuc54.dll dependencies

> Additionally, everything works fine from a non-VDI (XenDesktop) machine, so it is something tied to the local setup that seems to be causing the issue.

> Is there anything else you can think of that would prevent the plugin from recognizing this file if it was present?

Active4D itself is not loading that file. The OS is responsible for loading DLL dependencies, and for some reason it is failing. It may not be a matter of that particular file, it may be that on XenDesktop the DLL lookup mechanism is somehow different/broken.

Try using Dependency Walker to see what's going on. Open Active4D.bundle/Contents/Windows/Active4D.4DX in Dependency Walker. At the bottom of the list on the left, you should see the icu DLLs. If they aren't found, there is something wrong with XenDesktop.

Dependency Walker can be downloaded here:

http://download.cnet.com/Dependency-Walker/3000-2086_4-10052198.html

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

claytondonahue
The saga continues ...

It doesn't appear to be explicitly related to AppData permissions, as I was able to replicate the issue on a *local* database. It does however seem to be tied to a particular few structure files and must somehow be environment/configuration related. Strange.

A brand new database structure is able to run both A4D and ObjectTools plugin methods without issue. However, if I move the "bad" structure file *into the same folder* and run it - I'm seeing the plugin initialization errors (https://dl.dropboxusercontent.com/u/2092353/vdi-4d-error.png).

Can anyone think of a reason why a plugin would behavior differently between structure files, if the rest of the database directory is identical?

- Have tried repairing the structure file.
- Not all plugins are affected - it seems to be only the ones that rely on that "icuu54.dll" file (A4D and ObjectTools)
- Plugins live next to the executables (Program Files) - not in the database folder itself.

Thanks!
- Clayton
_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

Aparajita Fishman
> Can anyone think of a reason why a plugin would behavior differently between structure files, if the rest of the database directory is identical?

It's Windows!

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

Steve Alex-3

> On Nov 12, 2015, at 4:44 PM, Aparajita Fishman <[hidden email]> wrote:
>
>> Can anyone think of a reason why a plugin would behavior differently between structure files, if the rest of the database directory is identical?
>
> It's Windows!

Glad to see that your analysis of our world’s problems still has pin-point accuracy.


Steve Alex


P.S. Yes I still lurk in the background, even though I haven’t touched 4D in years.  Guess I’m too lazy to unsubscribe - but then I’d miss the occasional insight.
_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

Aparajita Fishman
>>> Can anyone think of a reason why a plugin would behavior differently between structure files, if the rest of the database directory is identical?
>>
>> It's Windows!
>
> Glad to see that your analysis of our world’s problems still has pin-point accuracy.

For reference: https://www.youtube.com/watch?v=DIe-F_QjG6M

Especially the part starting around 4:40.

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

claytondonahue
At this point I'm mostly documenting for posterity, but another interesting tidbit:

I tried creating a new database using the XML structure file export of the existing production db. This works fine and will load the plugins. Doing a diff between the two XML exports, I noticed these lines at the bottom:

(New DB - working)

    <base_extra __stringCompHash="icu:4.8.0" __keywordBuildingHash="icu:4.8.0" data_file_path="\FromStructure.4DD" source_code_stamp="2">

(Legacy DB - broken)

    <base_extra data_file_path="\Acute.4DD" source_code_stamp="42979" intel_code_stamp="42863" intel64_code_stamp="42863">

The reference to "icu" seemed to be more than coincidental, though I could be barking up the wrong tree completely. Does anyone know perhaps what these lines are in reference to (e.g. "__stringCompHash", "intel_code_stamp")?

I put a similar query out on the 4D forum, as it seems to be taking a turn in that direction.

- Clayton
_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

Aparajita Fishman
> The reference to "icu" seemed to be more than coincidental, though I could be barking up the wrong tree completely. Does anyone know perhaps what these lines are in reference to (e.g. "__stringCompHash", "intel_code_stamp")?

This is deep internal stuff to 4D, definitely ask on the 4D forum. Maybe 4D themselves will be the only ones who can answer this.

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

claytondonahue
No luck on the forums so far ...

If you know, would you mind helping me understand how these dependent .dll files are loaded by Active4D? Is that something that is managed by the plugin itself, or rather by 4D when it is loading the plugin (i.e. does it auto-load any .dlls in the folder, or is there a package list defined in the .4DX file?)

This is getting pretty far down the rabbit hole, I know. There is likely some compatibility issue buried in the old structure files that is rearing its ugly head - none of the exposed "compatibility" settings seems to make any difference. I will cross-post on the 4D Tech list, but if there's anything related to the .dll loading process that you can think of, that would be very helpful.

Thanks!
- Clayton
_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

Aparajita Fishman
> If you know, would you mind helping me understand how these dependent .dll files are loaded by Active4D?

They are referenced by Active4D, and the Windows loader is *supposed* to load them. Active4D does not directly load them. Ah, Windows DLL hell!

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

claytondonahue
In reply to this post by claytondonahue
One more clarification:

This seems to happen only with 4D standalone/remote - not with 4D Server (either 32 or 64 bit). That is, I can run server on the VDI and it will properly execute A4D and OT commands. However, if I connect with 4D remote, I cannot run any A4D commands. Same issue if the structure is run directly in standalone mode.

So, the issue doesn't *seem* to be with the .dll files themselves, as they are properly used by 4D Server. However, some combination of the 4D standalone application, a legacy structure file and the VDI environment seems to be at play. The error message we receive is the same message one gets if the .dll files are physically removed from the plugins folder.

- Clayton
_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

Aparajita Fishman
> if I connect with 4D remote, I cannot run any A4D commands. Same issue if the structure is run directly in standalone mode.

There is nothing I can do about it unfortunately, this is happening at a level below Active4D.

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

claytondonahue
Alright, time to close the loop on this one :-)

The underlying issue was with Folder Redirection being enabled in this Citrix environment, in combination with an older version of a 4D structure file being used, in combination with running as Standalone/Remote.

Tracing the issue in Process Explorer, we noted the paths that the application was attempting to use to load the plugin's dependent .dll files ... and that it was not even *attempting* to load from any "redirected" path.

The short solution was to implement a login script that copies these files into "C:\Windows\System" upon signing on to Windows, as that folder always appears in the search path for the 4D Standalone application

Our infrastructure partners mentioned that apparently many applications (particularly older ones) tend to have issues handling this style of folder redirection. So, the long and short of it is - if you're having issues loading the underlying .dll files for a plugin - check whether you're running on a redirected folder path.

Hope this helps someone in the future!

Thanks,
- Clayton
_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/
Reply | Threaded
Open this post in threaded view
|

Re: icuuc54.dll dependencies

Aparajita Fishman
Thanks for the detailed explanation.


> On Dec 10, 2015, at 11:04 AM, Clayton Donahue <[hidden email]> wrote:
>
> Alright, time to close the loop on this one :-)
>
> The underlying issue was with Folder Redirection being enabled in this Citrix environment, in combination with an older version of a 4D structure file being used, in combination with running as Standalone/Remote.
>
> Tracing the issue in Process Explorer, we noted the paths that the application was attempting to use to load the plugin's dependent .dll files ... and that it was not even *attempting* to load from any "redirected" path.
>
> The short solution was to implement a login script that copies these files into "C:\Windows\System" upon signing on to Windows, as that folder always appears in the search path for the 4D Standalone application
>
> Our infrastructure partners mentioned that apparently many applications (particularly older ones) tend to have issues handling this style of folder redirection. So, the long and short of it is - if you're having issues loading the underlying .dll files for a plugin - check whether you're running on a redirected folder path.
>
> Hope this helps someone in the future!
>
> Thanks,
> - Clayton
> _______________________________________________
> Active4D-dev mailing list
> [hidden email]
> http://list.aparajitaworld.com/listinfo/active4d-dev
> Archives: http://active4d-nabble.aparajitaworld.com/

Regards,

  Aparajita


_______________________________________________
Active4D-dev mailing list
[hidden email]
http://list.aparajitaworld.com/listinfo/active4d-dev
Archives: http://active4d-nabble.aparajitaworld.com/