vrtmrz / obsidian-livesync

MIT License
3.93k stars 132 forks source link

Some notes synced as zero size #357

Open przemhb opened 6 months ago

przemhb commented 6 months ago

Abstract

I installed Obsidian 1.5.3 and Obsidian-LiveSync on a three devices: 1. my desktop (Win10), then 2. Android (11) mobile and 3. laptop. Desktop is my primary device. I have imported notes from Evernote ENEX file to a local Obsidian Vault. Next I set up synchronisation on my desktop and waited until it ended pushing notes to a couchdb database. I have configured the livesync on my mobile (Android) afterwards and synced. Finally the same on a laptop. On the mobile and laptop synchronisations failed to fetch body of 3 out of 392 notes. The notes were seen as title only with zero file sizes and empty bodies.

Expected behaviour

As Obsidian-LiveSync finished synchronisation I have expected it pushed all the notes to the couchdb database. Hence I expected that all those notes will get fetched intact on the two other devices in a newly set up vaults.

Actually happened

Reproducing procedure

I have configured synchronisation as described above only once and the issue happened. I could try to reproduce and gather some logs in case it'd help. Just let me know what to collect.

Report from the LiveSync

Below are reports from all the 3 devices and also dump of the information regarding one of the failed notes.

Dumped information of one of the failed notes (notice size: 0) ``` 1.01.2024, 18:44:30->Enhanced doc 1.01.2024, 18:44:30->{ "data": "", "_id": "przemhb's notebook/Odpowiedź z Plusa.md", "path": "przemhb's notebook/Odpowiedź z Plusa.md", "ctime": 1391450122000, "mtime": 1391450122000, "size": 0, "_rev": "2-cd56c262cfc84633943d43819740ce2f", "children": [ "h:+1k1bb8isxowev" ], "datatype": "plain", "type": "plain" } 1.01.2024, 18:44:30->therefore: 1.01.2024, 18:44:30->{ "data": [ "" ], "path": "przemhb's notebook/Odpowiedź z Plusa.md", "_id": "przemhb's notebook/Odpowiedź z Plusa.md", "ctime": 1391450122000, "mtime": 1391450122000, "size": 0, "_rev": "2-cd56c262cfc84633943d43819740ce2f", "children": [ "h:+1k1bb8isxowev" ], "datatype": "plain", "type": "plain" } ```
Report from hatch (desktop) ``` ----remote config---- cors: credentials: "true" headers: accept, authorization, content-type, origin, referer max_age: "3600" methods: GET,PUT,POST,HEAD,DELETE origins: app://obsidian.md, capacitor://localhost, http://localhost chttpd: bind_address: any enable_cors: "true" max_http_request_size: "4294967296" port: "5984" require_valid_user: "true" admins: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 vendor: name: The Apache Software Foundation feature_flags: partitioned||*: "true" chttpd_auth: authentication_redirect: /_utils/session.html hash_algorithms: sha256, sha require_valid_user: "true" indexers: couch_mrview: "true" prometheus: additional_port: "false" bind_address: 127.0.0.1 port: "17986" httpd: WWW-Authenticate: Basic realm="couchdb" bind_address: 0.0.0.0 port: "5986" smoosh: state_dir: ./data couch_httpd_auth: authentication_db: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 secret: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 authentication_redirect: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 couchdb_engines: couch: couch_bt_engine couchdb: database_dir: ./data max_document_size: "50000000" single_node: "true" uuid: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 view_index_dir: ./data ---- Plug-in config --- version:0.21.5 couchDB_URI: self-hosted couchDB_USER: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 couchDB_PASSWORD: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 couchDB_DBNAME: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 liveSync: true syncOnSave: false syncOnStart: false savingDelay: 200 lessInformationInLog: false gcDelay: 0 versionUpFlash: "" minimumChunkSize: 20 longLineThreshold: 250 showVerboseLog: false suspendFileWatching: false trashInsteadDelete: true periodicReplication: false periodicReplicationInterval: 60 syncOnFileOpen: false encrypt: true passphrase: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 usePathObfuscation: false doNotDeleteFolder: false resolveConflictsByNewerFile: false batchSave: false deviceAndVaultName: "" usePluginSettings: false showOwnPlugins: false showStatusOnEditor: true usePluginSync: false autoSweepPlugins: false autoSweepPluginsPeriodic: false notifyPluginOrSettingUpdated: false checkIntegrityOnSave: false batch_size: 50 batches_limit: 40 useHistory: true disableRequestURI: true skipOlderFilesOnSync: true checkConflictOnlyOnOpen: false syncInternalFiles: false syncInternalFilesBeforeReplication: false syncInternalFilesIgnorePatterns: \/node_modules\/, \/\.git\/, \/obsidian-livesync\/ syncInternalFilesInterval: 60 additionalSuffixOfDatabaseName: "" ignoreVersionCheck: false lastReadUpdates: 0 deleteMetadataOfDeletedFiles: false syncIgnoreRegEx: "" syncOnlyRegEx: "" customChunkSize: 0 readChunksOnline: true watchInternalFileChanges: true automaticallyDeleteMetadataOfDeletedFiles: 0 disableMarkdownAutoMerge: false writeDocumentsIfConflicted: false useDynamicIterationCount: false syncAfterMerge: false configPassphraseStore: "" encryptedPassphrase: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 encryptedCouchDBConnection: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 permitEmptyPassphrase: false useIndexedDBAdapter: true useTimeouts: false writeLogToTheFile: false doNotPaceReplication: false hashCacheMaxCount: 300 hashCacheMaxAmount: 50 concurrencyOfReadChunksOnline: 100 minimumIntervalOfReadChunksOnline: 333 hashAlg: xxhash64 suspendParseReplicationResult: false doNotSuspendOnFetching: false useIgnoreFiles: false ignoreFiles: .gitignore syncOnEditorSave: false pluginSyncExtendedSetting: {} ```
Report from the hatch (Android mobile) ``` ----remote config---- cors: credentials: "true" headers: accept, authorization, content-type, origin, referer max_age: "3600" methods: GET,PUT,POST,HEAD,DELETE origins: app://obsidian.md, capacitor://localhost, http://localhost chttpd: bind_address: any enable_cors: "true" max_http_request_size: "4294967296" port: "5984" require_valid_user: "true" admins: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 vendor: name: The Apache Software Foundation feature_flags: partitioned||*: "true" chttpd_auth: authentication_redirect: /_utils/session.html hash_algorithms: sha256, sha require_valid_user: "true" indexers: couch_mrview: "true" prometheus: additional_port: "false" bind_address: 127.0.0.1 port: "17986" httpd: WWW-Authenticate: Basic realm="couchdb" bind_address: 0.0.0.0 port: "5986" smoosh: state_dir: ./data couch_httpd_auth: authentication_db: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 secret: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 authentication_redirect: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 couchdb_engines: couch: couch_bt_engine couchdb: database_dir: ./data max_document_size: "50000000" single_node: "true" uuid: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 view_index_dir: ./data ---- Plug-in config --- version:0.21.5 couchDB_URI: self-hosted couchDB_USER: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 couchDB_PASSWORD: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 couchDB_DBNAME: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 liveSync: true syncOnSave: false syncOnStart: false savingDelay: 200 lessInformationInLog: false gcDelay: 0 versionUpFlash: "" minimumChunkSize: 20 longLineThreshold: 250 showVerboseLog: false suspendFileWatching: false trashInsteadDelete: true periodicReplication: false periodicReplicationInterval: 60 syncOnFileOpen: false encrypt: true passphrase: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 usePathObfuscation: false doNotDeleteFolder: false resolveConflictsByNewerFile: false batchSave: false deviceAndVaultName: "" usePluginSettings: false showOwnPlugins: false showStatusOnEditor: true usePluginSync: false autoSweepPlugins: false autoSweepPluginsPeriodic: false notifyPluginOrSettingUpdated: false checkIntegrityOnSave: false batch_size: 50 batches_limit: 40 useHistory: true disableRequestURI: true skipOlderFilesOnSync: true checkConflictOnlyOnOpen: false syncInternalFiles: false syncInternalFilesBeforeReplication: false syncInternalFilesIgnorePatterns: \/node_modules\/, \/\.git\/, \/obsidian-livesync\/ syncInternalFilesInterval: 60 additionalSuffixOfDatabaseName: "" ignoreVersionCheck: false lastReadUpdates: 21 deleteMetadataOfDeletedFiles: false syncIgnoreRegEx: "" syncOnlyRegEx: "" customChunkSize: 0 readChunksOnline: true watchInternalFileChanges: true automaticallyDeleteMetadataOfDeletedFiles: 0 disableMarkdownAutoMerge: false writeDocumentsIfConflicted: false useDynamicIterationCount: false syncAfterMerge: false configPassphraseStore: "" encryptedPassphrase: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 encryptedCouchDBConnection: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 permitEmptyPassphrase: false useIndexedDBAdapter: true useTimeouts: false writeLogToTheFile: false doNotPaceReplication: false hashCacheMaxCount: 300 hashCacheMaxAmount: 50 concurrencyOfReadChunksOnline: 100 minimumIntervalOfReadChunksOnline: 333 hashAlg: xxhash64 suspendParseReplicationResult: false doNotSuspendOnFetching: false useIgnoreFiles: false ignoreFiles: .gitignore syncOnEditorSave: false pluginSyncExtendedSetting: {} ```
Report from hatch (laptop) ``` ----remote config---- cors: credentials: "true" headers: accept, authorization, content-type, origin, referer max_age: "3600" methods: GET,PUT,POST,HEAD,DELETE origins: app://obsidian.md, capacitor://localhost, http://localhost chttpd: bind_address: any enable_cors: "true" max_http_request_size: "4294967296" port: "5984" require_valid_user: "true" admins: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 vendor: name: The Apache Software Foundation feature_flags: partitioned||*: "true" chttpd_auth: authentication_redirect: /_utils/session.html hash_algorithms: sha256, sha require_valid_user: "true" indexers: couch_mrview: "true" prometheus: additional_port: "false" bind_address: 127.0.0.1 port: "17986" httpd: WWW-Authenticate: Basic realm="couchdb" bind_address: 0.0.0.0 port: "5986" smoosh: state_dir: ./data couch_httpd_auth: authentication_db: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 secret: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 authentication_redirect: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 couchdb_engines: couch: couch_bt_engine couchdb: database_dir: ./data max_document_size: "50000000" single_node: "true" uuid: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 view_index_dir: ./data ---- Plug-in config --- version:0.21.5 couchDB_URI: self-hosted couchDB_USER: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 couchDB_PASSWORD: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 couchDB_DBNAME: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 liveSync: true syncOnSave: false syncOnStart: false savingDelay: 200 lessInformationInLog: false gcDelay: 0 versionUpFlash: "" minimumChunkSize: 20 longLineThreshold: 250 showVerboseLog: false suspendFileWatching: false trashInsteadDelete: true periodicReplication: false periodicReplicationInterval: 60 syncOnFileOpen: false encrypt: true passphrase: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 usePathObfuscation: false doNotDeleteFolder: false resolveConflictsByNewerFile: false batchSave: false deviceAndVaultName: "" usePluginSettings: false showOwnPlugins: false showStatusOnEditor: true usePluginSync: false autoSweepPlugins: false autoSweepPluginsPeriodic: false notifyPluginOrSettingUpdated: false checkIntegrityOnSave: false batch_size: 50 batches_limit: 40 useHistory: true disableRequestURI: true skipOlderFilesOnSync: true checkConflictOnlyOnOpen: false syncInternalFiles: false syncInternalFilesBeforeReplication: false syncInternalFilesIgnorePatterns: \/node_modules\/, \/\.git\/, \/obsidian-livesync\/ syncInternalFilesInterval: 60 additionalSuffixOfDatabaseName: "" ignoreVersionCheck: false lastReadUpdates: 21 deleteMetadataOfDeletedFiles: false syncIgnoreRegEx: "" syncOnlyRegEx: "" customChunkSize: 0 readChunksOnline: true watchInternalFileChanges: true automaticallyDeleteMetadataOfDeletedFiles: 0 disableMarkdownAutoMerge: false writeDocumentsIfConflicted: false useDynamicIterationCount: false syncAfterMerge: false configPassphraseStore: "" encryptedPassphrase: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 encryptedCouchDBConnection: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷 permitEmptyPassphrase: false useIndexedDBAdapter: true useTimeouts: false writeLogToTheFile: false doNotPaceReplication: false hashCacheMaxCount: 300 hashCacheMaxAmount: 50 concurrencyOfReadChunksOnline: 100 minimumIntervalOfReadChunksOnline: 333 hashAlg: xxhash64 suspendParseReplicationResult: false doNotSuspendOnFetching: false useIgnoreFiles: false ignoreFiles: .gitignore syncOnEditorSave: false pluginSyncExtendedSetting: {} ```
Report from the LiveSync (laptop). There were a few attempts to toggle on/off the sync, scan storage etc. Two of the three notes were modified on the desktop, then reverted in hope to force their sync. I believe it caused them to be eventually synced. Third (info above) is at it was, so it was not synced and it still isn't. ``` 1.01.2024, 16:51:25->Checking deleted files 1.01.2024, 16:51:27->Collecting local files on the DB: 25 1.01.2024, 16:51:27->Collecting local files on the DB: 50 1.01.2024, 16:51:27->Collecting local files on the DB: 75 1.01.2024, 16:51:27->Collecting local files on the DB: 100 1.01.2024, 16:51:27->Collecting local files on the DB: 125 1.01.2024, 16:51:27->Collecting local files on the DB: 150 1.01.2024, 16:51:27->Collecting local files on the DB: 175 1.01.2024, 16:51:27->Collecting local files on the DB: 200 1.01.2024, 16:51:27->Collecting local files on the DB: 225 1.01.2024, 16:51:27->Collecting local files on the DB: 250 1.01.2024, 16:51:27->Collecting local files on the DB: 275 1.01.2024, 16:51:27->Collecting local files on the DB: 300 1.01.2024, 16:51:27->Collecting local files on the DB: 325 1.01.2024, 16:51:27->Collecting local files on the DB: 350 1.01.2024, 16:51:27->Collecting local files on the DB: 375 1.01.2024, 16:51:27->Collecting local files on the DB: 400 1.01.2024, 16:51:27->Collecting local files on the DB: 425 1.01.2024, 16:51:27->Collecting local files on the DB: 450 1.01.2024, 16:51:27->Collecting local files on the DB: 475 1.01.2024, 16:51:27->Collecting local files on the DB: 500 1.01.2024, 16:51:27->Collecting local files on the DB: 525 1.01.2024, 16:51:27->Collecting local files on the DB: 550 1.01.2024, 16:51:27->Collecting local files on the DB: 575 1.01.2024, 16:51:27->Collecting local files on the DB: 600 1.01.2024, 16:51:27->Collecting local files on the DB: 625 1.01.2024, 16:51:27->Collecting local files on the DB: 650 1.01.2024, 16:51:27->Collecting local files on the DB: 675 1.01.2024, 16:51:27->Collecting local files on the DB: 700 1.01.2024, 16:51:27->Collecting local files on the DB: 725 1.01.2024, 16:51:27->Collecting local files on the DB: 750 1.01.2024, 16:51:27->Collecting local files on the DB: 775 1.01.2024, 16:51:27->Updating database by new files 1.01.2024, 16:51:27->UPDATE DATABASE 1.01.2024, 16:51:27->UPDATE DATABASE: PASS:0, FAILED:0 1.01.2024, 16:51:27->UPDATE STORAGE 1.01.2024, 16:51:27->UPDATE STORAGE: PASS:7, FAILED:0 1.01.2024, 16:51:27->CHECK FILE STATUS:1/8 1.01.2024, 16:51:27->CHECK FILE STATUS:1/8: PASS:100, FAILED:0 1.01.2024, 16:51:27->CHECK FILE STATUS:2/8 1.01.2024, 16:51:27->CHECK FILE STATUS:2/8: PASS:100, FAILED:0 1.01.2024, 16:51:27->CHECK FILE STATUS:3/8 1.01.2024, 16:51:27->CHECK FILE STATUS:3/8: PASS:100, FAILED:0 1.01.2024, 16:51:27->CHECK FILE STATUS:4/8 1.01.2024, 16:51:27->CHECK FILE STATUS:4/8: PASS:100, FAILED:0 1.01.2024, 16:51:27->CHECK FILE STATUS:5/8 1.01.2024, 16:51:27->CHECK FILE STATUS:5/8: PASS:100, FAILED:0 1.01.2024, 16:51:27->CHECK FILE STATUS:6/8 1.01.2024, 16:51:27->CHECK FILE STATUS:6/8: PASS:100, FAILED:0 1.01.2024, 16:51:27->CHECK FILE STATUS:7/8 1.01.2024, 16:51:27->CHECK FILE STATUS:7/8: PASS:100, FAILED:0 1.01.2024, 16:51:27->CHECK FILE STATUS:8/8 1.01.2024, 16:51:27->CHECK FILE STATUS:8/8: PASS:78, FAILED:0 1.01.2024, 16:51:27->Initialized, NOW TRACKING! 1.01.2024, 16:51:27->Before LiveSync, start OneShot once... 1.01.2024, 16:51:27->OneShot Sync begin... (pullOnly) 1.01.2024, 16:51:28->Replication completed 1.01.2024, 16:51:28->LiveSync begin... 1.01.2024, 16:51:38->Replication closed 1.01.2024, 16:54:25->Before LiveSync, start OneShot once... 1.01.2024, 16:54:25->OneShot Sync begin... (pullOnly) 1.01.2024, 16:54:26->Replication completed 1.01.2024, 16:54:26->LiveSync begin... 1.01.2024, 16:54:34->Enhanced doc 1.01.2024, 16:54:34->{ "data": "", "_id": "przemhb's notebook/Odpowiedź z Plusa.md", "path": "przemhb's notebook/Odpowiedź z Plusa.md", "ctime": 1391450122000, "mtime": 1391450122000, "size": 0, "_rev": "2-cd56c262cfc84633943d43819740ce2f", "children": [ "h:+1k1bb8isxowev" ], "datatype": "plain", "type": "plain" } 1.01.2024, 16:54:34->therefore: 1.01.2024, 16:54:34->{ "data": [ "" ], "path": "przemhb's notebook/Odpowiedź z Plusa.md", "_id": "przemhb's notebook/Odpowiedź z Plusa.md", "ctime": 1391450122000, "mtime": 1391450122000, "size": 0, "_rev": "2-cd56c262cfc84633943d43819740ce2f", "children": [ "h:+1k1bb8isxowev" ], "datatype": "plain", "type": "plain" } 1.01.2024, 16:55:50->Replication closed 1.01.2024, 17:15:59->Before LiveSync, start OneShot once... 1.01.2024, 17:15:59->OneShot Sync begin... (pullOnly) 1.01.2024, 17:16:00->Replication activated 1.01.2024, 17:16:01->Applied Bez nazwy.md (Bez nazw:2-95d) change... 1.01.2024, 17:16:01->Replication completed 1.01.2024, 17:16:01->LiveSync begin... 1.01.2024, 17:16:01->Replication activated 1.01.2024, 17:16:01->Replication activated 1.01.2024, 17:16:11->Replication closed 1.01.2024, 17:45:27->Before LiveSync, start OneShot once... 1.01.2024, 17:45:27->OneShot Sync begin... (pullOnly) 1.01.2024, 17:45:28->Replication completed 1.01.2024, 17:45:28->LiveSync begin... 1.01.2024, 17:45:34->Replication closed 1.01.2024, 19:01:00->Before LiveSync, start OneShot once... 1.01.2024, 19:01:00->OneShot Sync begin... (pullOnly) 1.01.2024, 19:01:01->Replication completed 1.01.2024, 19:01:01->LiveSync begin... 1.01.2024, 19:01:12->{ "cors": { "credentials": "true", "headers": "accept, authorization, content-type, origin, referer", "max_age": "3600", "methods": "GET,PUT,POST,HEAD,DELETE", "origins": "app://obsidian.md, capacitor://localhost, http://localhost" }, "chttpd": { "bind_address": "any", "enable_cors": "true", "max_http_request_size": "4294967296", "port": "5984", "require_valid_user": "true" }, "admins": { "obsidian": "-pbkdf2-1b8a4f4717b7ce3b34c1e6e799c4195c1ddf8851,ac8baf6a6ff412004c0f4488b9c9fa08,10" }, "vendor": { "name": "The Apache Software Foundation" }, "feature_flags": { "partitioned||*": "true" }, "chttpd_auth": { "authentication_redirect": "/_utils/session.html", "hash_algorithms": "sha256, sha", "require_valid_user": "true" }, "indexers": { "couch_mrview": "true" }, "prometheus": { "additional_port": "false", "bind_address": "127.0.0.1", "port": "17986" }, "httpd": { "WWW-Authenticate": "Basic realm=\"couchdb\"", "bind_address": "0.0.0.0", "port": "5986" }, "smoosh": { "state_dir": "./data" }, "couch_httpd_auth": { "authentication_db": "_users" }, "couchdb_engines": { "couch": "couch_bt_engine" }, "couchdb": { "database_dir": "./data", "max_document_size": "50000000", "single_node": "true", "uuid": "b4b43f88db71edf5f4c7e0145cfa0b63", "view_index_dir": "./data" } } 1.01.2024, 19:01:12->Information has been copied to clipboard 1.01.2024, 19:01:17->Replication closed 1.01.2024, 19:47:14->Before LiveSync, start OneShot once... 1.01.2024, 19:47:14->OneShot Sync begin... (pullOnly) 1.01.2024, 19:47:14->Replication completed 1.01.2024, 19:47:14->LiveSync begin... 1.01.2024, 19:47:28->{ "cors": { "credentials": "true", "headers": "accept, authorization, content-type, origin, referer", "max_age": "3600", "methods": "GET,PUT,POST,HEAD,DELETE", "origins": "app://obsidian.md, capacitor://localhost, http://localhost" }, "chttpd": { "bind_address": "any", "enable_cors": "true", "max_http_request_size": "4294967296", "port": "5984", "require_valid_user": "true" }, "admins": { "obsidian": "-pbkdf2-1b8a4f4717b7ce3b34c1e6e799c4195c1ddf8851,ac8baf6a6ff412004c0f4488b9c9fa08,10" }, "vendor": { "name": "The Apache Software Foundation" }, "feature_flags": { "partitioned||*": "true" }, "chttpd_auth": { "authentication_redirect": "/_utils/session.html", "hash_algorithms": "sha256, sha", "require_valid_user": "true" }, "indexers": { "couch_mrview": "true" }, "prometheus": { "additional_port": "false", "bind_address": "127.0.0.1", "port": "17986" }, "httpd": { "WWW-Authenticate": "Basic realm=\"couchdb\"", "bind_address": "0.0.0.0", "port": "5986" }, "smoosh": { "state_dir": "./data" }, "couch_httpd_auth": { "authentication_db": "_users" }, "couchdb_engines": { "couch": "couch_bt_engine" }, "couchdb": { "database_dir": "./data", "max_document_size": "50000000", "single_node": "true", "uuid": "b4b43f88db71edf5f4c7e0145cfa0b63", "view_index_dir": "./data" } } 1.01.2024, 19:47:28->Information has been copied to clipboard 1.01.2024, 19:47:44->Replication closed 1.01.2024, 19:54:39->Before LiveSync, start OneShot once... 1.01.2024, 19:54:39->OneShot Sync begin... (pullOnly) 1.01.2024, 19:54:40->Replication completed 1.01.2024, 19:54:40->LiveSync begin... ```
### Other information, insights and intuition. Please provide any additional context or information about the problem.
dlphnkck commented 6 months ago

