You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
1
(1) |
2
(3) |
3
|
4
|
5
|
6
|
|
7
|
8
(1) |
9
(3) |
10
(2) |
11
(2) |
12
(8) |
13
(5) |
|
14
(2) |
15
|
16
|
17
(4) |
18
(2) |
19
(2) |
20
(1) |
|
21
(2) |
22
(4) |
23
(6) |
24
(2) |
25
|
26
(3) |
27
(1) |
|
28
|
29
(1) |
30
(1) |
|
|
|
|
|
From: Bart V. A. <bva...@so...> - 2021-11-20 22:30:13
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=bf0579a44a448eebfdd4af1c6f309221b8662633 commit bf0579a44a448eebfdd4af1c6f309221b8662633 Author: Bart Van Assche <bva...@ac...> Date: Sat Nov 20 13:59:22 2021 -0800 drd: Add a test program that interrupts pthread_mutex_lock() This test fails, probably due to differences between native signal handling and signal handling in the Valgrind core. Diff: --- drd/tests/Makefile.am | 3 ++ drd/tests/pth_mutex_signal.c | 95 +++++++++++++++++++++++++++++++++++ drd/tests/pth_mutex_signal.stderr.exp | 15 ++++++ drd/tests/pth_mutex_signal.vgtest | 3 ++ 4 files changed, 116 insertions(+) diff --git a/drd/tests/Makefile.am b/drd/tests/Makefile.am index c804391e81..ac487def3c 100755 --- a/drd/tests/Makefile.am +++ b/drd/tests/Makefile.am @@ -227,6 +227,8 @@ EXTRA_DIST = \ pth_inconsistent_cond_wait.vgtest \ pth_mutex_reinit.stderr.exp \ pth_mutex_reinit.vgtest \ + pth_mutex_signal.stderr.exp \ + pth_mutex_signal.vgtest \ pth_once.stderr.exp \ pth_once.vgtest \ pth_process_shared_mutex.stderr.exp \ @@ -410,6 +412,7 @@ check_PROGRAMS = \ pth_detached3 \ pth_inconsistent_cond_wait \ pth_mutex_reinit \ + pth_mutex_signal \ pth_process_shared_mutex \ recursive_mutex \ rwlock_race \ diff --git a/drd/tests/pth_mutex_signal.c b/drd/tests/pth_mutex_signal.c new file mode 100644 index 0000000000..ec74696953 --- /dev/null +++ b/drd/tests/pth_mutex_signal.c @@ -0,0 +1,95 @@ +/* + * See also https://bugs.kde.org/show_bug.cgi?id=445743. + */ + +#include <assert.h> +#include <pthread.h> +#include <signal.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#define STACK_SIZE 1024 * 512 +#define NATIVE_IO_INTERRUPT_SIGNAL (SIGRTMAX - 2) +#define LONG_SLEEP_TIME 1000000 + +void *contender_start(void *arg) +{ + pthread_mutex_t *mutex = arg; + int ret; + + ret = pthread_mutex_lock(mutex); + assert(ret == 0); + fprintf(stderr, "contender locked mutex\n"); + fprintf(stderr, "contender unlocking mutex\n"); + pthread_mutex_unlock(mutex); + fprintf(stderr, "contender unlocked mutex\n"); + return NULL; +} + +void nullHandler(int signal, siginfo_t *info, void *context) +{ + static const char *msg = "nullHandler running\n"; + + write(STDERR_FILENO, msg, strlen(msg)); +} + +int main () +{ + pthread_mutex_t mutex; + pthread_mutexattr_t mutex_attr; + pthread_attr_t thread_attr_contender; + pthread_t contender; + struct sigaction signalAction = { }; + + // install signal handler + signalAction.sa_sigaction = nullHandler; + sigfillset(&signalAction.sa_mask); + signalAction.sa_flags = 0; + sigaction(NATIVE_IO_INTERRUPT_SIGNAL, &signalAction, NULL); + + // initialize the mutex + pthread_mutexattr_init(&mutex_attr); + pthread_mutexattr_setprotocol(&mutex_attr, PTHREAD_PRIO_INHERIT); + pthread_mutex_init(&mutex, &mutex_attr); + fprintf(stderr, "mutex initialized\n"); + + // lock mutex + pthread_mutex_lock(&mutex); + + // init and create contender + pthread_attr_init(&thread_attr_contender); + pthread_attr_setstacksize(&thread_attr_contender, STACK_SIZE); + pthread_attr_setinheritsched(&thread_attr_contender, PTHREAD_EXPLICIT_SCHED); + fprintf(stderr, "thread attributes initialized\n"); + if (pthread_create(&contender, &thread_attr_contender, &contender_start, + &mutex) != 0) { + fprintf(stderr, "failed to create thread\n"); + return 1; + } + fprintf(stderr, "thread created\n"); + pthread_attr_destroy(&thread_attr_contender); + + // wait until the thread is sleeping inside pthread_mutex_lock(). + fprintf(stderr, "sleeping\n"); + usleep(LONG_SLEEP_TIME); + + // signal thread + fprintf(stderr, "signalling\n"); + pthread_kill(contender, NATIVE_IO_INTERRUPT_SIGNAL); + + fprintf(stderr, "sleeping\n"); + usleep(LONG_SLEEP_TIME); + + fprintf(stderr, "unlocking\n"); + pthread_mutex_unlock(&mutex); + + usleep(LONG_SLEEP_TIME); + + // finally wait for the thread + fprintf(stderr, "joining thread\n"); + pthread_join(contender, NULL); + + return 0; +} diff --git a/drd/tests/pth_mutex_signal.stderr.exp b/drd/tests/pth_mutex_signal.stderr.exp new file mode 100644 index 0000000000..63f38b08cf --- /dev/null +++ b/drd/tests/pth_mutex_signal.stderr.exp @@ -0,0 +1,15 @@ + +mutex initialized +thread attributes initialized +thread created +sleeping +signalling +sleeping +nullHandler running +unlocking +contender locked mutex +contender unlocking mutex +contender unlocked mutex +joining thread + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/drd/tests/pth_mutex_signal.vgtest b/drd/tests/pth_mutex_signal.vgtest new file mode 100644 index 0000000000..aaf967bb4a --- /dev/null +++ b/drd/tests/pth_mutex_signal.vgtest @@ -0,0 +1,3 @@ +prereq: ./supported_libpthread && [ -e pth_mutex_signal ] +vgopts: --check-stack-var=yes --read-var-info=yes +prog: pth_mutex_signal |