[CRIU] [RFC 0/2] Handle unix stream sockets with mismatch in shutdown state
Andrew Vagin
avagin at virtuozzo.com
Fri May 20 16:13:14 PDT 2016
On Thu, May 19, 2016 at 06:55:35PM +0300, Andrey Ryabinin wrote:
> It appears that it's possible to create AF_UNIX stream sockets with mismatch
> in shutdown state:
> Error (sk-unix.c:378): sk unix: Shutdown mismatch 38859:1 -> 38858:0
> Error (cr-dump.c:1309): Dump files (pid: 5060) failed with -1
> Error (cr-dump.c:1611): Dumping FAILED.
>
> You just need to call shutdown() before connect() (see second patch with test).
>
Acked-by: Andrew Vagin <avagin at virtuozzo.com>
> This may sound like a bug in the kernel, however the kernel always checks shutdown
> state on both ends before read()/write(), so from userspace POV sockets with mismatched
> shutdown state behave the same way as with matched state.
> So do we need such workaround in CRIU? or should I just fix this in kernel? or both?
>
> Andrey Ryabinin (2):
> sk-unix: ignore shutdown mismatch in unix sockets
> test/sockets: add test for shut down stream unix sockets
>
> criu/sk-unix.c | 20 +++----
> test/zdtm/static/Makefile | 1 +
> test/zdtm/static/sockets03.c | 118 ++++++++++++++++++++++++++++++++++++++++
> test/zdtm/static/sockets03.desc | 1 +
> 4 files changed, 129 insertions(+), 11 deletions(-)
> create mode 100644 test/zdtm/static/sockets03.c
> create mode 100644 test/zdtm/static/sockets03.desc
>
> --
> 2.7.3
>
More information about the CRIU
mailing list