rlim: The rlimit images should be per-pid

It's a stupid mistake which resulted in all tasks share
the rlimits on restore :(

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
dump: unprotect vmas for dumping content

VMA-s may be protected against read, so rights for such VMA-s should be
changed for dumping and protected back after dumping.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
zdtm: protect random pages in maps04

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
sk-netlink: typo fix for unconnected netlink sockets

The netlink_diag doesn't provide any info about non-connected and
non-bound sockets.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Add LGPL licence for library directory

We've received some requests to create a way to interface with crtools
that doesn't involve forking the utilities, so we're going to create a
linkable library for this.  In order to be fair, we plan to allow
proprietary code to link with this library and thus want to change the
licence of the CRIU code base to be LGPL *only* for this library
directory, preserving the rest of the code as GPL.  Because creating the
library may involve refactoring, I anticipate that some code that's
currently GPL will have to move into lib/ and become LGPL (and this may
occur in future as well), so I've amended the COPYING file to spell out
for contributors that code outside lib/ is GPL and inside lib/ is LGPL,
but that they give future permission to change the licence to GPL or
LGPL if code has to move into (or out of) lib/, based on acceptance of a
patch into the CRIU code base, so j random developer can't download the
code and make it all LGPL by applying a private patch to move everything
into lib/.

All the Parallels authors have agreed to this, but we have a couple of
non parallels ones on the cc to this email I'd like explicit acks from.

Cc: Qiang Huang <h.huangqiang@huawei.com>
Cc: Andrew Grigorev <andrew@ei-grad.ru>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Acked-by: Qiang Huang <h.huangqiang@huawei.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
pie: restorer -- Don't fail if no futex provided

The image data may have no futex provided but we have
no "optional" entry for that (because futex data is
a part of thread_core_entry message).

Still we know that futex length can't be zero thus
make it "optional" by a value -- if length is zero,
we consider it as a sign to skip.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
zdtm: add one more test case to create a process tree (v2)

Actually this test case is a frame work for creating a process tree.
It creates a process tree according with a predefined sequence of
actions.

This test case create the following process tree:
  5     5  \_ session02               ( 0)
  6     6      \_ session02           ( 1)
  8     7      |   \_ session02       ( 3)
 15    12      |   \_ session02       (10)
 10    10      \_ session02           ( 5)
 11     7          \_ session02       ( 6)
 13    12          \_ session02       ( 8)

v2: improve log messages

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
zdtm: show a process tree before and after c/r

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
test: don't skip errors if someone fails

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
pstree: don't replace sid if the root task is a session leader

The root task must remain a session leader after c/r. The root task
can be executed in another pidns and the sid from another name space
will be invalid.

Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Reported-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
dump: prevent dumping if a session leader is outside of the current pidns

A parasite code returns zero sid for such cases.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
zdtm: each test file name should contain a test name

It's required for per-test cleaning.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
show: Fix -D mode showing

Threads' IDs were not initialized on img load.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
show: Beautify -D mode show

Print delimiters and image names for easier reading of the output.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
show: Filter -D output with --pid option

Show only image info relevant to given pid. Also reuse
the introduced --pid argument for exec action.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
show: Show per-task fdinfo in -D/-p output

This info is not in per-ID file, not per-PID, so need special care.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
tcp: Use protobuf showing fn for tcp-stream images

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
log-simple: Use buffering before output to log file

Multi-task/thread apps spoil log as simple logger does
char-by-char output.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
headers: image.h -- Drop unused entries

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
headers: Add err.h header

Instead of bloating util.h lets move ERR_
helpers to own err.h header. This allow
to reuse it where needed without util.h
inclusion.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>