Re: WinRAR cannot backup Windows streams with FreeBSD NFS server but works with Solaris NFS server

From: Rick Macklem <rick.macklem_at_gmail.com>
Date: Thu, 22 Jan 2026 22:41:37 UTC
On Thu, Jan 22, 2026 at 11:36 AM Martin Wege <martin.l.wege@gmail.com> wrote:
>
> Forgot to add freebsd, sorry
Just fyi, I am responding on the ms-nfs41-client-devel list.
I'll post here if/when it gets resolved. You can go there, if
this interests you.

rick

>
> ---------- Forwarded message ---------
> From: Martin Wege <martin.l.wege@gmail.com>
> Date: Thu, Jan 22, 2026 at 8:34 PM
> Subject: WinRAR cannot backup Windows streams with FreeBSD NFS server
> but works with Solaris NFS server
> To: <ms-nfs41-client-devel@lists.sourceforge.net>
>
>
> Hello,
>
> I hit a problem testing backups with WinRAR (RAR 7.13 x64) on a
> Windows NFSv4.1 share/ms-nfs41-client release 2026-01-19:
>
> If I have files with multiple Win streams, it works if the NFS server
> is a Solaris 11.4 one, but the streams are not backed up if the NFS
> server is a FreeBSD 15.0.
>
> Testcase on Windows:
> mkdir dir1
> add files with multiple streams to dir1/
> Rar.exe a -os dir1.rar dir1
> mkdir dir1_unpack
> cd dir1_unpack
> Rar.exe x ../dir1.rar
> cd dir1
> checking the files none of them have named streams anymore.
>
> Comparing the behaviour I see that Rar does file locking for each
> stream. The locking works with a Solaris NFS server, but fails with
> NFS4ERR_OPENMODE with a FreeBSD 15.0 NFS server.
>
> wireshark reports this NFSv4.1 SEQUENCE to LOCK the stream to the
> FreeBSD NFS server:
> Transmission Control Protocol, Src Port: 601, Dst Port: 2049, Seq:
> 14801, Ack: 283765, Len: 296
> Remote Procedure Call, Type:Call XID:0x009be383
> Network File System, Ops(3): SEQUENCE, PUTFH, LOCK
>     [Program Version: 4]
>     [V4 Procedure: COMPOUND (1)]
>     Tag: lock
>         length: 4
>         contents: lock
>     minorversion: 2
>     Operations (count: 3): SEQUENCE, PUTFH, LOCK
>         Opcode: SEQUENCE (53)
>         Opcode: PUTFH (22)
>             FileHandle
>                 length: 31
>                 [hash (CRC-32): 0x6f2dec8d]
>                 FileHandle:
> 9d940ab4de434e650a00f0a30b00000025c202000000000000000000000000
>         Opcode: LOCK (12)
>             locktype: WRITE_LT (2)
>             reclaim?: No
>             offset: 0
>             length: 18446744073709551615
>             new lock owner?: Yes
>             seqid: 0x00000000
>             StateID
>                 [StateID Hash: 0xb36e]
>                 StateID seqid: 1
>                 StateID Other: 606c5d694300000093510000
>                 [StateID Other hash: 0xd0fa5b5c]
>             lock_seqid: 0x00000000
>             Owner
>                 clientid: 0x0000000000000000
>                 owner: <DATA>
>                     length: 5
>                     contents: <DATA>
>                     fill bytes: opaque data
>     [Main Opcode: LOCK (12)]
>
>
> Response from the FreeBSD NFS server:
> Remote Procedure Call, Type:Reply XID:0x009be383
> Network File System, Ops(3): SEQUENCE PUTFH LOCK(NFS4ERR_OPENMODE)
>     [Program Version: 4]
>     [V4 Procedure: COMPOUND (1)]
>     Status: NFS4ERR_OPENMODE (10038)
>     Tag: lock
>         length: 4
>         contents: lock
>     Operations (count: 3)
>         Opcode: SEQUENCE (53)
>         Opcode: PUTFH (22)
>             Status: NFS4_OK (0)
>         Opcode: LOCK (12)
>             Status: NFS4ERR_OPENMODE (10038)
>     [Main Opcode: LOCK (12)]
>
>
> How can I debug this further?
>
> Thanks,
> Martin
>