Sanity check
Nancy Palmquist
nancy.palmquist at vss3.com
Wed Jun 3 11:51:06 PDT 2020
William,
Are you deleting records you are sitting on?
How are you identifying the records to delete?
If you are doing a lookup using an index and delete the record you are
pointing at, you can not use that index as a way to getnext or getprev,
you have to start back at the original lookup and re-establish your
place in the index.
You can not issue WRITE in Automatic tables - that will crash indexes.
Other than that, it sounds like you are proceeding properly. LOCK
record, delete and write.
Usually I find that index crashes are related to DELETE or users able to
exit with bad manners. Automated processes are usually not susceptible
to the user issue once you have them working properly. But they are
able to trash indexes that might affect your automated process. I often
rebuild indexes prior to automated processes to make sure everything is
solid.
That deleted key not found error message does not close after XX
seconds, like I was told it should years ago. It will cause the
processes to hang indefinitely.
But you knew all this, maybe I triggered a good memory that will help
you fix it.
Nancy
On 6/2/2020 3:58 PM, William J. McEachran via Filepro-list wrote:
> On Tue, 2 Jun 2020 at 12:10, Fairlight via Filepro-list <
> filepro-list at lists.celestial.com> wrote:
>
>> It's the result of bad BTree+ code.
>>
>> If you go through this demo, you'll see when data needs to be split.
>> Something about it is incorrectly handled in fP, resulting in bad
>> indexes.
>>
>> https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html
>>
>>
> I got lucky and found that the nightly tar archive had the troubled data.
> I was able to play around with it on a test system and found I could get a
> DKNF (deleted key not found) error on the data in addition to the sanity
> check
> The data is part of a simple routine that is created and used in a single
> process ... so it easily traceable.
>
> All lookups involved in record operations (creating, deleting, modifying)
> are protected (-p flag) lookups.
> Each record operations concludes with a write - 'write [lookupname''.
> Create a record; write that record. Delete a record; write that record.
> etc.
> The routine concludes with a 'sync'.
>
> So I can't think of anything that I've missed to cause invalid key/index
> issues.
> Did I miss something?
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://mailman.celestial.com/pipermail/filepro-list/attachments/20200602/7d8f4995/attachment.html>
> _______________________________________________
> Filepro-list mailing list
> Filepro-list at lists.celestial.com
> Subscribe/Unsubscribe/Subscription Changes
> http://mailman.celestial.com/mailman/listinfo/filepro-list
--
Nancy Palmquist MOS & filePro Training Available
Virtual Software Systems Web Based Training and Consulting
PHONE: (412) 835-9417 Web site: http://www.vss3.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.celestial.com/pipermail/filepro-list/attachments/20200603/373b9b36/attachment.html>
More information about the Filepro-list
mailing list