Hi. I am a new to about LiveSync plugin.

First of all, the following text is not directly related to the solution of your problem this time przemhb. I used to have a problem with file size being set to ZERO on sync, but I thought that the problem was solved some time ago (v0.21.2).

Since v0.21.2.I did not have the problem of the file size reducing to zero size again

This bug was fixed resolved by following.

  1. On 10/24 synced PDF file size increases 5x after syncing between IOS and iPadOS - ■Vrtmrz/obsidian■Livesync
  2. On 11/5 synchronized PDF file size is now 0 - Issue ˶#318 - vrtmrz/obsidian ✾-livesync
  3. On 11/27 v0.21.2 reased.
    1. change comparison between v0.21.2 and previous v0.21.1
    2. v0.21.2 fixes:
      • Files are no longer corrupted during rebuild.

      • Large binary files can now be written correctly on mobile platforms.

      • Fixed a decoding error that caused the file to be 0 bytes.

After reviewing the detailed information you have provided, I did not find any issues wrong with chunk size, batch size, or any other aspect of the platform.

I have a hypothesis, with all due respect, is it possible that the file size was set to 0 in the sync prior to v0.21.1, and you just noticed it in v0.21.5? I apologize if this is very rude and I am wrong. That is all.

przemhb commented 6 months ago

