How to fix "cannot receive aclmode property on <poolname>: invalid property value" when replicating to linux

Marenz

Cadet
Joined
May 1, 2019
Messages
5
This is not a question but an answer, as I stumbled several times over this problem and eventually found what I needed on google, but it was always very difficult to locate.
So for everyone else who wants to replicate from their FreeNAS to a linux machine and who gets this error:

cannot receive aclmode property on <poolname>: invalid property value

The solution is to run this on your NAS machine:

zfs set aclmode=discard <poolname>

Also, don't forget to make sure that you have the lz4c command installed on the receiving side. On debian-based systems it's the package liblz4-tool, an archlinux it's the lz4 package.

Hopefully this will save someone some headaches and time.

--Marenz
 

scurrier

Patron
Joined
Jan 2, 2014
Messages
297
How would this compare to using the -x aclmode option for the zfs recv command? This will strip the aclmode property out of the stream before "receiving" it, avoiding errors.
 

tommythorn

Cadet
Joined
Jan 14, 2021
Messages
5
Thanks Marenz, I'm hitting exactly this issue trying to replicate from TrueNAS-12.0-STABLE to a Linux box (running Ubunto 21.04). Unfortunately,
Code:
zfs set aclmode=discard tank
didn't make a difference despite being set:
Code:
root@truenas:~ # zfs get aclmode tank
NAME PROPERTY VALUE SOURCE
tank aclmode discard local
 

tommythorn

Cadet
Joined
Jan 14, 2021
Messages
5
Thanks Marenz, I'm hitting exactly this issue trying to replicate from TrueNAS-12.0-STABLE to a Linux box (running Ubunto 21.04). Unfortunately,
Code:
zfs set aclmode=discard tank
didn't make a difference despite being set:
Code:
root@truenas:~ # zfs get aclmode tank
NAME PROPERTY VALUE SOURCE
tank aclmode discard local

Hmm, it might have been because the children didn't inherit the change. There's apparently no way to set it recursively, but you can inherit recursively and we'll see if that fixed it.
 
Top