Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs should say a word on how diagnostics are to be read #223

Open
sven-nm opened this issue Dec 4, 2023 · 2 comments
Open

Docs should say a word on how diagnostics are to be read #223

sven-nm opened this issue Dec 4, 2023 · 2 comments
Assignees
Labels
crate: database Related to the database crate documentation Improvements or additions to documentation question Further information is requested

Comments

@sven-nm
Copy link

sven-nm commented Dec 4, 2023

Thanks for this gorgeous utility !

Running imessage-exporter -d I get:

Message diagnostic data:
    Total messages: 94116
    Messages not associated with a chat: 6046
    Messages belonging to more than one chat: 16
Attachment diagnostic data:
    Total attachments: 2750
        Data referenced in table: 1.76 GB
        Data present on disk: 2.39 GB
    Missing files: 43 (2%)
        No path provided: 41
        No file located: 2
Global diagnostic data:
    Total database size: 107.51 MB
    Duplicated contacts: 265

It would be nice if each of these were explained somewhere. For instance:

  1. What are Messages not associated with a chat
    a. how can it be fixed ?
    b. Does it mean some messages are lost at time of export ?
  2. How do we explain the difference between Data present on disk: 2.39 GB and Data referenced in table: 1.76 GB ? Does it have anything to do with 1. ?
  3. Missing files (already explained in this issue).
  4. What are Duplicated contacts?
@ReagentX ReagentX added documentation Improvements or additions to documentation question Further information is requested crate: database Related to the database crate labels Dec 4, 2023
@ReagentX ReagentX self-assigned this Dec 4, 2023
@ReagentX
Copy link
Owner

ReagentX commented Dec 5, 2023

This is a good issue; I will write some documentation to explain this. In the interim I will answer your questions:

  1. There is a table chat_message_join that maps a message's row ID to chat's row ID. If a message exists in the messages table but is not in chat_message_join, that means we cannot determine which chat it was associated with.
    • It cannot be fixed
    • Those messages show up in Orphaned.html or Orphaned.txt file in the export directory
  2. "Data present on disk" represents the total size of the attachments listed in the attachments when following the listed path to the respective file. "Data referenced in table" is the sum of the total_bytes column in the attachments table. I don't know why they are different, but the former is the actual storage taken up by iMessage attachments.
  3. There are two different types of missing files:
    • "No path provided" means there was a row in the attachments table that did not contain a path to a file
    • "No file located" means there was a path, but there was no file at the specified location.
  4. Duplicated contacts occur when a single contact has multiple valid phone numbers or iMessage email addresses. The iMessage database stores handles as rows, and multiple rows can match to the same contact. The software does deduplication, but this diagnostic tells you how many contacts required that step.

@sven-nm
Copy link
Author

sven-nm commented Dec 5, 2023

@ReagentX Thank you very much for your very clear answer, it helps a lot.

"No path provided" means there was a row in the attachments table that did not contain a path to a file

As a hint - or rather an educated guess - to future users, it seems one reason for these to show up is a bad synchronisation with iCloud (i.e. the picture exists on my phone but not on my PC, despite iCloud sync being on, maybe because it has been deleted on one device 🤷)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crate: database Related to the database crate documentation Improvements or additions to documentation question Further information is requested
Projects
Status: In Progress
Development

No branches or pull requests

2 participants