I have installed the LiveSync on the 31.12.2023, so I guess I never have had versions lower, than the last 0.21.5.

vrtmrz commented 5 months ago

Thank you for opening this issue! Your detailed information is very useful to infer the problem. I appreciate your effort and kindness! The dump of the information indicates that the file was saved as zero bytes in fact. However, the revision has been gotten 2. Therefore, it possibly had been overwritten by the empty file. Unexpected conflicts while fetching had been common before v0.22.0. I guess that this could be a result of a failure of automatic resolving.

If it was so, we have an old revision. Could you please check the document history by Show history? And, if possible, please try the latest version.

przemhb commented 5 months ago

Thank you for your kind words.

Show history shows 1 revision (see screenshot attached).

Obsidian_eYDOChofoj

I updated to 22.1, waited for the sync to complete, but the note is still empty.

vrtmrz commented 5 months ago

Oh my, it seems that we have already lost revision 1. There is still a possibility that only another device (due to only the latest changes revision would be transferred), has that, but we should think that the note is lost in this client; and be in a very regretful situation.

I am very sorry to be got as like this. If you really need this document (from the timestamp, I think that it might be so), would you please check the CouchDB directly with the following parameters?

https://your-couchdb.example.com/yourdatabase/przemhb%27s+notebook%2FOdpowied%C5%BA+z+Plusa.md?deleted_conflicts=true&revs_info=true

