[vlc-devel] [PATCH] gnutls: disable False Start
Thomas Guillem
thomas at gllm.fr
Fri Feb 22 16:18:00 CET 2019
What about linux distribs ? Reverting a patch in contrib won't fix it. I would prefer to apply my patch.
On Fri, Feb 22, 2019, at 15:58, Hugo Beauzée-Luyssen wrote:
> Hi,
>
> On Thu, Feb 21, 2019, at 7:38 PM, Rémi Denis-Courmont wrote:
> > Le torstaina 21. helmikuuta 2019, 20.10.25 EET Thomas Guillem a écrit :
> > > Here is how I understand the GnuTLS documentation about thread safety,
> > > handshake and GNUTLS_ENABLE_FALSE_START:
> > >
> > > cf. https://gnutls.org/manual/html_node/Thread-safety.html
> > > "...care must be taken during key updates and re-handshakes to be handled
> > > only by a single thread"
> >
> > As I already mentioned, VLC does not do re-handshakes on client side. " In
> > case of a client, [re-handshake] message may be simply ignored". And re-
> > handshakes happen in already established sessions, while False Start occurs at
> > start. They are not related.
> >
>
> Re-handshake is not the problem here, but I think we agree.
>
> > > GNUTLS_ENABLE_FALSE_START causes the handshake to be delayed when receiving
> > > data.
> >
> > No. False Start causes the handshake to terminate early (before the session is
> > securely established):
> > https://www.gnutls.org/manual/html_node/False-Start.html
> >
>
> That is not my understanding. From what I can see false start will
> update a state in the gnutls' session.
> That state is read latter on during send/recv.
> The said state isn't updated in an atomic way, which causes a race
> during the first send/receive.
>
> See https://gitlab.com/gnutls/gnutls/issues/713 for the tsan traces.
>
> > Sending is still done from within gnutls_record_send() and receiving from
> > within gnutls_record_recv(), not affecting the polling and threading semantics.
> > Otherwise, it would wreck event handling even in single thread mode. It has
> > indeed been working fine with GnuTLS 3.5.
> >
>
> The commit exhibiting the race wasn't there in 3.5.x, but the race itself did.
>
> > Contribs needs to be reverted back to a non-broken GnuTLS version, or patched.
> >
>
> I hope to find a solution with the GnuTLS people. I'm fine with a
> temporary patch reverting
> https://gitlab.com/gnutls/gnutls/commit/6a62ddfc416a4ec2118704f93c97fdd448d66566 in our contribs meanwhile.
>
> Thomas' patches would also fix the issue in a more reliable way, until
> a better fix gets pushed to GnuTLS.
>
> Regards,
>
> --
> Hugo Beauzée-Luyssen
> hugo at beauzee.fr
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list