So I tried out the patch (took some time to build ppa:james-page/junk) and did some more digging when it did not appear to work.
I managed to capture a stacktrace when the issue occured:
java.lang.UnsatisfiedLinkError: Unable to load library 'pam': libpam.so: cannot open shared object file: No such file or directory
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:164)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:237)
at com.sun.jna.Library$Handler.(Library.java:140)
at com.sun.jna.Native.loadLibrary(Native.java:374)
at com.sun.jna.Native.loadLibrary(Native.java:359)
at org.jvnet.libpam.impl.PAMLibrary.(PAMLibrary.java:132)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:936)
at java.lang.reflect.Field.getFieldAccessor(Field.java:917)
at java.lang.reflect.Field.get(Field.java:376)
at com.sun.jna.Native.loadLibraryInstance(Native.java:398)
at com.sun.jna.Native.getStructureAlignment(Native.java:507)
at com.sun.jna.Structure.setAlignType(Structure.java:191)
at com.sun.jna.Structure.(Structure.java:149)
at com.sun.jna.Structure.(Structure.java:145)
at com.sun.jna.Structure.(Structure.java:141)
at com.sun.jna.Structure.(Structure.java:132)
So it looks like the issue (or maybe one of them) is actually in libjna-java; I'm pretty sure that openjdk may exhibit the same symptoms but the issue reading libpam.so is generated outside of openjdk.
I'll look into the specific library to see what its doing - suspect it something horrible with guessed paths but it may be related to the java.library.path variable.
Steve
So I tried out the patch (took some time to build ppa:james- page/junk) and did some more digging when it did not appear to work.
I managed to capture a stacktrace when the issue occured:
java.lang. UnsatisfiedLink Error: Unable to load library 'pam': libpam.so: cannot open shared object file: No such file or directory jna.NativeLibra ry.loadLibrary( NativeLibrary. java:164) jna.NativeLibra ry.getInstance( NativeLibrary. java:237) jna.Library$ Handler. (Library. java:140) jna.Native. loadLibrary( Native. java:374) jna.Native. loadLibrary( Native. java:359) libpam. impl.PAMLibrary .(PAMLibrary. java:132) Unsafe. ensureClassInit ialized( Native Method) UnsafeFieldAcce ssorFactory. newFieldAccesso r(UnsafeFieldAc cessorFactory. java:43) ReflectionFacto ry.newFieldAcce ssor(Reflection Factory. java:140) reflect. Field.acquireFi eldAccessor( Field.java: 936) reflect. Field.getFieldA ccessor( Field.java: 917) reflect. Field.get( Field.java: 376) jna.Native. loadLibraryInst ance(Native. java:398) jna.Native. getStructureAli gnment( Native. java:507) jna.Structure. setAlignType( Structure. java:191) jna.Structure. (Structure. java:149) jna.Structure. (Structure. java:145) jna.Structure. (Structure. java:141) jna.Structure. (Structure. java:132)
at com.sun.
at com.sun.
at com.sun.
at com.sun.
at com.sun.
at org.jvnet.
at sun.misc.
at sun.reflect.
at sun.reflect.
at java.lang.
at java.lang.
at java.lang.
at com.sun.
at com.sun.
at com.sun.
at com.sun.
at com.sun.
at com.sun.
at com.sun.
So it looks like the issue (or maybe one of them) is actually in libjna-java; I'm pretty sure that openjdk may exhibit the same symptoms but the issue reading libpam.so is generated outside of openjdk.
I'll look into the specific library to see what its doing - suspect it something horrible with guessed paths but it may be related to the java.library.path variable.