Bug 14840 - vfs_fruit: unable to mount share with time machine max size
Summary: vfs_fruit: unable to mount share with time machine max size
Status: NEW
Alias: None
Product: Samba 4.1 and newer
Classification: Unclassified
Component: VFS Modules (show other bugs)
Version: unspecified
Hardware: All All
: P5 normal (vote)
Target Milestone: ---
Assignee: Samba QA Contact
QA Contact: Samba QA Contact
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-19 14:12 UTC by Stefan Bethke
Modified: 2021-09-19 15:43 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Bethke 2021-09-19 14:12:19 UTC
On OpenWrt on a Turris Omnia, I set up a share on a btrfs liek this:

    [Time Machine Mary]
	path = /srv/shares/timemachine/mary
	create mask = 0666
	directory mask = 0777
	read only = no
	guest ok = no
	fruit:encoding = native
	fruit:metadata = stream
	fruit:veto_appledouble = no
	fruit:time machine = yes
	fruit:time machine max size = 350G
	vfs objects = catia fruit streams_xattr 

The first backup (macOS 11.6) ran fine, but after that mounting the share fails with a very generic error message on the mac, and on the router, I'm getting these:

14 17:17:58.894957,  0] ../../source3/modules/vfs_fruit.c:6982(fruit_tmsize_do_dirent)
Sep 14 21:17:58 emerson smbd[16361]:   fruit_tmsize_do_dirent: tmsize potential overflow: bandsize [33554432] nbands [1931]
Sep 14 21:17:58 emerson smbd[16361]: [2021/09/14 17:17:58.895241,  0] ../../source3/smbd/dfree.c:136(sys_disk_free)
Sep 14 21:17:58 emerson smbd[16361]:   sys_disk_free: VFS disk_free failed. Error was : No error information

This is a ARMv7 processer:
processor	: 0
model name	: ARMv7 Processor rev 1 (v7l)
BogoMIPS	: 1600.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x4
CPU part	: 0xc09
CPU revision	: 1

processor	: 1
model name	: ARMv7 Processor rev 1 (v7l)
BogoMIPS	: 1600.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x4
CPU part	: 0xc09
CPU revision	: 1

Hardware	: Marvell Armada 380/385 (Device Tree)
Revision	: 0000
Serial		: 0000000E00001FB5


Samba is from the standard OpenWrt package repository, specifically these:
smbd 4.11.17, from the opkg packages:
samba4-admin - 4.11.17-3.7-2
samba4-client - 4.11.17-3.7-2
samba4-libs - 4.11.17-3.7-2
samba4-server - 4.11.17-3.7-2
samba4-utils - 4.11.17-3.7-2

This sounds like it is the same or similar to 13622. It also could be related to 14409.
Comment 1 Stefan Bethke 2021-09-19 14:20:01 UTC
In my TM backups, I am seeing only *.sparsebundle entries, so the report in 14409 does not seem to apply to my case.
Comment 2 Stefan Bethke 2021-09-19 14:25:43 UTC
OpenWrt forum thread: https://forum.openwrt.org/t/samba4-time-machine-unable-to-mount-share/106696/6
Comment 3 Stefan Bethke 2021-09-19 15:43:25 UTC
Here's a debug log, I hope I captured the relevant portion:

push_sec_ctx(1000, 1000) : sec_ctx_stack_ndx = 1
push_conn_ctx(3636292611) : conn_ctx_stack_ndx = 0
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 1
Security token: (NULL)
UNIX token of user 0
Primary group is 0 and contains 0 supplementary groups
pop_sec_ctx (1000, 1000) - sec_ctx_stack_ndx = 0
change_to_user_impersonate: Skipping user change - already user
print_impersonation_info: Impersonated user: uid=(1000,1000), gid=(0,1000), cwd=[/srv/shares/timemachine/mary]
smbd_do_qfsinfo: level = 1003
allocated file structure fnum [invalid value] (2 used)
unix_mode: unix_mode(/srv/shares/timemachine/mary/Mary MacBook.sparsebundle/Info.plist) returning 0666
dos_mode_debug_print: parse_dos_attribute_blob returning (0x20): "a"
calling open_file with flags=0x0 flags2=0x0 mode=0666, access_mask = 0x120089, open_access_mask = 0x120089
push_sec_ctx(1000, 1000) : sec_ctx_stack_ndx = 1
push_conn_ctx(3636292611) : conn_ctx_stack_ndx = 0
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 1
Security token: (NULL)
UNIX token of user 0
Primary group is 0 and contains 0 supplementary groups
pop_sec_ctx (1000, 1000) - sec_ctx_stack_ndx = 0
vfs_ChDir to /srv/shares/timemachine/mary/Mary MacBook.sparsebundle
vfs_ChDir got /srv/shares/timemachine/mary/Mary MacBook.sparsebundle
check_reduced_name: Info.plist reduced to /srv/shares/timemachine/mary/Mary MacBook.sparsebundle/Info.plist
vfs_ChDir to /srv/shares/timemachine/mary
vfs_ChDir got /srv/shares/timemachine/mary
mary opened file /srv/shares/timemachine/mary/Mary MacBook.sparsebundle/Info.plist read=Yes write=No (numopen=2)
dbwrap_lock_order_lock: check lock order 1 for /var/lock/locking.tdb
set_file_oplock: granted oplock on file /srv/shares/timemachine/mary/Mary MacBook.sparsebundle/Info.plist, 32:105:0/0, tv_sec = 61474dc9, tv_usec = d517b
dbwrap_lock_order_unlock: release lock order 1 for /var/lock/locking.tdb
dbwrap_lock_order_lock: check lock order 1 for /var/lock/locking.tdb
dbwrap_lock_order_unlock: release lock order 1 for /var/lock/locking.tdb
mary closed file /srv/shares/timemachine/mary/Mary MacBook.sparsebundle/Info.plist (numopen=1) NT_STATUS_OK
freed files structure 0 (1 used)
fruit_tmsize_do_dirent: tmsize potential overflow: bandsize [33554432] nbands [2127]
sys_disk_free: VFS disk_free failed. Error was : No error information
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_UNSUCCESSFUL] || at ../../source3/smbd/smb2_getinfo.c:159
change_to_user_impersonate: Skipping user change - already user
print_impersonation_info: Impersonated user: uid=(1000,1000), gid=(0,1000), cwd=[/srv/shares/timemachine/mary]
dbwrap_lock_order_lock: check lock order 1 for /var/lock/locking.tdb
dbwrap_lock_order_unlock: release lock order 1 for /var/lock/locking.tdb
dbwrap_lock_order_lock: check lock order 1 for /var/lock/smbXsrv_open_global.tdb
dbwrap_lock_order_unlock: release lock order 1 for /var/lock/smbXsrv_open_global.tdb
freed files structure 405190144 (0 used)