
8 Apr
2018
8 Apr
'18
3:58 p.m.
I manually simplified the reproducer.
It is quite strange that removing unshare() hides this lockup bug. Also, explicitly closing by "close()" hides this lockup bug. Triggering "fput() from do_exit()" from "different namespace" somehow affects this lockup bug?
---------------------------------------- #define _GNU_SOURCE #include <fcntl.h> #include <sched.h> #include <unistd.h> #include <sys/ioctl.h> #include <linux/soundcard.h>
int main(int argc, char *argv[]) { const int fd = open("/dev/dsp1", O_RDWR); int frag = (0 << 16) | 0; char buf[48] = { }; unshare(CLONE_NEWNS); ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &frag); write(fd, buf, sizeof(buf)); return 0; } ----------------------------------------