FW: Sporadic permission denied error in Samba 4.3 and 4.4, 4.2 OK

Jeremy Allison jra at samba.org
Mon Nov 14 20:00:51 UTC 2016


On Mon, Nov 14, 2016 at 07:45:14PM +0000, Youzhong Yang wrote:
> Thanks Jeremy.
> 
> Base on your comment, I enabled debug output in the following places:
> 
> source3/smbd/open.c: send_break_message()
>        DEBUG(0, ("Sending break request to PID %s for %s break_to %u\n",
>                   server_id_str_buf(exclusive->pid, &tmp), file_id_string_tos(&exclusive->id), break_to));
> 
> source3/lib/messages.c: messaging_recv_cb()
>         DEBUG(0, ("%s: Received message 0x%x len %u (num_fds:%u) from %s\n",
>                    __func__, (unsigned)rec.msg_type,
>                    (unsigned)rec.buf.length,
>                    (unsigned)num_fds,
>                    server_id_str_buf(rec.src, &idbuf)));
> 
> source3/smbd/oplock.c: process_oplock_break_message()
>        DEBUG(0, ("Got oplock break to %u message from pid %s: %s/%llu\n",
>                   (unsigned)break_to, server_id_str_buf(src, &tmp),
>                   file_id_string_tos(&msg.id),
>                   (unsigned long long)msg.share_file_id));
> 
> The issue is not that the Windows client didn't respond to lease break request - sometimes the break message was lost, never received by the corresponding smbd process.
> 
> Since we don't have this issue in Samba 4.2.x, I think most likely something in the messaging system caused the problem. I am still struggling to find out.

What message is being lost ? There are 4 messages:

1) smbd -> smbd (request lease break - inter process messaging)
2). smbd -> client (request lease break - on the wire)
3). client -> smbd (lease break ack - on the wire).
4). smbd -> smbd (broke lease - retry open - inter process messaging).

Under what circumstances does this occur ?



More information about the samba-technical mailing list