This will respond to us like this:

{
    "_id": "Untitled.md",
    "_rev": "2-beee03dd23f14e20affca4803043f1ff",
    "children": [
        "h:1ov6d7gstvdqj"
    ],
    "path": "Untitled.md",
    "ctime": 1702629702243,
    "mtime": 1702630820610,
    "size": 56,
    "type": "plain",
    "_revs_info": [
        {
            "rev": "2-beee03dd23f14e20affca4803043f1ff",
            "status": "available"
        },
        {
            "rev": "1-d1050bb04e17cacedfba8da57f5634ae",
            "status": "available"
        }
    ],
    "_deleted_conflicts": [
        "110-1e55c83b8d6fb54c66e016acec3e0d2e"
    ]
}

If the status of rev 1-xxx is not missing, there are still possibilities for recovery.

przemhb commented 5 months ago

It seems the link is not valid as I get error 404 when trying to open: http://192.168.0.2/couchdb/obsidian/przemhb%27s+notebook%2FOdpowied%C5%BA+z+Plusa.md?deleted_conflicts=true&revs_info=true

26 sty 2024 10:16:32 vorotamoroz @.***>:

Oh my, it seems that we have already lost revision 1. There is still a possibility that only another device (due to only the latest changes revision would be transferred), has that, but we should think that the note is lost in this client; and be in a very regretful situation.

