obsidian-livesync
obsidian-livesync copied to clipboard
Synchronisation never finishes when using a proxy
Abstract
When using a proxy to sync, it keeps sending request and never finishes the synchronization.
Expected behaviour
- When using a proxy, the number of requests sent should be finite and the same as without a proxy
- A post to /db/_revs_diff should occurs
Actually happened
- Requests keep getting sent at a manic rate
- POST request are never sent somehow when looking into the dev tools
Reproducing procedure
- Configure LiveSync as in the attached material.
- Click the replication button on the ribbon.
- Synchronising has begun.
- It never finishes
Report materials
Report from the LiveSync
Report from hatch
---- Obsidian info ----
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) obsidian/1.5.12 Chrome/120.0.6099.283 Electron/28.2.3 Safari/537.36
---- remote config ----
cors:
credentials: "true"
origins: app://obsidian.md,capacitor://localhost,http://localhost
chttpd:
authentication_handlers: "{chttpd_auth, proxy_authentication_handler}, {chttpd_auth, default_authentication_handler}"
bind_address: any
max_http_request_size: "4294967296"
port: "5984"
require_valid_user: "true"
admins: π
πΈπ·π΄πΆππΈπ·
vendor:
name: The Apache Software Foundation
feature_flags:
partitioned||*: "true"
chttpd_auth:
hash_algorithms: sha256, sha
proxy_use_secret: "true"
require_valid_user: "true"
secret: 2cffa5ece421c9d2719e5d798bd356dc52d1d72e
indexers:
couch_mrview: "true"
prometheus:
additional_port: "false"
bind_address: 127.0.0.1
port: "17986"
httpd:
WWW-Authenticate: Basic realm="couchdb"
bind_address: 127.0.0.1
enable_cors: "true"
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"
uuid: π
πΈπ·π΄πΆππΈπ·
view_index_dir: ./data
---- Plug-in config ---
version:0.23.17
remoteType: ""
useCustomRequestHandler: false
couchDB_URI: self-hosted(HTTP)
couchDB_USER: π
πΈπ·π΄πΆππΈπ·
couchDB_PASSWORD: π
πΈπ·π΄πΆππΈπ·
couchDB_DBNAME: π
πΈπ·π΄πΆππΈπ·
liveSync: false
syncOnSave: false
syncOnStart: false
savingDelay: 200
lessInformationInLog: false
gcDelay: 0
versionUpFlash: ""
minimumChunkSize: 20
longLineThreshold: 250
showVerboseLog: false
suspendFileWatching: false
trashInsteadDelete: true
periodicReplication: false
periodicReplicationInterval: 10
syncOnFileOpen: false
encrypt: false
passphrase: π
πΈπ·π΄πΆππΈπ·
usePathObfuscation: false
doNotDeleteFolder: false
resolveConflictsByNewerFile: true
batchSave: false
batchSaveMinimumDelay: 5
batchSaveMaximumDelay: 60
deviceAndVaultName: minastirith
usePluginSettings: false
showOwnPlugins: false
showStatusOnEditor: true
showStatusOnStatusbar: true
showOnlyIconsOnEditor: false
usePluginSync: false
autoSweepPlugins: false
autoSweepPluginsPeriodic: false
notifyPluginOrSettingUpdated: false
checkIntegrityOnSave: false
batch_size: 25
batches_limit: 25
useHistory: true
disableRequestURI: true
skipOlderFilesOnSync: true
checkConflictOnlyOnOpen: false
showMergeDialogOnlyOnActive: false
syncInternalFiles: false
syncInternalFilesBeforeReplication: false
syncInternalFilesIgnorePatterns: \/node_modules\/, \/\.git\/, \/obsidian-livesync\/
syncInternalFilesInterval: 60
additionalSuffixOfDatabaseName: 7cc60edc2e230f07
ignoreVersionCheck: false
lastReadUpdates: 23
deleteMetadataOfDeletedFiles: false
syncIgnoreRegEx: ""
syncOnlyRegEx: ""
customChunkSize: 50
readChunksOnline: false
watchInternalFileChanges: true
automaticallyDeleteMetadataOfDeletedFiles: 0
disableMarkdownAutoMerge: false
writeDocumentsIfConflicted: false
useDynamicIterationCount: false
syncAfterMerge: false
configPassphraseStore: ""
encryptedPassphrase: π
πΈπ·π΄πΆππΈπ·
encryptedCouchDBConnection: π
πΈπ·π΄πΆππΈπ·
permitEmptyPassphrase: false
useIndexedDBAdapter: true
useTimeouts: true
writeLogToTheFile: false
doNotPaceReplication: false
hashCacheMaxCount: 300
hashCacheMaxAmount: 50
concurrencyOfReadChunksOnline: 30
minimumIntervalOfReadChunksOnline: 25
hashAlg: xxhash64
suspendParseReplicationResult: false
doNotSuspendOnFetching: false
useIgnoreFiles: false
ignoreFiles: .gitignore
syncOnEditorSave: false
pluginSyncExtendedSetting: {}
syncMaxSizeInMB: 50
settingSyncFile: ""
writeCredentialsForSettingSync: false
notifyAllSettingSyncFile: false
isConfigured: true
settingVersion: 0
enableCompression: false
accessKey: π
πΈπ·π΄πΆππΈπ·
bucket: π
πΈπ·π΄πΆππΈπ·(0 letters)
endpoint: Not configured or AWS
region: π
πΈπ·π΄πΆππΈπ·(4 letters)
secretKey: π
πΈπ·π΄πΆππΈπ·
useEden: false
maxChunksInEden: 10
maxTotalLengthInEden: 1024
maxAgeInEden: 10
disableCheckingConfigMismatch: false
displayLanguage: ""
enableChunkSplitterV2: false
disableWorkerForGeneratingChunks: false
processSmallFilesInUIThread: false
notifyThresholdOfRemoteStorageSize: 0
configPassphrase: ""
preset: ""
syncMode: ONEVENTS
dummy: 0
Plug-in log
Plug-in log
CouchDB-7cc60edc2e230f07:14/07/2024 18:50:37->OneShot Sync begin... (sync)
CouchDB-7cc60edc2e230f07:14/07/2024 18:50:37->Looking for the point last synchronized point.
CouchDB-7cc60edc2e230f07:14/07/2024 18:50:37->Replication activated
Network log
In the following archive you have the proxyfied as well as the direct access to the couchdb instance har-files.zip
Screenshots
Proxy used
If it can help, the proxy used is the following one : keycloak-couchdb-proxy The implementation seems right as, as you can see in the network logs, the responses are the same.