Depending on how gnucash is shut down or the user's session terminated, a previous gnucash session may not properly clean up its LCK file. When this happens, gnucash will indicate on the next startup that it can not open the account files due to the, now stale, LCK file. Rather than trying to account for all possible means of exiting/shutdown, which is an admirable goal, a fair solution would be detecting whether the LCK file is stale or not. Perhaps the process ID of the original locking process could be stored in the LCK file? Then the new instance could read the information and check for the given process? Or the original process could hold the LCK file open and the new process could check to see if there are any open file handles on it?
Binary package hint: gnucash
Depending on how gnucash is shut down or the user's session terminated, a previous gnucash session may not properly clean up its LCK file. When this happens, gnucash will indicate on the next startup that it can not open the account files due to the, now stale, LCK file. Rather than trying to account for all possible means of exiting/shutdown, which is an admirable goal, a fair solution would be detecting whether the LCK file is stale or not. Perhaps the process ID of the original locking process could be stored in the LCK file? Then the new instance could read the information and check for the given process? Or the original process could hold the LCK file open and the new process could check to see if there are any open file handles on it?
ProblemType: Bug dules: nvidia ath_hal
Architecture: amd64
DistroRelease: Ubuntu 9.04
NonfreeKernelMo
Package: gnucash 2.2.6-2ubuntu5
ProcEnviron:
PATH=(custom, user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: gnucash
Uname: Linux 2.6.28-11-generic x86_64