Yes this is exactly what happens , as a work around I created a small jar
file which has code to load the dylib and I placed it under the lib folder
, this library is in provided scope in my actual job, so the dylib gets
loaded only once when the tm/jm jvm starts .
What I found interesting in my old approach was even when I check whether
the dylib has already been loaded in the current thread , and if it is I
still get the unsatisfied link error even though that dylib is loaded in
the task manager .

On Wed, Aug 28, 2019 at 7:04 AM Aleksey Pak <alek...@ververica.com> wrote:

> Hi Vishwas,
>
> There is a known issue in the Flink Jira project [1].
> Is it possible that you have encountered the same problem?
>
> [1]: https://issues.apache.org/jira/browse/FLINK-11402
>
> Regards,
> Aleksey
>
>
> On Tue, Aug 27, 2019 at 8:03 AM Vishwas Siravara <vsirav...@gmail.com>
> wrote:
>
>> Hi Jörn,
>> I tried that. Here is my snippet :
>>
>> String[] loadedlibs =  
>> getLoadedLibraries(Thread.currentThread().getContextClassLoader());
>> if(!containsVibeSimpleLib(loadedlibs)) {
>>     System.loadLibrary("vibesimplejava");
>> }
>>
>> Now I get the exception Unexpected errorjava.lang.UnsatisfiedLinkError:
>> com.voltage.securedata.enterprise.ConstantsNative.DIGEST_MD5()I which means
>> that it could not find vibesimplejava in the loaded libs but I know that
>> the if was not executed because vibesimplejava was present in loadedlibs(
>> the control never went inside the if block. Any other suggestions?
>>
>> Thanks,
>> Vishwas
>>
>>
>>
>>
>>
>>
>> On Tue, Aug 27, 2019 at 12:25 AM Jörn Franke <jornfra...@gmail.com>
>> wrote:
>>
>>> I don’t know Dylibs in detail, but can you call a static method where it
>>> checks if it has been already executed and if not then it loads the library
>>> (Singleton pattern)?
>>>
>>> Am 27.08.2019 um 06:39 schrieb Vishwas Siravara <vsirav...@gmail.com>:
>>>
>>> Hi guys,
>>> I have a flink application that loads a dylib like this
>>>
>>> System.loadLibrary("vibesimplejava");
>>>
>>>
>>> The application runs fine , when I restart the job I get this exception
>>> :
>>>
>>> com.visa.aip.cryptolib.aipcyptoclient.EncryptionException: Unexpected 
>>> errorjava.lang.UnsatisfiedLinkError: Native Library 
>>> /usr/mware/SimpleAPI/voltage-simple-api-java-05.12.0000-Linux-x86_64-64b-r234867/lib/libvibesimplejava.so
>>>  already loaded in another classloader
>>>
>>> This happens because the dylib has already been loaded once by the
>>> taskmanger, how can I mitigate this? It seems problematic if two
>>> applications are loading the same dylib.
>>>
>>> Thanks,
>>> Vishwas
>>>
>>>

Reply via email to