DTTG 3 is corrupting files

Thanks for the follow-up!

Installed 3.0.3 ā€” 276 of 278 ghost files were reportedly restored. After checking some samples across the whole database this seems indeed to hold true. I am very relieved and want to thank everyone here who contributed to the solution and the guys at DevonTechnologies for taking us serious and working with us on a swift solution.

5 Likes

This was only an issue with 2 minor files for me, but I likewise want to appreciate the work in fixing this. Huge load off my shoulders to not have toi worry about my databases anymore.

This aside, v3 is off to a great start so far, and Iā€™m very excited for further new features down the road.

3 Likes

Good morning. I updated to DTTG 3.0.3 and what can I sayā€¦ I left DTTG last night in the ghost-file group view and after the update this morning, the over 450 ghost-files where replaced by a working one from DTTG 2-Database, even before the change log dialog came up.
Really impressive job und lots of thanks for the hard work!
My trust in this piece of wonderful software is restored.

5 Likes

After the update to 3.0.3 the file is gone. Thanks.

1 Like

you mean that in a good way, I presume? So the ghost has gone and everything is ok again?

I donā€™t want to spoil the party, but please all be aware that the root cause of this situation is yet to be determined if I understand correctly. That means (in theory) the problem can re-occur, despite the terrific job the DT staff has done in such short amount of time with the automatic replacements.

When people start deleting their DTTG2 installation or newly added files become ā€˜ghostsā€™ there is no backup available in DTTG2. Perhaps @eboehnisch has an idea? I presume itā€™s not desireable to create an incremental backup system on iOS while awaiting further cause analysis.

@cgrunenberg might comment whether some temporary ā€˜build-inā€™ backup on DT (i.e. on macOS) could do the same as the DTTG2 ā†’ DTTG3 replacement does on iOS. That would at least help out those with a DT/DTTG3 combination, and doesnā€™t require manually restoring ghost files.

That doesnā€™t actually delete the DTTG2 data right away. It might, of course, be useful to delay the deletion.

If the current theory is correct, namely that the problem was lying dormant, having been caused by a problem in DTTG2 a while back, then itā€™s possible that once it has been rectified once, it no longer appears. But I guess the last word hasnā€™t yet been spoken on that.

I heard Ericā€™s sigh of relief from hundreds of kilometres away :wink: Now that the immediate problem is solved, I guess the team will be back with a clearer and happier head, looking at what is actually going on. I look forward to feedback on what the root actually was (assuming Iā€™m competent to understand the explanation, that is). But we can have a little party in the meantime. (Well, weā€™re still in the middle of a pandemic, so we canā€™t - how about a cup of tea? Masked, gloved and alone.)

Yes. I couldnā€™t delete this file in the ghost group. Actually, my statement belongs to a comment string with @eboehnisch.

Thanks :slight_smile: Iā€™ve lost track :see_no_evil:

The analogy couldnā€™t be more striking: donā€™t celebrate early, as things can come back to ā€˜hauntā€™ you (pun intended). The automatic replacement is great, but also hides issues from occuring and therefore the size/width of the problem will decrease only based on this mitigation. My suggestion would be to keep looking for ghost files and the cause of course in the mean time.

Without knowing what caused the situation, newly added files cannot be restored in this way I presume. Youā€™re correct in that just deleting DTTG2 will not remove the data store as was mentioned above, but people might also remove DTTG2 first and then install DTTG3. Although itā€™s fairly unlikely of course. And as said, new files will be added in the mean time. Are those added in duplicate to the DTTG3 and DTTG2 data store? To be clear, the exact internal workings of DTTG go beyond my knowledge.

If the DT staff can be sure about the cause, the situation would be completely different. But based on my ā€˜forensicā€™ analysis the files became ā€˜ghostsā€™ on the exact day of the DTTG3 upgrade. Itā€™s difficult to understand why DTTG2 would ā€˜causeā€™ that.

The files restored by version 3.0.3 should be synchronized back to the Mac.

Yes, but thatā€™s not what I mean.

The DTTG2/3 replacement is a temporary mitigation of a problem with a yet to be established cause. It only works with ā€˜oldā€™ files and not with new ones and also not on devices that never had DTTG2 installed.

But as I see it, DT could perform a similar kind of action. Whether itā€™s the trouble of creating that is up to you of course, but how do users repair newly added files might they occur in the future. Iā€™ve done it manually, but that requires some work and restoring complete databases also restores any changes that were made in between the time the ā€˜ghostā€™ appeared and those changes were made.

From what I understand (and guessing the rest), by causing damage to the file in the sync store. Presumably that damage never propagated, because at the same time, the file was never marked as updated. If the file actually was ever updated, the damaged file in the sync store would have been overwritten, and so would also not have propagated. When DTTG3 was introduced, presumably some mechanism then let these files go.

I repeat: The first bit is what I gathered from what Eric wrote. The rest is (my) guessing. If there is any truth in my guess, however, it would mean that the problem will not recur; and to date, this thread has not suggested any ā€œnewā€ files being affected, so the theory would at least hold water.

(Iā€™m not suggesting your suggestions are invalid; I think we as users are called upon to check our backup strategy; I will be keeping my 0-size smart group and checksum script for the time being; and I agree DT would be well advised to look into any other necessary precautions)

Thatā€™s at least our best assumption so far and explains why we canā€™t reproduce this. As far as I remember, there have been no reports of new files being affected.

The upcoming DEVONthink 3.6.3 will also improve File > Verify & Repair Databaseā€¦ plus the simple, automatic verification before synchronizing a database.

1 Like

That goes for me as well, but the pinned notice mentioned they werenā€™t sure yet as @eboehnisch wrote.

If this is the cause and no new files appear youā€™re right of course.

Yes, but the chance of the files being reported has also been reduced with the work-around. To repeat, itā€™s a terrific way to restore the files and I have deep respect for the timely way it was done, but itā€™s still a work around if the cause is not understood.

Whether or not DT should pursue it further is up to the staff of course. But if you donā€™t find a cause, based on what the staff have reported my estinate is that the most ā€˜sureā€™ way to prevent new occurences is to remove DTTG2 and DTTG3, setup a new sync store from DT and resync all devices. It might be that is not necessary at all, but itā€™s like restoring a computer once in a while to get rid of any ā€˜ghosts from the pastā€™ :grinning:

If the database(s) are intact on the Mac, then yes, deleting 2 and 3, then reinstalling 3 and reimporting the databases is a viable option (one Iā€™ve successfully prescribed in support pre-3.0.3).

However there have been no reports of new files being affected. And no issue has been reported in a fresh install of 3, i.e., for new DEVONthink To Go users.

1 Like

Itā€™s not unlikely that the cause has been fixed a long time ago, e.g. while developing DEVONthink To Go 3 or maintaining the sync engine which steadily receives improvements & fixes.

And that would also explain why neither we nor our testers experienced this because all of us use the latest versions and have to reinstall apps and clean sync stores for tests quite often. Although I also have sync stores which are many years old and work flawlessly all the time.

My point is: that could and could not be a proper way to measure the size of the problem.

How do you know? File integrity is exactly what I think people do not check. Iā€™ve never had the need to setup a 0-byte smart group, just bumped into this thread and there they were. But what about files that arenā€™t zeto-bytes but less than the original because they;re missing critical bytes?

And weā€™re back to my checksum script :wink:

1 Like