openwrt / openwrt/packages

samba4: file transfer hangs with default configuration

Open
#17,832 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

stale
Dominant language
Makefile
Stars
4.6k
Forks
4k
Avg merge
3d 12h
Merged PRs (30d)
134

Description

Maintainer: @Andy2244
Environment: ARMv5TE, ZyXEL NSA325-Feroceon 88FR131, OpenWrt SNAPSHOT r18717-0e32c6baf3

Description:
Hi, I cannot copy files from/to a share using a freshly installed samba4-server default configuration without modifications in the smb.conf.template file.
I can access and list the directories, but copying files hangs and then terminates with an error.
Very small files (few kb) seems to transfer after a lot of struggle.
I'm on samba4-server v4.14.12-1.

After a bit of trial and error, I maneged to fix the problem by uncommenting these two lines from smb.conf.template:

aio read size = 0
aio write size = 0

But from my understanding, which is probably wrong, uncommenting those parameters would enable sync I/O (aka disable async I/O). That is fine, but I would then expect VFS io_uring to be disabled, which apparently is not, from logread:

Tue Feb  8 17:59:32 2022 daemon.info samba4-server: io_uring module found, enabling VFS io_uring. (also needs Kernel 5.4+ Support)
Tue Feb  8 17:59:33 2022 daemon.err smbd[7857]: [2022/02/08 17:59:33.954086,  0] ../../lib/util/become_daemon.c:135(daemon_ready)
Tue Feb  8 17:59:33 2022 daemon.err smbd[7857]:   daemon_ready: daemon 'smbd' finished starting up and ready to serve connections

Using the working configuration I tested transfers up to ~400 Mbit with ~60% of CPU use (1.6 Ghz I think).
I wonder if this is a bug, and if at the end of the day I am using io_uring async I/O or not.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the package's smb.conf.template and the reported logread output, then inspect how the default aio and io_uring settings interact on the stated OpenWrt ARMv5TE environment. Reproduce the transfer hang if possible and determine whether the default configuration needs a package change or clearer compatibility guidance; done means the default setup transfers files reliably or the limitation is documented.

Written by the indexing model from the issue text.

Assessment

Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.