We had java processes(cassandra service) running with jdk 1.6 in our linux machine and we did upgrade the JDK in the machine from 1.6 to 1.7 using rpm package without stopping the process (/usr/bin/jdk1.6/bin/java) which were running with earlier version of java.
After successful up gradation, the old version of jdk was removed from the machine and only the new version(1.7) was available, but the process which were running before with the older version(1.6) was not affected and still running from the old path. Eventhough the old java path which the process shows is not existing in the machine now.
Could someone please explain me this behavior?
This is the way Unix/Linux handles open files. The uninstall of the old version requested the OS to unlink the files. However, they were still open (this can be shown with lsof
), so are still considered valid. Once all open file handles are closed, the files will be "permanently" deleted. A little more info can be found here.