Skip to content

Extended attributes are only synced one way #8594

@mafredri

Description

@mafredri

This happens using Syncthing v1.22.0.

Given two clients, A and B. For a file created by A, extended attribute modifications are only synced from A to B, not from B to A.

So let's say I do the following (Scenario 1):

  1. A: touch test.txt; setfattr -n user.test -v test test.txt
  2. B: setfattr -n user.test2 -v test2 test.txt

Only test.txt on B will have both attributes, it's not being synced from B. The same happens the other way around (Scenario 2):

  1. B: touch test2.txt; setfattr -n user.test -v test test2.txt
  2. A: setfattr -n user.test2 -v test2 test2.txt

Only test.txt on A will have both attributes.

Restarting syncthing makes no difference, this behavior seems set at file creation.

Interestingly, the change is picked up, but not transmitted for some reason (this is B from scenario 1, step 2):

[TWUEC] 2022/10/08 17:54:41.627739 basicfs_watch.go:102: DEBUG: basic /var/syncthing/Test Watch: Sending test.txt non-remove
[TWUEC] 2022/10/08 17:54:41.627784 aggregator.go:296: DEBUG: aggregator/"Test" (errvk-ajxc3): Tracking (type non-remove): test.txt
[TWUEC] 2022/10/08 17:54:41.627804 aggregator.go:315: DEBUG: aggregator/"Test" (errvk-ajxc3): Resetting notifyTimer to 10s
[TWUEC] 2022/10/08 17:54:51.627968 aggregator.go:347: DEBUG: aggregator/"Test" (errvk-ajxc3): Notifying about 1 fs events
[TWUEC] 2022/10/08 17:54:51.628012 aggregator.go:315: DEBUG: aggregator/"Test" (errvk-ajxc3): Resetting notifyTimer to 10s
[TWUEC] 2022/10/08 17:54:51.628094 logfs.go:115: DEBUG: folderconfiguration.go:116 basic /var/syncthing/Test Stat . {0xc0000b7520} <nil>
[TWUEC] 2022/10/08 17:54:51.628204 logfs.go:115: DEBUG: folderconfiguration.go:134 basic /var/syncthing/Test Stat .stfolder {0xc0000b7790} <nil>
[TWUEC] 2022/10/08 17:54:51.628255 logfs.go:163: DEBUG: folder.go:334 basic /var/syncthing/config/index-v0.14.0.db Usage . {2078167924736 2078168711168} <nil>
[TWUEC] 2022/10/08 17:54:51.628434 events.go:334: DEBUG: log 37 StateChanged map[duration:23.628311741 folder:errvk-ajxc3 from:idle to:scan-waiting]
[TWUEC] 2022/10/08 17:54:51.628510 events.go:334: DEBUG: log 38 StateChanged map[duration:0.628361153 folder:errvk-ajxc3 from:scan-waiting to:scanning]
[TWUEC] 2022/10/08 17:54:51.628818 walk.go:123: DEBUG: walker/errvk-ajxc3@0xc0007f20b0 Walk [test.txt] Matcher/[]@0xc0008e6000
[TWUEC] 2022/10/08 17:54:51.628984 walkfs.go:84: DEBUG: walk: path=test.txt
[TWUEC] 2022/10/08 17:54:51.629643 walk.go:423: DEBUG: walker/errvk-ajxc3@0xc0007f20b0 rescan: File{Name:"test.txt", Sequence:22, Permissions:0644, ModTime:2022-10-08 17:54:13.090756718 +0000 UTC, Version:{[{ATW3ZMM 1665251668}]}, VersionHash:, Length:0, Deleted:false, Invalid:false, LocalFlags:0x0, NoPermissions:false, BlockSize:131072, Blocks:[Block{0/0/0/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855}], BlocksHash:d3bfe98e8f1ce891614854569a20f5f4508d6ab4025b872b7b3a8282ef75b12a, Platform:{<nil> <nil> xattrs:<name:"user.test1" value:"test1" >  <nil> <nil> <nil>}} 1665251653 -rw-r--r--
[TWUEC] 2022/10/08 17:54:51.629705 walk.go:426: DEBUG: walker/errvk-ajxc3@0xc0007f20b0 to hash: test.txt File{Name:"test.txt", Sequence:0, Permissions:0644, ModTime:2022-10-08 17:54:13.090756718 +0000 UTC, Version:{[{ATW3ZMM 1665251668} {TWUECHX 1665251691}]}, VersionHash:, Length:0, Deleted:false, Invalid:false, LocalFlags:0x0, NoPermissions:false, BlockSize:131072, Blocks:[], BlocksHash:, Platform:{<nil> <nil> xattrs:<name:"user.test1" value:"test1" > xattrs:<name:"user.test2" value:"test2" >  <nil> <nil> <nil>}}
[TWUEC] 2022/10/08 17:54:51.629814 walk.go:198: DEBUG: walker/errvk-ajxc3@0xc0007f20b0 real to hash: test.txt
[TWUEC] 2022/10/08 17:54:51.630085 walk.go:176: DEBUG: walker/errvk-ajxc3@0xc0007f20b0 Walk progress done errvk-ajxc3 [test.txt] Matcher/[]@0xc0008e6000
[TWUEC] 2022/10/08 17:54:51.630182 logfs.go:115: DEBUG: folderconfiguration.go:116 basic /var/syncthing/Test Stat . {0xc000379e10} <nil>
[TWUEC] 2022/10/08 17:54:51.630244 logfs.go:115: DEBUG: folderconfiguration.go:134 basic /var/syncthing/Test Stat .stfolder {0xc001533c70} <nil>
[TWUEC] 2022/10/08 17:54:51.630309 logfs.go:163: DEBUG: folder.go:334 basic /var/syncthing/config/index-v0.14.0.db Usage . {2078167924736 2078168711168} <nil>
[TWUEC] 2022/10/08 17:54:51.630687 events.go:334: DEBUG: log 39 LocalIndexUpdated map[filenames:[test.txt] folder:errvk-ajxc3 items:1 sequence:23 version:23]
[TWUEC] 2022/10/08 17:54:51.630735 events.go:334: DEBUG: log 40 LocalChangeDetected map[action:modified folder:errvk-ajxc3 folderID:errvk-ajxc3 label:Test modifiedBy:TWUECHX path:test.txt type:file]
[TWUEC] 2022/10/08 17:54:51.630889 events.go:334: DEBUG: log 41 StateChanged map[duration:0.630799815 folder:errvk-ajxc3 from:scanning to:idle]
[TWUEC] 2022/10/08 17:54:52.594940 events.go:334: DEBUG: log 42 FolderSummary {errvk-ajxc3 0xc000c5b4a0}
[TWUEC] 2022/10/08 17:54:52.595076 events.go:334: DEBUG: log 43 FolderCompletion map[completion:100 device:ATW3ZMM-DJ3APTY-WA372XM-4KMWDNX-TNGCN7W-NTE543B-5IJRG7D-QLNLLAY folder:errvk-ajxc3 globalBytes:0 globalItems:1 needBytes:0 needDeletes:0 needItems:1 remoteState:valid sequence:37]
[TWUEC] 2022/10/08 17:55:01.628904 aggregator.go:323: DEBUG: aggregator/"Test" (errvk-ajxc3): No tracked events, waiting for new event.

Metadata

Metadata

Assignees

Labels

bugA problem with current functionality, as opposed to missing functionality (enhancement)frozen-due-to-ageIssues closed and untouched for a long time, together with being locked for discussion

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions