Access Violation Errors in RM9 are often not repeatable, but I have stumbled across one such error that’s very repeatable. RM 9.0.7.0, Windows 10. My database is in my OneDrive folder, but OneDrive is paused.
I have run all the database tools without the problem being fixed. The same problem does not occur in RM7. I cannot post a public video because doing so would expose data on living people. Instead, I will post a video to the RM HelpDesk and also submit my current RM9 database to the RM HelpDesk.
Here’s the sequence.
Start up RM9. A fresh startup of RM9 is not necessary to recreate the problem, but having a fresh startup seems like the cleanest way to proceed.
Open my production RM9 database. My RM9 options do not open any database by default. My database opens in Family View by default.
Switch to People List View and filter for person 19312. There is no group filter by default.
Click on person 19312 to make him the selected person. Simply filtering for him and having him highlighted on the screen does not make him the selected person.
Switch to Descendant View. Person 19312 is displayed in Descendant View in the primary position. I have tried this with Descendant View preset to 7 generations and also with Descendant View preset to 2 generation. The number of generations seems to have no effect on the problem.
Click the chevron to the right of person 19312’s name to make person 19312’s father the person who is in the primary position of Descendant View. The Access Violation Error is immediate at this point. The contents of the Descendant View that are displayed appear be correct. Person 19291 is person 19312’s father, and person 19291 is displayed correctly in the primary position of Descendant View along with his descendants.
I’m reluctant to proceed any further, so I shut down and restart RM9. I can get Person 19291 into the primary position of Descendant View without an Access Violation Error by filtering for him directly instead of filtering first for his son who is person 19312. I can get Person 12291 into the primary position of Descendant View without an Access Violation Error by first switching from People List View to Family View and highlighting him from there before switching to Descendant View. But the exact sequence above is 100% repeatable in recreating an Access Violation error.
I have been unable to find any other persons in my database for which the sequence above will recreate an Access Violation Error. They may exist, but I obviously haven’t tried every single person in my database.
(Correction: I have discovered that starting with any of person 19312’s siblings creates the same Access Violation Error. The common element seems to be the father who is person 19291.)
I too have repeatable access violation errors using the descendants view in RM9, although my cases are not quite as specific as yours. I first noticed this a few months ago when I was trying RM9 out. Experimenting with the < and > buttons to move up or down a layer, I found that after many such clicks (more than I would do in normal everyday use - I haven’t counted exactly how many), I started getting access violation errors.
I have just done the same thing, moving about a lot, and have had access violation errors as beore. The exact thing that leads to the error (after a lot of clicking around) is not 100% consistent, but moving up one level from the person in the top position and moving from six to seven levels in the hierarchy seem particularly prone to do so. Even after I close the database, re-open it and run the database tools, I still get access violation errors in descendants view. As I recall, I have to re-start my PC to fix the problem.
Copy the database. Same symptom? Drag N drop the whole copied database to a fresh third database for testing. Same symptom?
Or, from the copy, drag 19291’s family to a fresh temp database, then delete 19291’s family from the originating copy followed by the database tools and drag them back / relink them. Same symptom?
There does seem to be a problem with the query created by click the chevron to the right of a person’s name in the Descendant view. Based on Jerry’s steps, I have been able to create a sequence that causes an access violation to occur regardless of who is the filtered person. (This is repeatable across multiple databases.) It’s not a workflow that I would naturally do but it does seem to highlight a problem with the chevron query.
[Edit: I was going to post this yesterday but on my final test I was not able to produce the access violation. So I held off. Today, I followed Kevin’s advice and dragged to a new db and the problem followed. I also imported a new db from Ancestry via tresshare and can cause an access violation with these steps. So I am posting now. I suspect that Kevin and others will be able to reproduce the access violation error nearly 100% of the time with these steps. ]
The sequence is a follows:
Follow Jerry’s steps to open RM and a RM db, go to People List view, filter by RIN on any person that has a father defined, make filtered person the selected person, switch to Descendant view, and then click the chevron to the right of their name so that their father becomes the selected person and primary person in the Descendant view.
Click on the ‘Back’ chevron (next to the House icon) twice. The root person is now the selected person and primary person in the Descendant view.
Click on the ‘Forward’ chevron (next to the House icon). The filtered person is now the selected person and primary person in the Descendant view.
Click the chevron to the right of their name so that their father becomes the selected person and primary person in the Descendant view.
Repeatable steps:
Click on the ‘Back’ chevron (next to the House icon) once so that the root person is now the selected person and primary person in the Descendant view.
Click on the ‘Forward’ chevron (next to the House icon) once so that the filtered person is now the selected person and primary person in the Descendant view.
Click the chevron to the right of their name so that their father becomes the selected person and primary person in the Descendant view.
Repeat step 5 until you get an access violation. The access violation always occurs when you try the last step (to click the chevron to the right of their name so that their father becomes the selected person and primary person in the Descendant view).
Sometimes the access violation occurs on the first iteration of step 6 and at other times it takes 2-3 iterations of step 6 before the access violation occurs. As Jerry noted, once the access violation occurs I close RM, restart the program, and then run tools upon reopening the DB.
Not sure I am getting the same access violation BUT it is repeatable in all my databases EXCEPT the one that opens in Family View-- if the file opens in the pedigree view-- all I do is
open file
click on anyone on the page
go to family view and click on that person to make them the selected person
go to descendant view
click on chevron for his/ her FATHER ( total of 5 clicks) and I GET
Click on the chevron for anyone else 1st and then his/ her father and it doesn’t seem to happen— at least not in the first 100 clicks…
That said, your access violation MIGHT be caused by the same issue that was causing my Argument Out of Range Error BUT only @rzamor1 could confirm that.
Final info from SUPPORT was:
It’s very clear by your description that you are receiving the argument out of range error coming from the list manager. Development is working on this issue. It can take 100’s of clicks before you see it.
So @thejerrybryan – to me the only real difference is I was using the index and chevron in the Family View to move from one person to the next-- took between 670-1000 click before the error happened–yours happens at a much faster rate…
just a thought
I can repeatedly get access violation errors using descendants view, but I am 100% sure that my process has never involved filtering by RIN or using the back and forward chevrons. What it very often does involve is clicking on the chevron to the right of a person’s name so that their father becomes the selected person after having gone through many other clicks. But my clicks are not the same as those you discuss.
Thanks for reviewing the post and I agree that there is something not quite right with the query that occurs when the chevron to the right of name in the Descendant view is clicked. The reason I posted the steps was to see if this might be a universal way of consistently recreating an error with a small number of keystrokes. I suspect that all of the other keystrokes (besides clicking the chevron to the right of name in the Descendant view) are part of the background noise surrounding this issue.
I too was having access violations, I finally called RM support.
I had my database on a network share, support indicated that was the problem and had me move it to a local drive. I still backup to the share, but work locally.
I have not seen that error since then.
The correct quote is as follows: "My database is in my OneDrive folder, but OneDrive is paused.". The pausing makes all the difference in the world.
When you are working in OneDrive, you are always working locally. So working locally or not is never the issue. The issue is whether your local OneDrive database is being synced while you are working in it. If you pause a network service, then your local database is not being synced while you are working in it.
The same thing is true of Dropbox or Google Drive or IDrive or any other such service. The same thing is even true of a local in-home network. You don’t have to be syncing in the cloud via the Internet to encounter the problem. If you have a home network that syncs your RM database while you are working in it, you can have a problem.
There are always two solutions. One solution is the one recommended by RM Support - to move your RM database out of your syncing service. This does not make your database local. It is always local while RM is using it. What it does instead is it makes sure your RM database is not being synced while you are working in it. The other solution is to pause your syncing service while you are working in RM.
RM users regularly report that they keep their RM database in a syncing service and don’t pause the syncing service and have never had a problem. That’s probably true, but that doesn’t mean they won’t have a problem in the future. In my opinion, such users have been very lucky so far and their luck may not hold out.
Finally, if you don’t keep your RM database in your syncing service, you won’t really have a backup of your database in the event of a catastrophic disk failure unless you take some other action to make backups of your RM database so that the backups are not on your local disk. The solution to this problem recommended by RM support is to place your RM backup files (or at least some of them) in a folder which is synced to the Internet. Similar solutions could include making copies of your RM backup files on some sort of removable disk. Similar solutions could include making copies of your actual RM database in a cloud synced folder or on some sort of removable disk.
The Carbonite solution and any solutions similar to Carbonite are a bit of a wild card in all this. Carbonite is more of a pure backup service than a sync service. It has no special folder that is synced and it backups up more or less your whole disk. I have never had any sort of problem at all with Carbonite and RM. I think that’s because Carbonite seems to be much less aggressive than the sync services about backing up files while they are being used than are the sync services. But if Carbonite or other backup services ever do backup an RM database while you are working in it, then that’s a big no no. Carbonite can be paused if necessary, plus it has some options only to backup at certain hours where you are not using your computer. The syncing services do have the pause option, but my experience is that they don’t have the off hours option because they are really designed to sync continuously.
I agree that the users who work off a non-local database or one that is syncing are likely to get bit at some point. I wonder if DB size comes into play, mine is 14K people with 37K events.
Several years ago I was having a similar problem with two computers sharing a Quicken DB. I had to write a PS script to check if the DB was in use before opening it.
Perhaps a PS script could stop the syncing before opening RM, then have it not start again until RM had been closed for a bit. There would need to be error handling in the case of RM crashing.
Just a thought on how to work around those limitations.