On Tue, Jul 14, 2009 at 09:47:44PM -0700, Sukadev Bhattiprolu wrote: > I am not too familiar with libvirt implementation, but do you think it > is possible to repro this using ns_exec and fewer/minimal namespaces ? Just run the program below. 2.6.29 oopses when the child tries to open /dev/console. Possibly can be stripped down even further but I think it's fairly minimal anyway. BTW, I guess the patch should set ERR_PTR(-EIO) or something, instead of NULL, am I right? Best regards, Grzegorz Nosek /*------------- cut ------------*/ #define _GNU_SOURCE #include <fcntl.h> #include <sched.h> #include <stdlib.h> #include <sys/mount.h> #include <sys/signal.h> #include <unistd.h> #include <linux/fs.h> void dummy(int sig) { } static int child(void *unused) { signal(SIGINT, dummy); signal(SIGHUP, dummy); pause(); /* cheesy synchronisation to wait for /dev/pts/0 to appear */ mount("/dev/pts/0", "/dev/console", NULL, MS_BIND, NULL); sleep(2); open("/dev/console", O_RDWR); dup(0); dup(0); write(1, "Hello world!\n", sizeof("Hello world!\n")-1); return 0; } int main(void) { pid_t pid; char *stack; int fd; stack = malloc(16384); pid = clone(child, stack+16384, CLONE_NEWNS|SIGCHLD, NULL); fd = open("/dev/ptmx", O_RDWR|O_NOCTTY|O_NONBLOCK); unlockpt(fd); grantpt(fd); kill(pid, SIGHUP); sleep(1); return 0; /* exit before child opens /dev/console */ } _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers