HI,

 I am trying to run LXC on Ubuntu 14.04 and LXC version 1.0.8. When I run
attached program with Valgrind, then call to c->start doesn't return. And I
get following warning continuously,

Warning: invalid file descriptor 1024 in syscall close()
==7897==    at 0x5195F60: __close_nocancel (syscall-template.S:81)
==7897==    by 0x4E526BC: lxc_check_inherited (in
/usr/lib/x86_64-linux-gnu/liblxc.so.1.0.8)
==7897==    by 0x4E55840: lxc_monitord_spawn (in
/usr/lib/x86_64-linux-gnu/liblxc.so.1.0.8)
==7897==    by 0x4E82659: ??? (in /usr/lib/x86_64-linux-gnu/liblxc.so.1.0.8)

I tried following Valgrind command

valgrind --tool=memcheck --leak-check=yes --show-reachable=yes
--num-callers=20 --track-fds=yes -v   ./container.

Any solution to this?

Adithya
#include <stdio.h>

#include <lxc/lxccontainer.h>


int main() {
    struct lxc_container *c;
    int ret = 1;

    fprintf(stderr, "Container start\n");

    /* Setup container struct */
    c = lxc_container_new("test", "/tmp/container");
    if (!c) {
        fprintf(stderr, "Failed to setup lxc_container struct\n");
        goto out;
    }
    fprintf(stderr, "Container start 1\n");
    if (c->is_defined(c)) {
        fprintf(stderr, "Container already exists\n");
        goto out;
    }
    fprintf(stderr, "Container start 2\n");
    if (!c->load_config(c, "/tmp/lxc.conf"))
    {
        // Failed to setup lxc_container struct.
        fprintf(stderr, "Container config failed\n");
        lxc_container_put(c);
        return false;
    }
    fprintf(stderr, "Container start 3\n");
    /* Create the container */
    if (!c->create(c, "busybox", NULL, NULL, LXC_CREATE_QUIET, NULL)) {
        fprintf(stderr, "Failed to create container rootfs\n");
        goto out;
    }

        fprintf(stderr, "Container start 4\n");

    /* Start the container */
    if (!c->start(c, 0, NULL)) {
        fprintf(stderr, "Failed to start the container\n");
        goto out;
    }

    /* Query some information */
    printf("Container state: %s\n", c->state(c));
    printf("Container PID: %d\n", c->init_pid(c));

    /* Stop the container */
    if (!c->shutdown(c, 30)) {
        printf("Failed to cleanly shutdown the container, forcing.\n");
        if (!c->stop(c)) {
            fprintf(stderr, "Failed to kill the container.\n");
            goto out;
        }
    }
    fprintf(stderr, "Container start 5\n");
    /* Destroy the container */
    if (!c->destroy(c)) {
        fprintf(stderr, "Failed to destroy the container.\n");
        goto out;
    }

    ret = 0;
out:
    lxc_container_put(c);
    return ret;
}
_______________________________________________
lxc-users mailing list
lxc-users@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-users

Reply via email to