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 >>> >>>