I am very sorry to be got as like this. If you really need this document (from the timestamp, I think that it might be so), would you please check the CouchDB directly with the following parameters?

https://your-couchdb.example.com/yourdatabase/przemhb%27s+notebook%2FOdpowied%C5%BA+z+Plusa.md?deleted_conflicts=true&revs_info=true

This will respond to us like this:

{ "_id": "Untitled.md", "_rev": "2-beee03dd23f14e20affca4803043f1ff", "children": [ "h:1ov6d7gstvdqj" ], "path": "Untitled.md", "ctime": 1702629702243, "mtime": 1702630820610, "size": 56, "type": "plain", "_revs_info": [ { "rev": "2-beee03dd23f14e20affca4803043f1ff", "status": "available" }, { "rev": "1-d1050bb04e17cacedfba8da57f5634ae", "status": "available" } ], "_deleted_conflicts": [ "110-1e55c83b8d6fb54c66e016acec3e0d2e" ] } If the status of rev 1-xxx is not missing, there are still possibilities for recovery.

— Reply to this email directly, view it on GitHub[https://github.com/vrtmrz/obsidian-livesync/issues/357#issuecomment-1911720768], or unsubscribe[https://github.com/notifications/unsubscribe-auth/ACKNLB7Q6ISJ473CQF6Z2IDYQNX67AVCNFSM6AAAAABBJHIETKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJRG4ZDANZWHA]. You are receiving this because you authored the thread. [Obrazek śledzący][https://github.com/notifications/beacon/ACKNLB3SW3IDLY6GPQ7MUMTYQNX67A5CNFSM6AAAAABBJHIETKWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTR6KFUA.gif]

vrtmrz commented 5 months ago

Thank you for the try! I am so sad for that. Would you check also from the Fauxton (web UI)?

Changes can be seen in http://192.168.0.2/_utils/#/database/obsidian/_changes or http://192.168.0.2/couchdb/_utils/#/database/obsidian/_changes.

przemhb commented 5 months ago

I opened: https://192.168.0.2/couchdb/_utils/#/database/obsidian/_changes and used "Document ID" search box to find the note, but it failed - see animated GIF attached. (Note my database is encrypted)

vivaldi_m94CJNcmLb

vrtmrz commented 5 months ago

Thank you! The screen recording helps me! The note seems to exist, as there are red candidates, but I am a little puzzled as to why I get a message that it cannot be found. Could you access the CouchDB directly, without reverse proxy? (like 192.168.0.2:5984/_utils...).

przemhb commented 5 months ago

I tried the same on my server opening http://localhost/couchdb/_utils/#database/obsidian/_changes. Got the same behaviour. When I tried to open the Fauxton using 5984 port my browser failed to do so throwing: {"error":"not_found","reason":"Database does not exist."} That's also on attempts to open just: http://localhost/couchdb/_utils/ Verified, that CouchDB listens on the port.

vrtmrz commented 5 months ago

May I ask how you are hosting the CouchDB? If we ran CouchDB in our local environment, fauxton should be on http://localhost:5984/_utils. (No subdirectory needed)

przemhb commented 5 months ago

Oh, right. Removed the subdirectory from the address and finally got the changes as follows:

{ "_id": "przemhb's notebook/Odpowiedź z Plusa.md", "_rev": "2-cd56c262cfc84633943d43819740ce2f", "children": [ "h:+1k1bb8isxowev" ], "path": "przemhb's notebook/Odpowiedź z Plusa.md", "ctime": 1391450122000, "mtime": 1391450122000, "size": 0, "type": "plain" }