Running this test manually, I've observed that this will hang in me with various kernel versions going back to 4.4 in a VM on my machine which is running xenial. The test runs to completion in a VM on a different machine running zesty.
This is the section of the test which produces the hang:
/* Turn on update interrupts (one per second) */
retval = ioctl(fd, RTC_UIE_ON, 0);
if (retval == -1) {
if (errno == EINVAL) { fprintf(stderr, "\n...Update IRQs not supported.\n"); goto test_READ;
} perror("RTC_UIE_ON ioctl"); exit(errno);
}
fprintf(stderr, "Counting 5 update (1/sec) interrupts from reading %s:", rtc); fflush(stderr);
for (i=1; i<6; i++) {
/* This read will block */ retval = read(fd, &data, sizeof(unsigned long));
if (retval == -1) { perror("read"); exit(errno);
} fprintf(stderr, " %d",i); fflush(stderr); irqcount++;
}
The read blocks indefinitely most of the time. After boot it might return once or twice before it hangs, but running the test subsequently always hangs on the first read. I'll attach the full source for the test (rtctest.c).
ADT testing for the linux package hangs at the kernel's rtc selftest, for example:
https:/ /objectstorage. prodstack4- 5.canonical. com/v1/ AUTH_77e2ada1e7 a84929a74ba3b87 153c0ac/ autopkgtest- zesty/zesty/ amd64/l/ linux/20161212_ 132117_ a258d@/ log.gz
Running this test manually, I've observed that this will hang in me with various kernel versions going back to 4.4 in a VM on my machine which is running xenial. The test runs to completion in a VM on a different machine running zesty.
This is the section of the test which produces the hang:
/* Turn on update interrupts (one per second) */
fprintf( stderr,
"\n. ..Update IRQs not supported.\n");
goto test_READ;
perror( "RTC_UIE_ ON ioctl");
exit( errno);
retval = ioctl(fd, RTC_UIE_ON, 0);
if (retval == -1) {
if (errno == EINVAL) {
}
}
for (i=1; i<6; i++) {
/* This read will block */
if (retval == -1) {
}
}
The read blocks indefinitely most of the time. After boot it might return once or twice before it hangs, but running the test subsequently always hangs on the first read. I'll attach the full source for the test (rtctest.c).