I'm facing a strange behavior when running a JNI application that use the mutex lock. The application hanged after running for a while on one of our Solaris 10 machines. After investigating the stack trace of the application, it shows that one of all the application's threads that access the JNI hold the mutex lock forever, and that cause the other threads cannot access the JNI. The same application works fine on other Solaris 10 machines.
The mutex function I used as show below:
The application hanged at this line:
0xff2cc940 ___lwp_mutex_timedlock + 0x8
The Kernel version is SunOS 5.10 Generic_142900-14
Since this issue occurrs on only one Solaris 10 machine in our environment, we are wondering if there is any known issue regarding the mutex lock used in JNI on Solaris 10. We tried to search the Internet and the Java Bug database but found nothing related to this issue.
... and that cause the other threads cannot access the JNI. The same application works fine on other Solaris 10 machines.
Different environments mean just that. So something could be causing it outside java.
Additionally if anything at all is different in the execution data, such as even a name having a different size, then it would change the execution path.
Which would cause a problem in the JNI code to manifest itself on only one box. Probably isn't a pointer bug but all sorts of odd behavior can result from that.