[GNC] Where does gnucash put the lock file on Linux?
John Ralls
jralls at ceridwen.us
Wed Jan 20 20:20:16 EST 2021
Do I remember correctly that you're using the SQL backend? That works a bit differently because there's no way to have a lock file if you're connected to a DB server. Instead of a lock file it has a lock table inside the database. If you copy the database (and with SQLite3 it looks just like a file) when there's a lock record in the lock table then GnuCash will put up the "unable to obtain the lock" dialog box.
Regards,
John Ralls
> On Jan 20, 2021, at 6:24 AM, Chris Green <cl at isbd.net> wrote:
>
> On Wed, Jan 20, 2021 at 09:04:52AM -0500, Derek Atkins wrote:
>> Hi,
>>
>> On Wed, January 20, 2021 8:33 am, Chris Green wrote:
>>> On Wed, Jan 20, 2021 at 08:23:23AM -0500, Derek Atkins wrote:
>>>> Hi,
>>>>
>>>> The lock file is created in the same directory as the data file.
>>>> Is that directory not writeable? That would cause the error.
>>>
>>> The directory is definitely writeable and there definitely isn't any
>>> sort of lock file in the directory:-
>>>
>>> chris$ cd tmp/pcc/2020
>>> /home/chris/tmp/pcc/2020
>>> chris$ ls
>>> building.gnucash building.gnucash.20210120121447.log general.gnucash
>>> chris$ ls -al
>>> total 504
>>> drwxrwxr-x 2 chris chris 4096 Jan 20 12:14 .
>>> drwxrwxr-x 3 chris chris 4096 Jan 20 12:13 ..
>>> -rw-r--r-- 1 chris chris 212992 Jan 20 12:14 building.gnucash
>>> -rw-rw-r-- 1 chris chris 381 Jan 20 12:14
>>> building.gnucash.20210120121447.log
>>> -rw-r--r-- 1 chris chris 290816 Jan 20 12:14 general.gnucash
>>> chris$ gnucash general.gnucash
>>> Found Finance::Quote version 1.49.
>>> chris$
>>>
>>> The above sequence pops up the can't create lock file error.
>>
>> The "cannot obtain lock" error has multiple causes. Have you checked the
>> Tracefile to see if there is anything printed that might suggest which
>> error is happening?
>>
>> The error occurs when:
>> 1) There is a lock file already there, or
>> 2) There is NOT a lock file already present, but gnucash cannot create a
>> new lock file
>>
>> If you're in case #2, then you won't see a lock file listed.
>>
>> Is your disk full? What do you get from:
>> df /home/chris/tmp/pcc/2020
>> df -i /home/chris/tmp/pcc/2020/
>>
> No, my disk isn't full:-
>
> Filesystem Type 1M-blocks Used Avail Use% Mounted on
> /dev/nvme0n1p2 ext4 48174 13344 32315 30% /
> /dev/nvme0n1p3 ext4 896193 308524 542077 37% /home
> /dev/sdb1 ext4 10016 181 9307 2% /boot
> /dev/sdb2 ext4 109596 27675 76313 27% /scratch
> /dev/sda1 ext4 938772 225049 666014 26% /bak
>
>> Also, what kind of filesystem underlies /home/chris/tmp/pcc/2020 ?
>>
> Standard linux ext4 (as you can see above).
>
>
>>>> If GnuCash cannot create (and lock) the lock file then it will throw the
>>>> error.
>>>> If you are SURE that there is not another process running, you can "Open
>>>> Anyways" and that will clear the error.
>>>>
>>> Yes, I realise that, but it's not "right". :-)
>>
>> It depends on the underlying error. If the lock file is actually there
>> but, say, gnucash crashed, then "Open Anyways" *is* the right solution.
>> Obviously that's not the case here.
>>
> Yes, OK, there are cases where "Open anyway" is the right solution,
> but there seems to be something else going on here.
>
>
>>>> NB that gnucash may mix the metadata for two versions of the same-named
>>>> file located in different directories. The GCM file does not contain
>>>> the
>>>> file location information.
>>>>
>>> I'm not quite sure I follow that, I do have general.gnucash in two
>>> different places. Are you saying that this may cause problems and
>>> that I should rename my 'previous year' accounts to (for example)
>>> general2020.gnucash as well as moving them to a suitably named
>>> sub-directory?
>>
>> If you open a file foo.gnucash, gnucash creatres a metadata file
>> foo.gnucash.gcm in $HOME/.local/share/gnucash/books. Now, if you copy
>> foo.gnucash from DIR1/foo.gnucash to DIR2/foo.gnucash, when you open
>> DIR2/foo.gnucash it will use the same foo.gnucash.gcm file, because DIR1
>> vs DIR2 is not encoded anywhere.
>>
>> So yes, IF you decide to archive data files, you should change the name.
>>
> OK, that makes sense, thank you.
>
>
>> NB: there is no need to start over every year; GnuCash hapily accounts for
>> multiple years of data and reports know how to handle that.
>>
> That might make sense for me, I'm not quite sure. It's not a very
> busy system so I can go for a month and see if I can then generate
> what the auditor requires for 2020. If it all goes wrong I can undo a
> month (I have daily incremental backups).
>
> --
> Chris Green
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> To update your subscription preferences or to unsubscribe:
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.
More information about the gnucash-user
mailing list