Document corner cases of Pull Order.
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 327
- Forks
- 653
- PR merge metrics
- No merged PRs in 30d
Description
I'm using syncthing v1.19.1, Linux (64-bit Intel/AMD) running in docker container (image syncthing/syncthing) in ubuntu 20.04.
The synced folder is a mounted folder ./sync:/var/syncthing
I've wrapped up a python script to grab all /rest/events, and it works as I'm receiving all event["id"] sequentially.
By filtering event["type"] == ItemFinished and checking event["data"]["item"] contents, I've realized that the order of the synced files are somehow random, contrary to the file pull order configuration I've set on both folders (set as send & receive) equal to "Alphabetic".
I'm testing this by simply attaching my event listener, pausing the receiving folder, create 5 files in the sender folder like:
echo foo > test_a, echo foo > test_aa, echo foo > test_aaa, echo foo > test_aaaa, echo foo > test_aaaaa
and unpause the receiver
here what I get in console:
1414
ItemFinished test_a
1415
ItemFinished test_aaa
1416
ItemFinished test_aaaaa
1417
ItemFinished test_aa
1418
ItemFinished test_aaaa
I'm not a golang speaker, but if I'm not wrong this the relevant line (apparently is a no-op):
https://github.com/syncthing/syncthing/blob/518d5174e630185540c5b99ee8a03c6231dc3c72/lib/model/folder_sendrecv.go#L436
Should I expect ItemFinished event to comply with the "File Pull Order"?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Pull Order behavior described in the issue and inspect lib/model/folder_sendrecv.go at the linked line, using the REST events and ItemFinished output as the observable behavior. Determine whether ItemFinished ordering is expected to follow Alphabetic pull order, then document the relevant corner cases and the expected event ordering.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, linux, python
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100