This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1872945 and then change the status of the bug to 'Confirmed'. If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'. This change has been made by an automated script, maintained by the Ubuntu Kernel Team. ** Changed in: linux (Ubuntu) Status: New => Incomplete ** Tags added: focal -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1872945 Title: risc-v doubles getting clobbered somehow Status in linux package in Ubuntu: Incomplete Status in qemu package in Ubuntu: New Bug description: I've been noticing that doubles get clobbered in stress-ng. I managed to whittle it down to the following reproducer that can trip the issue on a risc-v system running the Linux risc-v-qemu 5.4.0-24-generic kernel. This also occurs on other older kernels too. I've tested this with gcc-9, gcc-10 and clang-9 too. #include <sys/time.h> #include <stdio.h> #include <stdbool.h> #include <unistd.h> #include <errno.h> double timeval_to_double(const struct timeval *tv) { return (double)tv->tv_sec + ((double)tv->tv_usec / 1000000.0); } int main(void) { struct timeval tv2, tv1; double t1; bool fail = false; gettimeofday(&tv1, NULL); t1 = timeval_to_double(&tv1); for (;;) { double t2; int tmp; gettimeofday(&tv2, NULL); t2 = timeval_to_double(&tv2); tmp = errno; if (t2 - t1 < 0.0) { printf("%f %f %f\n", t1, t2, t2 - t1); printf("START : %f %ld %ld (%lx %lx) errno=%d\n", t1, tv1.tv_sec, tv1.tv_usec, tv1.tv_sec, tv1.tv_usec, tmp); printf("NOW BAD: %f %ld %ld (%lx %lx) errno=%d\n", t2, tv2.tv_sec, tv2.tv_usec, tv2.tv_sec, tv2.tv_usec, tmp); fail = true; } else { if (fail) { printf("NOW OK: %f %ld %ld (%lx %lx) errno=%d\n", t2, tv2.tv_sec, tv2.tv_usec, tv2.tv_sec, tv2.tv_usec, tmp); } fail = false; } } } Run the code (compiled with -O0, -O1 or even O2) and after some (long) random-ish time I see: ./a.out 1575050049.059796 0.000000 -1575050049.059796 START : 1575050049.059796 1575050049 59796 (5de15b41 e994) errno=0 NOW BAD: 0.000000 1575050053 437619 (5de15b45 6ad73) errno=0 NOW OK: 1575050053.460829 1575050053 460829 (5de15b45 7081d) errno=0 So the t2 value is zero which is a bit weird. The integer values for the tv struct are sane though, so it appears not to be a bad struct value returned from the kernel. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1872945/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp