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
(32) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
1
(4) |
|
2
(5) |
3
(3) |
4
(3) |
5
(7) |
6
(7) |
7
(9) |
8
(10) |
|
9
(12) |
10
(26) |
11
(9) |
12
(6) |
13
(7) |
14
(15) |
15
(25) |
|
16
(20) |
17
(32) |
18
(11) |
19
(19) |
20
(22) |
21
(6) |
22
(8) |
|
23
(16) |
24
(25) |
25
(11) |
26
(16) |
27
(12) |
28
(15) |
29
(11) |
|
30
(5) |
31
(8) |
|
|
|
|
|
|
From: Tom H. <to...@co...> - 2005-01-17 03:24:31
|
Nightly build on dunsmere ( Fedora Core 3 ) started at 2005-01-17 03:20:03 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow yield: valgrind --num-callers=4 ./yield *** yield failed (stdout) *** -- Finished tests in none/tests ---------------------------------------- == 196 tests, 12 stderr failures, 1 stdout failure ================= helgrind/tests/allok (stderr) helgrind/tests/deadlock (stderr) helgrind/tests/inherit (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) helgrind/tests/readshared (stderr) massif/tests/toobig-allocs (stderr) massif/tests/true_html (stderr) massif/tests/true_text (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_supp (stderr) memcheck/tests/vgtest_ume (stderr) none/tests/yield (stdout) make: *** [regtest] Error 1 |
|
From: Jeremy F. <je...@go...> - 2005-01-17 03:19:54
|
On Mon, 2005-01-17 at 03:10 +0000, Tom Hughes wrote: > memcheck/tests/pth_once (stderr) > memcheck/tests/scalar (stderr) > memcheck/tests/threadederrno (stderr) > memcheck/tests/vgtest_ume (stderr) What are these? > none/tests/yield (stdout) Can you think of any useful assertion this test could be making? Perhaps we should just kill it. J |
|
From: Jeremy F. <je...@go...> - 2005-01-17 03:18:44
|
On Sun, 2005-01-16 at 17:20 -0800, Jeremy Fitzhardinge wrote: > Currently, when the sys_clone wrapper sees a clone() which is actually a > fork, it ends up using the fork() syscall instead. However, this > doesn't do the extra things that clone() can do, like writing the parent > and/or child pid into memory, which is what this assert checks for. OK, I just checked in a fix for this, so give it a go. J |
|
From: Jeremy F. <je...@go...> - 2005-01-17 03:16:30
|
CVS commit by fitzhardinge:
When the client uses clone() to do a fork, use the clone syscall to
implement it rather than fork, so that all the CHILD/PARENT_SET/CLEARTID
flags are obeyed.
M +5 -0 core.h 1.66
M +6 -6 vg_syscalls.c 1.232
M +50 -5 x86-linux/syscalls.c 1.15
--- valgrind/coregrind/core.h #1.65:1.66
@@ -1250,4 +1250,9 @@ extern const Char *VG_(prot_str)(UInt pr
------------------------------------------------------------------ */
+/* Simple Valgrind-internal atfork mechanism */
+extern void VG_(do_atfork_pre) (ThreadId tid);
+extern void VG_(do_atfork_parent)(ThreadId tid);
+extern void VG_(do_atfork_child) (ThreadId tid);
+
extern Char *VG_(resolve_filename)(Int fd);
--- valgrind/coregrind/vg_syscalls.c #1.231:1.232
@@ -79,5 +79,5 @@ void VG_(atfork)(vg_atfork_t pre, vg_atf
}
-static void do_atfork_pre(ThreadId tid)
+void VG_(do_atfork_pre)(ThreadId tid)
{
Int i;
@@ -88,5 +88,5 @@ static void do_atfork_pre(ThreadId tid)
}
-static void do_atfork_parent(ThreadId tid)
+void VG_(do_atfork_parent)(ThreadId tid)
{
Int i;
@@ -97,5 +97,5 @@ static void do_atfork_parent(ThreadId ti
}
-static void do_atfork_child(ThreadId tid)
+void VG_(do_atfork_child)(ThreadId tid)
{
Int i;
@@ -2073,10 +2073,10 @@ PRE(sys_fork, Special)
VG_(sigprocmask)(VKI_SIG_SETMASK, &mask, &fork_saved_mask);
- do_atfork_pre(tid);
+ VG_(do_atfork_pre)(tid);
set_result(VG_(do_syscall)(__NR_fork));
if (SYSRES == 0) {
- do_atfork_child(tid);
+ VG_(do_atfork_child)(tid);
/* restore signal mask */
@@ -2085,5 +2085,5 @@ PRE(sys_fork, Special)
PRINT(" fork: process %d created child %d\n", VG_(getpid)(), SYSRES);
- do_atfork_parent(tid);
+ VG_(do_atfork_parent)(tid);
/* restore signal mask */
--- valgrind/coregrind/x86-linux/syscalls.c #1.14:1.15
@@ -357,4 +357,45 @@ static Int do_clone(ThreadId ptid,
}
+/* Do a clone which is really a fork() */
+static Int do_fork_clone(ThreadId tid, UInt flags, Addr esp, Int *parent_tidptr, Int *child_tidptr)
+{
+ vki_sigset_t fork_saved_mask;
+ vki_sigset_t mask;
+ Int ret;
+
+ if (flags & (VKI_CLONE_SETTLS | VKI_CLONE_FS | VKI_CLONE_VM | VKI_CLONE_FILES | VKI_CLONE_VFORK))
+ return -VKI_EINVAL;
+
+ /* Block all signals during fork, so that we can fix things up in
+ the child without being interrupted. */
+ VG_(sigfillset)(&mask);
+ VG_(sigprocmask)(VKI_SIG_SETMASK, &mask, &fork_saved_mask);
+
+ VG_(do_atfork_pre)(tid);
+
+ /* Since this is the fork() form of clone, we don't need all that
+ VG_(clone) stuff */
+ ret = VG_(do_syscall)(__NR_clone, flags, NULL, parent_tidptr, NULL, child_tidptr);
+
+ if (ret == 0) {
+ /* child */
+ VG_(do_atfork_child)(tid);
+
+ /* restore signal mask */
+ VG_(sigprocmask)(VKI_SIG_SETMASK, &fork_saved_mask, NULL);
+ } else if (ret > 0) {
+ /* parent */
+ if (VG_(clo_trace_syscalls))
+ VG_(printf)(" clone(fork): process %d created child %d\n", VG_(getpid)(), ret);
+
+ VG_(do_atfork_parent)(tid);
+
+ /* restore signal mask */
+ VG_(sigprocmask)(VKI_SIG_SETMASK, &fork_saved_mask, NULL);
+ }
+
+ return ret;
+}
+
/* ---------------------------------------------------------------------
PRE/POST wrappers for x86/Linux-specific syscalls
@@ -451,6 +492,5 @@ PRE(sys_clone, Special)
}
- /* Only look at the flags we really care about */
- cloneflags = arg1 & (VKI_CLONE_VM | VKI_CLONE_FS | VKI_CLONE_FILES | VKI_CLONE_VFORK);
+ cloneflags = arg1;
if (!VG_(client_signal_OK)(arg1 & VKI_CSIGNAL)) {
@@ -459,5 +499,6 @@ PRE(sys_clone, Special)
}
- switch(cloneflags) {
+ /* Only look at the flags we really care about */
+ switch(cloneflags & (VKI_CLONE_VM | VKI_CLONE_FS | VKI_CLONE_FILES | VKI_CLONE_VFORK)) {
case VKI_CLONE_VM | VKI_CLONE_FS | VKI_CLONE_FILES:
/* thread creation */
@@ -472,8 +513,12 @@ PRE(sys_clone, Special)
case VKI_CLONE_VFORK | VKI_CLONE_VM: /* vfork */
/* FALLTHROUGH - assume vfork == fork */
+ cloneflags &= ~(VKI_CLONE_VFORK | VKI_CLONE_VM);
case 0: /* plain fork */
- vg_assert(VGA_(gen_sys_fork_flags) & Special);
- VGA_(gen_sys_fork_before)(tid, tst, &VGA_(gen_sys_fork_flags));
+ set_result(do_fork_clone(tid,
+ cloneflags, /* flags */
+ (Addr)arg2, /* child ESP */
+ (Int *)arg3, /* parent_tidptr */
+ (Int *)arg5)); /* child_tidptr */
break;
|
|
From: Tom H. <th...@cy...> - 2005-01-17 03:16:14
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2005-01-17 03:10:02 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow yield: valgrind --num-callers=4 ./yield *** yield failed (stdout) *** -- Finished tests in none/tests ---------------------------------------- == 196 tests, 12 stderr failures, 1 stdout failure ================= helgrind/tests/allok (stderr) helgrind/tests/deadlock (stderr) helgrind/tests/inherit (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) helgrind/tests/readshared (stderr) massif/tests/toobig-allocs (stderr) massif/tests/true_html (stderr) massif/tests/true_text (stderr) memcheck/tests/pth_once (stderr) memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) none/tests/yield (stdout) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2005-01-17 03:10:24
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2005-01-17 03:05:03 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow *** yield failed (stdout) *** -- Finished tests in none/tests ---------------------------------------- == 196 tests, 13 stderr failures, 1 stdout failure ================= helgrind/tests/allok (stderr) helgrind/tests/deadlock (stderr) helgrind/tests/inherit (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) helgrind/tests/readshared (stderr) massif/tests/toobig-allocs (stderr) massif/tests/true_html (stderr) massif/tests/true_text (stderr) memcheck/tests/pth_once (stderr) memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) memcheck/tests/vgtest_ume (stderr) none/tests/yield (stdout) make: *** [regtest] Error 1 |
|
From: Jeremy F. <je...@go...> - 2005-01-17 01:20:55
|
On Sun, 2005-01-16 at 22:28 +1100, Eyal Lebedinsky wrote:
> zz33: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: __libc_fork:
> Assertion `({ __typeof (self->tid) __value; if (sizeof (__value) == 1)
> asm volatile ("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0),
> "i" (((size_t) &((struct pthread *)0)->tid))); else if (sizeof
> (__value) == 4) asm volatile ("movl %%gs:%P1,%0" : "=r" (__value) :
> "i" (((size_t) &((struct pthread *)0)->tid))); else { if (sizeof
> (__value) != 8) abort (); asm volatile ("movl %%gs:%P1,%%eax\n\t"
> "movl %%gs:%P2,%%edx" : "=A" (__value) : "i" (((size_t) &((struct
> pthread *)0)->tid)), "i" (((size_t) &((struct pthread *)0)->tid) +
> 4)); } __value; }) != ppid' failed.
OK, this looks like the real problem.
Currently, when the sys_clone wrapper sees a clone() which is actually a
fork, it ends up using the fork() syscall instead. However, this
doesn't do the extra things that clone() can do, like writing the parent
and/or child pid into memory, which is what this assert checks for.
However, my glibc does this too, so I don't understand why I (and
everyone else with NPTL glibc) doesn't see this too. Anyway, I'll look
at this in a bit more detail now.
In the meantime as a workaround, try using LD_ASSUME_KERNEL=2.4.0, which
will use LinuxThreads instead, and should be OK with the current code.
J
|