[CRIU] restoring sockets with data pending
Tycho Andersen
tycho.andersen at canonical.com
Thu Oct 9 13:23:20 PDT 2014
Hi Pavel, Andrew,
On Mon, Sep 15, 2014 at 02:21:18PM +0400, Pavel Emelyanov wrote:
> On 09/13/2014 04:55 AM, Tycho Andersen wrote:
> > Hi all,
> >
> > One of the errors that I sometimes get when dumping things is:
> >
> > Error (sk-netlink.c:73): The socket has data to read
>
> Yup :) These are netlink sockets with some data from the krenel.
>
> > What is necessary to fix this problem? I guess there is some work to
> > be done on the kernel side to provide an API for getting these
> > buffers? Is there some other trick we can use?
>
> Strictly speaking, we should patch the kernel to be able to peek
> this data from socket and to put it back. But maybe in some cases
> we could invent some workaround (I'm not quite sure netdev@ people
> would be happy with such hacks :) ).
>
> Can we investigate what kind of socket is it and what data is in
> there?
Finally getting around to looking at this; lsof says:
systemd-u 179 root 4u netlink 0t0 13252 KOBJECT_UEVENT
There are 88 bytes of data pending on the socket, and when I read them
off, NLMSG_OK seems to think they're not a valid netlink message:
Error (sk-netlink.c:114): nlmsg_len: 1080321121, nlmsg_type: 27951,
nlmsg_seq 795176053, nlmsg_pid 2020175477
Here's the code I used, I guess I'm misunderstanding something?
https://github.com/tych0/criu/commit/ae9a5405232976ca2f5234477b3c3bce0f87a22f
Thanks,
Tycho
More information about the CRIU
mailing list