You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
(58) |
Apr
(261) |
May
(169) |
Jun
(214) |
Jul
(201) |
Aug
(219) |
Sep
(198) |
Oct
(203) |
Nov
(241) |
Dec
(94) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(137) |
Feb
(149) |
Mar
(150) |
Apr
(193) |
May
(95) |
Jun
(173) |
Jul
(137) |
Aug
(236) |
Sep
(157) |
Oct
(150) |
Nov
(136) |
Dec
(90) |
| 2005 |
Jan
(139) |
Feb
(130) |
Mar
(274) |
Apr
(138) |
May
(184) |
Jun
(152) |
Jul
(261) |
Aug
(409) |
Sep
(239) |
Oct
(241) |
Nov
(260) |
Dec
(137) |
| 2006 |
Jan
(191) |
Feb
(142) |
Mar
(169) |
Apr
(75) |
May
(141) |
Jun
(169) |
Jul
(131) |
Aug
(141) |
Sep
(192) |
Oct
(176) |
Nov
(142) |
Dec
(95) |
| 2007 |
Jan
(98) |
Feb
(120) |
Mar
(93) |
Apr
(96) |
May
(95) |
Jun
(65) |
Jul
(62) |
Aug
(56) |
Sep
(53) |
Oct
(95) |
Nov
(106) |
Dec
(87) |
| 2008 |
Jan
(58) |
Feb
(149) |
Mar
(175) |
Apr
(110) |
May
(106) |
Jun
(72) |
Jul
(55) |
Aug
(89) |
Sep
(26) |
Oct
(96) |
Nov
(83) |
Dec
(93) |
| 2009 |
Jan
(97) |
Feb
(106) |
Mar
(74) |
Apr
(64) |
May
(115) |
Jun
(83) |
Jul
(137) |
Aug
(103) |
Sep
(56) |
Oct
(59) |
Nov
(61) |
Dec
(37) |
| 2010 |
Jan
(94) |
Feb
(71) |
Mar
(53) |
Apr
(105) |
May
(79) |
Jun
(111) |
Jul
(110) |
Aug
(81) |
Sep
(50) |
Oct
(82) |
Nov
(49) |
Dec
(21) |
| 2011 |
Jan
(87) |
Feb
(105) |
Mar
(108) |
Apr
(99) |
May
(91) |
Jun
(94) |
Jul
(114) |
Aug
(77) |
Sep
(58) |
Oct
(58) |
Nov
(131) |
Dec
(62) |
| 2012 |
Jan
(76) |
Feb
(93) |
Mar
(68) |
Apr
(95) |
May
(62) |
Jun
(109) |
Jul
(90) |
Aug
(87) |
Sep
(49) |
Oct
(54) |
Nov
(66) |
Dec
(84) |
| 2013 |
Jan
(67) |
Feb
(52) |
Mar
(93) |
Apr
(65) |
May
(33) |
Jun
(34) |
Jul
(52) |
Aug
(42) |
Sep
(52) |
Oct
(48) |
Nov
(66) |
Dec
(14) |
| 2014 |
Jan
(66) |
Feb
(51) |
Mar
(34) |
Apr
(47) |
May
(58) |
Jun
(27) |
Jul
(52) |
Aug
(41) |
Sep
(78) |
Oct
(30) |
Nov
(28) |
Dec
(26) |
| 2015 |
Jan
(41) |
Feb
(42) |
Mar
(20) |
Apr
(73) |
May
(31) |
Jun
(48) |
Jul
(23) |
Aug
(55) |
Sep
(36) |
Oct
(47) |
Nov
(48) |
Dec
(41) |
| 2016 |
Jan
(32) |
Feb
(34) |
Mar
(33) |
Apr
(22) |
May
(14) |
Jun
(31) |
Jul
(29) |
Aug
(41) |
Sep
(17) |
Oct
(27) |
Nov
(38) |
Dec
(28) |
| 2017 |
Jan
(28) |
Feb
(30) |
Mar
(16) |
Apr
(9) |
May
(27) |
Jun
(57) |
Jul
(28) |
Aug
(43) |
Sep
(31) |
Oct
(20) |
Nov
(24) |
Dec
(18) |
| 2018 |
Jan
(34) |
Feb
(50) |
Mar
(18) |
Apr
(26) |
May
(13) |
Jun
(31) |
Jul
(13) |
Aug
(11) |
Sep
(15) |
Oct
(12) |
Nov
(18) |
Dec
(13) |
| 2019 |
Jan
(12) |
Feb
(29) |
Mar
(51) |
Apr
(22) |
May
(13) |
Jun
(20) |
Jul
(13) |
Aug
(12) |
Sep
(21) |
Oct
(6) |
Nov
(9) |
Dec
(5) |
| 2020 |
Jan
(13) |
Feb
(5) |
Mar
(25) |
Apr
(4) |
May
(40) |
Jun
(27) |
Jul
(5) |
Aug
(17) |
Sep
(21) |
Oct
(1) |
Nov
(5) |
Dec
(15) |
| 2021 |
Jan
(28) |
Feb
(6) |
Mar
(11) |
Apr
(5) |
May
(7) |
Jun
(8) |
Jul
(5) |
Aug
(5) |
Sep
(11) |
Oct
(9) |
Nov
(10) |
Dec
(12) |
| 2022 |
Jan
(7) |
Feb
(13) |
Mar
(8) |
Apr
(7) |
May
(12) |
Jun
(27) |
Jul
(14) |
Aug
(27) |
Sep
(27) |
Oct
(17) |
Nov
(17) |
Dec
|
| 2023 |
Jan
(10) |
Feb
(18) |
Mar
(9) |
Apr
(26) |
May
|
Jun
(13) |
Jul
(18) |
Aug
(5) |
Sep
(12) |
Oct
(16) |
Nov
(1) |
Dec
|
| 2024 |
Jan
(4) |
Feb
(3) |
Mar
(6) |
Apr
(17) |
May
(2) |
Jun
(33) |
Jul
(13) |
Aug
(1) |
Sep
(6) |
Oct
(8) |
Nov
(6) |
Dec
(15) |
| 2025 |
Jan
(5) |
Feb
(11) |
Mar
(8) |
Apr
(20) |
May
(1) |
Jun
|
Jul
|
Aug
(9) |
Sep
(1) |
Oct
(7) |
Nov
(1) |
Dec
|
|
From: João M. S. S. <joa...@gm...> - 2015-04-15 00:59:05
|
> There is no (direct) use of the function args on line 118.
> Of course, it might be that e.g. an uninitialised arg (e.g. no_eras
> might be unitialised and get a random value 22) might result later in j
> or whatever being initialised.
You're right, I think I found it. In:
tmp = INDEX_OF[lambda[j - 1]];
j gets = 22 but lambda is size 21.
This happens because no_eras = 22:
for (i = 1; i < no_eras; i++) {
u = MODNN(PRIM*(NN-1-eras_pos[i]));
for (j = i+1; j > 0; j--) {
tmp = INDEX_OF[lambda[j - 1]];
if(tmp != A0)
lambda[j] ^= ALPHA_TO[MODNN(u + tmp)];
}
}
I missed it before.
Thanks.
--
João M. S. Silva
|
|
From: João M. S. S. <joa...@gm...> - 2015-04-15 00:06:12
|
> But the most probably culprits are either j or lambda[j-1] > or whatever the INDEX_OF macro(is it a macro?) is doing behind > what is visible. > There is no (direct) use of the function args on line 118. > Of course, it might be that e.g. an uninitialised arg (e.g. no_eras > might be unitialised and get a random value 22) might result later in j > or whatever being initialised. I already tried get_vbits on j (size 4), lambda (size 21) and INDEX_OF = rs->index_of (size 32) and all of them seem initialized (represented with 0 by get_vbits). I also tried --read-var-info=yes but as far as I can see there is no difference in the output. -- João M. S. Silva |
|
From: Philippe W. <phi...@sk...> - 2015-04-14 21:34:25
|
On Tue, 2015-04-14 at 22:03 +0100, "João M. S. Silva" wrote: > > Yes, but in some cases the sizeof indicates the size of the pointer (not > the size of the allocated memory). So I had to browse the code to get > the size of the allocations/structs involved. or use (gdb) monitor v.info location <addr> You might also better start your valgrind with --read-var-info=yes That might give some more information in some cases (valgrind will be slower to startup). > OK, so it is not applicable to this case of uninitialized stack variables. sg-check will not help for such an uninit. > > What is strange is that I never faced such a shortcoming in my own code. > In my code valgrind always points to the location of the error exactly. > Does this happen because this is a library that I link with? Or because > of the nature of the error? Depends on what errors you had in your code. Uninit errors can be more difficult to track than leaks or dangling pointers, in particular because the origin of uninit data is not precisely maintained. Philippe |
|
From: Philippe W. <phi...@sk...> - 2015-04-14 21:28:47
|
On Tue, 2015-04-14 at 19:26 +0100, "João M. S. Silva" wrote: > Program received signal SIGTRAP, Trace/breakpoint trap. > 0x00000000060bdb6d in decode_rs_char (p=0x201aac50, data=0xffefff500 "", > eras_pos=0xffefff480, no_eras=22) at decode_rs.h:118 > 118 tmp = INDEX_OF[lambda[j - 1]]; > > I tried the get_vbits command in variables p, data, eras_pos and > no_eras. I had to manually find out the size of the corresponding > variables, since some of them are pointers or structs with pointer fields. But the most probably culprits are either j or lambda[j-1] or whatever the INDEX_OF macro(is it a macro?) is doing behind what is visible. There is no (direct) use of the function args on line 118. Of course, it might be that e.g. an uninitialised arg (e.g. no_eras might be unitialised and get a random value 22) might result later in j or whatever being initialised. Philippe |
|
From: João M. S. S. <joa...@gm...> - 2015-04-14 21:03:19
|
> I do not understand. The below error is an uninitialised value error. > Why do you say you cannot catch the errors ? Valgrind points to them, but I don't seem to confirm the uninitialization. > You just have to use monitor get_vbits at the time of the error > to investigate more in depth where the error comes from, > and if needed, relaunch the execution after having added some > breakpoints earlier in the program flow, and again use get_vbits > to try to understand where the uninit error comes from. Easier said than done :) I've tried but there are a lot of local variables: int retval; struct rs *rs = (struct rs *)p; int deg_lambda, el, deg_omega; int i, j, r,k; data_t u,q,tmp,num1,num2,den,discr_r; data_t lambda[NROOTS+1], s[NROOTS]; /* Err+Eras Locator poly * and syndrome poly */ data_t b[NROOTS+1], t[NROOTS+1], omega[NROOTS+1]; data_t root[NROOTS], reg[NROOTS+1], loc[NROOTS]; int syn_error, count; and lines where they can be used before initialization: ~ 300. > Yes, the monitor get_vbits only knows about address+length. > So, you need to do something like > (gdb) p &myvar > (gdb) p sizeof(myvar) > and then use > (gdb) monitor get_vbits <address> <size> > to get the vbits. Yes, but in some cases the sizeof indicates the size of the pointer (not the size of the allocated memory). So I had to browse the code to get the size of the allocations/structs involved. > When valgrind reports that the origin of an uninit var is in a function, > then it means it is one of the local variables of the function. > Not the arguments of this function. OK, that's why it is difficult to find this. Specially because it is a 3rd party library. Since the line valgrind pinpoints is not accurate/relevant, we are in doubt about where the error comes from. (I'm not saying its valgrind's fault, of course, it already is an extremely useful tool, as is). > If you want to detect buffer over or under run in stack and global > variables, then yes, the experimental exp-sgcheck tool is your friend. OK, so it is not applicable to this case of uninitialized stack variables. What is strange is that I never faced such a shortcoming in my own code. In my code valgrind always points to the location of the error exactly. Does this happen because this is a library that I link with? Or because of the nature of the error? Thanks. -- João M. S. Silva |
|
From: Philippe W. <phi...@sk...> - 2015-04-14 19:24:05
|
On Tue, 2015-04-14 at 19:26 +0100, "João M. S. Silva" wrote: > > What you can further do is to use the memcheck monitor commands to > > examine the definedness of the variables used on the line where the > > error is detected. > > > > See manual for more info > > http://www.valgrind.org/docs/manual/mc-manual.html#mc-manual.monitor-commands > > Thanks, I didn't know about the "monitor get_vbits" command. > > However, it seems I'm not able to catch any uninitialized variable. I do not understand. The below error is an uninitialised value error. Why do you say you cannot catch the errors ? You just have to use monitor get_vbits at the time of the error to investigate more in depth where the error comes from, and if needed, relaunch the execution after having added some breakpoints earlier in the program flow, and again use get_vbits to try to understand where the uninit error comes from. > I > also get this kind of error in another library: > > ==17108== Use of uninitialised value of size 8 > ==17108== at 0x60BDB6D: decode_rs_char (decode_rs.h:118) > ==17108== by 0x41D9B5: Code::decode(unsigned char*, int*, unsigned > int, bool) (Code.cpp:114) > ==17108== by 0x41E6D8: Code::extract(char*, char*, std::string&, > unsigned int) (Code.cpp:326) > ==17108== by 0x4060E4: main (test.cpp:178) > ==17108== Uninitialised value was created by a stack allocation > ==17108== at 0x60BD480: decode_rs_char (decode_rs_char.c:15) > > And with vgdb I get this in gdb: > > Program received signal SIGTRAP, Trace/breakpoint trap. > 0x00000000060bdb6d in decode_rs_char (p=0x201aac50, data=0xffefff500 "", > eras_pos=0xffefff480, no_eras=22) at decode_rs.h:118 > 118 tmp = INDEX_OF[lambda[j - 1]]; Yes that is the way the valgrind gdbserver reports to gdb that there is an error that the user can look at. > > I tried the get_vbits command in variables p, data, eras_pos and > no_eras. I had to manually find out the size of the corresponding > variables, since some of them are pointers or structs with pointer fields. Yes, the monitor get_vbits only knows about address+length. So, you need to do something like (gdb) p &myvar (gdb) p sizeof(myvar) and then use (gdb) monitor get_vbits <address> <size> to get the vbits. > > I seem to have computed the corresponding sizes correctly since if I use > a size 1 byte larger in the vget_bits command I get an "unaddressable" > warning (also represented by the underscore). > > When you say "local variables" you mean the variables the function > received as argument or all variables defined inside the function? When valgrind reports that the origin of an uninit var is in a function, then it means it is one of the local variables of the function. Not the arguments of this function. > > I think I know the answer, since I remember having discussed this in the > mailing list: all variables inside the function are local, thus > allocated in the stack, so valgrind is not yet able to detect errors in > them? Can you confirm this? Valgrind memcheck is able to report some errors originating from local vars, namely the uninit errors. > > I have to try using exp-sgcheck, right? If you want to detect buffer over or under run in stack and global variables, then yes, the experimental exp-sgcheck tool is your friend. Philippe |
|
From: Philippe W. <phi...@sk...> - 2015-04-14 19:11:31
|
On Mon, 2015-04-13 at 16:28 +0000, Lerner, Dave wrote: > I noticed what looks like a typo in the code for the powerpc altivec register set save/restore logic. I found the bug in both 3.10.1 and 3.9. > > A suggested patch is shown below. Thanks for the analysis and the patch. I think it is better to file a bug in bugzilla and attach the patch. The follow-up can then be done by the valgrind ppc maintainer. Philippe |
|
From: João M. S. S. <joa...@gm...> - 2015-04-14 18:26:52
|
> What you can further do is to use the memcheck monitor commands to > examine the definedness of the variables used on the line where the > error is detected. > > See manual for more info > http://www.valgrind.org/docs/manual/mc-manual.html#mc-manual.monitor-commands Thanks, I didn't know about the "monitor get_vbits" command. However, it seems I'm not able to catch any uninitialized variable. I also get this kind of error in another library: ==17108== Use of uninitialised value of size 8 ==17108== at 0x60BDB6D: decode_rs_char (decode_rs.h:118) ==17108== by 0x41D9B5: Code::decode(unsigned char*, int*, unsigned int, bool) (Code.cpp:114) ==17108== by 0x41E6D8: Code::extract(char*, char*, std::string&, unsigned int) (Code.cpp:326) ==17108== by 0x4060E4: main (test.cpp:178) ==17108== Uninitialised value was created by a stack allocation ==17108== at 0x60BD480: decode_rs_char (decode_rs_char.c:15) And with vgdb I get this in gdb: Program received signal SIGTRAP, Trace/breakpoint trap. 0x00000000060bdb6d in decode_rs_char (p=0x201aac50, data=0xffefff500 "", eras_pos=0xffefff480, no_eras=22) at decode_rs.h:118 118 tmp = INDEX_OF[lambda[j - 1]]; I tried the get_vbits command in variables p, data, eras_pos and no_eras. I had to manually find out the size of the corresponding variables, since some of them are pointers or structs with pointer fields. I seem to have computed the corresponding sizes correctly since if I use a size 1 byte larger in the vget_bits command I get an "unaddressable" warning (also represented by the underscore). When you say "local variables" you mean the variables the function received as argument or all variables defined inside the function? I think I know the answer, since I remember having discussed this in the mailing list: all variables inside the function are local, thus allocated in the stack, so valgrind is not yet able to detect errors in them? Can you confirm this? I have to try using exp-sgcheck, right? Thanks. -- João M. S. Silva |
|
From: Calvin C. <lin...@gm...> - 2015-04-14 09:20:48
|
I see. It appears that I was looking at the right file and the right `case` line then. Just wasn’t sharp enough with my bash-fu to have spotted `applellvm-5.1|applellvm-6.*`. Thank you. Btw... any interest to switch to git? I am so rusty with svn too. Heh. — Sent from Mailbox On Tue, Apr 14, 2015 at 5:13 PM, Julian Seward <js...@ac...> wrote: >> r15088 compiles correctly without complaining about clang 6.1.0. >> Just curious — does anyone know where this was specified to allow the > compilation to proceed? > It was actually 15088 that enabled it. Try 'svn diff -c15088' to see it. > J |
|
From: Julian S. <js...@ac...> - 2015-04-14 09:13:41
|
> r15088 compiles correctly without complaining about clang 6.1.0. > Just curious — does anyone know where this was specified to allow the compilation to proceed? It was actually 15088 that enabled it. Try 'svn diff -c15088' to see it. J |
|
From: Calvin C. <lin...@gm...> - 2015-04-14 09:11:43
|
My mistake. Hit the reply-to on the wrong part of the thread and so identified Julian wrongly as John. Thanks Julian. In any case, I do need to figure out autotools, automake. Not familiar with autotools at all so I can’t figure out how to fix the problem at r14960 earlier. — Sent from Mailbox On Tue, Apr 14, 2015 at 4:43 PM, Julian Seward <js...@ac...> wrote: > On 14/04/15 02:40, Lin Chuan wrote: >> I would like to get automake to accept a higher version of clang (6.1.0) >> and give it a go at installing Valgrind against this newer version from >> Xcode 6.3. Where do I make these changes? > I think this was fixed yesterday morning, in svn r15088. svn up and > try again. > J |
|
From: Calvin C. <lin...@gm...> - 2015-04-14 09:08:04
|
Thank you, John. r15088 compiles correctly without complaining about clang 6.1.0. Just curious — does anyone know where this was specified to allow the compilation to proceed? — Sent from Mailbox On Tue, Apr 14, 2015 at 9:33 AM, John Reiser <jr...@bi...> wrote: >> I managed to get the trunk version of Valgrind install correctly for Xcode 6.2 (clang 6.0.2 iirc) but after an upgrade, `./configure` stops me from continuing. >> >> I would like to get automake to accept a higher version of clang (6.1.0) and give it a go at installing Valgrind against this newer version from Xcode 6.3. Where do I make these changes? > Depending on how far back in the pipeline you wish to go: configure, configure.ac, configure.in. > Valgrind's use of these files follows the usual conventions. > ------------------------------------------------------------------------------ > BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT > Develop your own process in accordance with the BPMN 2 standard > Learn Process modeling best practices with Bonita BPM through live exercises > http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ > source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF > _______________________________________________ > Valgrind-users mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-users |
|
From: John R. <jr...@bi...> - 2015-04-14 01:29:45
|
> I managed to get the trunk version of Valgrind install correctly for Xcode 6.2 (clang 6.0.2 iirc) but after an upgrade, `./configure` stops me from continuing. > > I would like to get automake to accept a higher version of clang (6.1.0) and give it a go at installing Valgrind against this newer version from Xcode 6.3. Where do I make these changes? Depending on how far back in the pipeline you wish to go: configure, configure.ac, configure.in. Valgrind's use of these files follows the usual conventions. |
|
From: Lin C. <lin...@gm...> - 2015-04-14 00:41:03
|
Hi, I managed to get the trunk version of Valgrind install correctly for Xcode 6.2 (clang 6.0.2 iirc) but after an upgrade, `./configure` stops me from continuing. I would like to get automake to accept a higher version of clang (6.1.0) and give it a go at installing Valgrind against this newer version from Xcode 6.3. Where do I make these changes? Thanks -- http://calvinx.com <http://www.calvinx.com> |
|
From: Tom H. <to...@co...> - 2015-04-13 21:31:54
|
On 13/04/15 21:57, Zhu, Yanwen wrote: > Can you please confirm if mabi=n32 is currently supported by valgrind or not in MIPS64 platform? My Linux kernel is 64-bits, but our applications have to be built for 32-bits. So I need to get valgrind with mabi=n32 to work in our platform. No, the n32 ABI is not supported currently. There are patches in the bug tracker for it (https://bugs.kde.org/show_bug.cgi?id=345763) but they have not been applied yet. Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Zhu, Y. <Yan...@vi...> - 2015-04-13 20:57:21
|
Julian or Philippe, Can you please confirm if mabi=n32 is currently supported by valgrind or not in MIPS64 platform? My Linux kernel is 64-bits, but our applications have to be built for 32-bits. So I need to get valgrind with mabi=n32 to work in our platform. Thanks, Yanwen -----Original Message----- From: Zhu, Yanwen Sent: Monday, April 13, 2015 9:35 AM To: 'js...@ac...'; Philippe Waroquiers Cc: val...@li... Subject: RE: [Valgrind-users] valgrind out of memory error Even if I build valgrind with page size of 4 which matches my kernel page size, I'm still seeing the same problem. I am building valgrind with option -mabi=n32 for mips64. In the thread below, someone says currently valgrind only supports -mabi=n64 for mips64, is that true? http://valgrind.10908.n7.nabble.com/Valgrind-13854-Cross-compiling-for-Cavium-MIPS64-N32-ABI-td48980.html Thanks, Yanwen -----Original Message----- From: Julian Seward [mailto:js...@ac...] Sent: Monday, April 13, 2015 7:17 AM To: Philippe Waroquiers; Zhu, Yanwen Cc: val...@li... Subject: Re: [Valgrind-users] valgrind out of memory error > A possible cause could be the page size: as I understand, mips have > different page size setup. > If your valgrind has been compiled with a pagesize not matching your > kernel/setup, then maybe Valgrind might ask wrongly aligned mmap > requests, giving then this EINVAL Yes, that would be my guess too. At the time the failure happened there was still a block of 1759MB available: | --1956:0:aspacem <<< SHOW_SEGMENTS: out_of_memory (13 segments, 1 [..] | --1956:0:aspacem 6: 0011948000-007f880fff 1759m so it is clearly not the case that it has really run out of memory. J |
|
From: Lerner, D. <dav...@wi...> - 2015-04-13 16:28:24
|
I noticed what looks like a typo in the code for the powerpc altivec register set save/restore logic. I found the bug in both 3.10.1 and 3.9.
A suggested patch is shown below.
Regards,
Dave
=====================================
Fix typo saving altivec register v24
Fix a typo that saved vector register 25 in the slot reserved for
register 24. Verified by examining the code that restores v24 from
the same 16 byte offset (112) at label LafterFP9.
Signed-off-by: Dave Lerner <dle...@gm...>
diff --git a/coregrind/m_dispatch/dispatch-ppc32-linux.S b/coregrind/m_dispatch/dispatch-ppc32-linux.S
index 6457219..3c246ef 100644
--- a/coregrind/m_dispatch/dispatch-ppc32-linux.S
+++ b/coregrind/m_dispatch/dispatch-ppc32-linux.S
@@ -158,7 +158,7 @@ LafterFP1:
li 6,128
stvx 25,6,1
li 6,112
- stvx 25,6,1
+ stvx 24,6,1
li 6,96
stvx 23,6,1
li 6,80
=================================
|
|
From: Atalay O. <aoz...@ra...> - 2015-04-13 13:45:12
|
Thanks guys for the suggestion. Below I posted the "--trace-syscalls=yes" output after the call to "fusermount". An interesting thing is when using the alternative tracing option ie. "strace -f valgrind ..." the filesystem does not dead-lock, and I get the valgrind report. Here is the strace: SYSCALL[13441,3](59) sys_execve ( 0x8b7da0(/bin/fusermount), 0x8f91620, 0x7502fa0 )SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,2](202) ... [async] --> Failure(0x6e) SYSCALL[13431,2](202) sys_futex ( 0x74f4898, 129, 1, 0x8790c30, 0x74f47f0 ) --> [async] ... SYSCALL[13431,2](202) ... [async] --> Success(0x0:0x0) SYSCALL[13431,2](96) sys_gettimeofday ( 0x8790cd0, 0x0 )[sync] --> Success(0x0:0x0) SYSCALL[13431,2](202) sys_futex ( 0x74f48c4, 393, 11, 0x8790c30, 0x74f4898 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,3](47) ... [async] --> Success(0x0:0x0) SYSCALL[13431,3](3) sys_close ( 6 ) --> [async] ... SYSCALL[13431,3](3) ... [async] --> Success(0x0:0x0) SYSCALL[13431,3](61) sys_wait4 ( 13441, 0x0, 0, 0x0 ) --> [async] ... SYSCALL[13431,3](61) ... [async] --> Success(0x0:0x3481) SYSCALL[13431,3](53) sys_socketpair ( 1, 1, 0, 0x8f91790 )[sync] --> Success(0x0:0x0) SYSCALL[13431,3](56) sys_clone ( 1200011, 0x0, 0x0, 0x8f929d0, 0x3477 ) clone(fork): process 13431 created child 13443 --> [pre-success] Success(0x0:0x3483) SYSCALL[13431,3](3) sys_close ( 5 ) --> [async] ... SYSCALL[13431,3](3) ... [async] --> Success(0x0:0x0) SYSCALL[13431,3](47) sys_recvmsg ( 6, 0x8f91720, 0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,2](202) ... [async] --> Failure(0x6e) SYSCALL[13431,2](202) sys_futex ( 0x74f4898, 129, 1, 0x8790c30, 0x74f47f0 ) --> [async] ... SYSCALL[13431,2](202) ... [async] --> Success(0x0:0x0) SYSCALL[13431,2](96) sys_gettimeofday ( 0x8790cd0, 0x0 )[sync] --> Success(0x0:0x0) SYSCALL[13431,2](202) sys_futex ( 0x74f48c4, 393, 13, 0x8790c30, 0x74f4898 ) --> [async] ... --> [pre-success] Success(0x0:0x0) SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13443,3](273) sys_set_robust_list ( 0x8f929e0, 24 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13443,3](3) sys_close ( 6 ) --> [async] ... SYSCALL[13443,3](3) ... [async] --> Success(0x0:0x0) SYSCALL[13443,3](72) sys_fcntl[ARG3=='arg'] ( 5, 2, 0 )[sync] --> Success(0x0:0x0) --13443-- REDIR: 0x6f131d0 (libc.so.6:setenv) redirected to 0x4c31f50 (setenv) SYSCALL[13431,2](202) ... [async] --> Failure(0x6e) SYSCALL[13431,2](202) sys_futex ( 0x74f4898, 129, 1, 0x8790c30, 0x74f47f0 ) --> [async] ... SYSCALL[13431,2](202) ... [async] --> Success(0x0:0x0) SYSCALL[13431,2](96) sys_gettimeofday ( 0x8790cd0, 0x0 )[sync] --> Success(0x0:0x0) SYSCALL[13431,2](202) sys_futex ( 0x74f48c4, 393, 15, 0x8790c30, 0x74f4898 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13443,3](59) sys_execve ( 0x8b7da0(/bin/fusermount), 0x8f91620, 0x7502fa0 )SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,2](202) ... [async] --> Failure(0x6e) SYSCALL[13431,2](202) sys_futex ( 0x74f4898, 129, 1, 0x8790c30, 0x74f47f0 ) --> [async] ... SYSCALL[13431,2](202) ... [async] --> Success(0x0:0x0) SYSCALL[13431,2](96) sys_gettimeofday ( 0x8790cd0, 0x0 )[sync] --> Success(0x0:0x0) SYSCALL[13431,2](202) sys_futex ( 0x74f48c4, 393, 17, 0x8790c30, 0x74f4898 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 )[sync] --> Success(0x0:0x0) SYSCALL[13431,1](35) sys_nanosleep ( 0xffefff320, 0x0 ) --> [async] ... SYSCALL[13431,1](35) ... [async] --> Success(0x0:0x0) SYSCALL[13431,1](137) sys_statfs ( 0x74f90b8(/home/atalay/dev/Sage/DispatcherServer/bin/debug/proc/), 0xffefff640 ) Thanks a lot, Atalay On Mon, Apr 13, 2015 at 7:07 AM, Julian Seward <js...@ac...> wrote: > On 09/04/15 20:08, Atalay Ozgovde wrote: > > This is essentially the same bug as: > > https://bugs.kde.org/show_bug.cgi?id=278057 > > A patch was applied for this bug in version 3.7 and it is considered > fixed. > > I am using version 3.10, I confirmed in the source code that the patch is > > applied. Valgrind still dread-locks when used to test an application that > > uses fuse in our environment. We are using 64bit Ubuntu 12.04LTS. > > Anybody knows if there is an easy fix? > > First you need to find out exactly why it is hanging. If you run > with --trace-syscalls=yes, you can infer (indirectly) the state of each > thread at the point where the hang happens. Can you do that and post > the last 100 lines or so? > > J > > > |
|
From: Zhu, Y. <Yan...@vi...> - 2015-04-13 13:35:14
|
Even if I build valgrind with page size of 4 which matches my kernel page size, I'm still seeing the same problem. I am building valgrind with option -mabi=n32 for mips64. In the thread below, someone says currently valgrind only supports -mabi=n64 for mips64, is that true? http://valgrind.10908.n7.nabble.com/Valgrind-13854-Cross-compiling-for-Cavium-MIPS64-N32-ABI-td48980.html Thanks, Yanwen -----Original Message----- From: Julian Seward [mailto:js...@ac...] Sent: Monday, April 13, 2015 7:17 AM To: Philippe Waroquiers; Zhu, Yanwen Cc: val...@li... Subject: Re: [Valgrind-users] valgrind out of memory error > A possible cause could be the page size: as I understand, mips have > different page size setup. > If your valgrind has been compiled with a pagesize not matching your > kernel/setup, then maybe Valgrind might ask wrongly aligned mmap > requests, giving then this EINVAL Yes, that would be my guess too. At the time the failure happened there was still a block of 1759MB available: | --1956:0:aspacem <<< SHOW_SEGMENTS: out_of_memory (13 segments, 1 [..] | --1956:0:aspacem 6: 0011948000-007f880fff 1759m so it is clearly not the case that it has really run out of memory. J |
|
From: Julian S. <js...@ac...> - 2015-04-13 11:16:38
|
> A possible cause could be the page size: as I understand, > mips have different page size setup. > If your valgrind has been compiled with a pagesize > not matching your kernel/setup, then maybe Valgrind might ask > wrongly aligned mmap requests, giving then this EINVAL Yes, that would be my guess too. At the time the failure happened there was still a block of 1759MB available: | --1956:0:aspacem <<< SHOW_SEGMENTS: out_of_memory (13 segments, 1 [..] | --1956:0:aspacem 6: 0011948000-007f880fff 1759m so it is clearly not the case that it has really run out of memory. J |
|
From: Julian S. <js...@ac...> - 2015-04-13 11:07:30
|
On 09/04/15 20:08, Atalay Ozgovde wrote: > This is essentially the same bug as: > https://bugs.kde.org/show_bug.cgi?id=278057 > A patch was applied for this bug in version 3.7 and it is considered fixed. > I am using version 3.10, I confirmed in the source code that the patch is > applied. Valgrind still dread-locks when used to test an application that > uses fuse in our environment. We are using 64bit Ubuntu 12.04LTS. > Anybody knows if there is an easy fix? First you need to find out exactly why it is hanging. If you run with --trace-syscalls=yes, you can infer (indirectly) the state of each thread at the point where the hang happens. Can you do that and post the last 100 lines or so? J |
|
From: Philippe W. <phi...@sk...> - 2015-04-10 21:45:20
|
On Fri, 2015-04-10 at 21:39 +0000, Zhu, Yanwen wrote:
> What argument should I give to strace in order to get syscall args?
No idea.
On my linux box, a normal strace gives the mmap args.
Try to look at
strace --help
or
man strace
Philippe
|
|
From: Zhu, Y. <Yan...@vi...> - 2015-04-10 21:39:50
|
What argument should I give to strace in order to get syscall args? Yanwen -----Original Message----- From: Philippe Waroquiers [mailto:phi...@sk...] Sent: Friday, April 10, 2015 5:33 PM To: Zhu, Yanwen Cc: val...@li... Subject: RE: [Valgrind-users] valgrind out of memory error On Fri, 2015-04-10 at 21:24 +0000, Zhu, Yanwen wrote: > Philippe, > > Please see the attached file for > strace -f valgrind -v -v -v -d -d -d > output The trace confirms that the mmap syscall is failing: n64_write(--1953:1:main Starting the dynamic memory manager ) = 54 n64_mmap() = -1 EINVAL (Invalid argument) But we do not see the syscall args. Maybe you need to give an argument to strace to have them ? A possible cause could be the page size: as I understand, mips have different page size setup. If your valgrind has been compiled with a pagesize not matching your kernel/setup, then maybe Valgrind might ask wrongly aligned mmap requests, giving then this EINVAL You could then configure/compile valgrind, specifying the correct page size e.g. use the below configure option: --with-pagesize= override detected page size (4, 16 or 64) Philippe |
|
From: Philippe W. <phi...@sk...> - 2015-04-10 21:32:09
|
On Fri, 2015-04-10 at 21:24 +0000, Zhu, Yanwen wrote: > Philippe, > > Please see the attached file for > strace -f valgrind -v -v -v -d -d -d > output The trace confirms that the mmap syscall is failing: n64_write(--1953:1:main Starting the dynamic memory manager ) = 54 n64_mmap() = -1 EINVAL (Invalid argument) But we do not see the syscall args. Maybe you need to give an argument to strace to have them ? A possible cause could be the page size: as I understand, mips have different page size setup. If your valgrind has been compiled with a pagesize not matching your kernel/setup, then maybe Valgrind might ask wrongly aligned mmap requests, giving then this EINVAL You could then configure/compile valgrind, specifying the correct page size e.g. use the below configure option: --with-pagesize= override detected page size (4, 16 or 64) Philippe |
|
From: Zhu, Y. <Yan...@vi...> - 2015-04-10 21:24:49
|
Philippe, Please see the attached file for strace -f valgrind -v -v -v -d -d -d output Thanks, Yanwen -----Original Message----- From: Philippe Waroquiers [mailto:phi...@sk...] Sent: Friday, April 10, 2015 4:55 PM To: Zhu, Yanwen Cc: val...@li... Subject: RE: [Valgrind-users] valgrind out of memory error On Fri, 2015-04-10 at 20:27 +0000, Zhu, Yanwen wrote: > Also, I just looked at online: > https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mail-2Darchiv > e.com_valgrind-2Dusers-40lists.sourceforge.net_msg02027.html&d=AwICaQ& > c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=rAkQlM2psJuhxCfM2RLlYF > 9VSPgnp4OE1EdTCMEFlmc&m=qQDnkR1m0dMIHitUxu0e-9pkjZ-YcvHep9EUNsPqef8&s= > xVzNkqFJ9Olvmbh_F02lcPlsblIrgHs-sufLHrICw58&e= > > Is it a permission problem? It does not look like. But in any case, it looks like you are running Valgrind as root. This is very unusual, and should not be needed. Apart of that, the trace you gave shows that initialisation of the Valgrind malloc lib fails. A succesful startup of the Valgrind malloc lib would give: --13999:1: main Starting the dynamic memory manager --13999:1:mallocfr newSuperblock at 0x61C35000 (pszB 4194288) owner VALGRIND/core So, can you redo the -v -v -v -d -d -d experiment, but using strace to trace it i.e. strace -f valgrind -v -v -v -d -d -d A succesful startup results in a trace such as: [pid 13912] write(2, "--13912:1: main Starting the "..., 55--13912:1: main Starting the dynamic memory manager ) = 55 [pid 13912] mmap2(0x61e41000, 4194304, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, 0, 0) = 0x61e41000 [pid 13912] getpid() = 13912 [pid 13912] write(2, "--13912:1:mallocfr newSuperblock"..., 83--13912:1:mallocfr newSuperblock at 0x61E41000 (pszB 4194288) owner VALGRIND/core ) = 83 which shows the mmap syscall, and the resulting superblock trace. So, can you redo the trial with strace, and give the equivalent traces ? Probably the mmap fails. We can then see which address has been chosen by aspacemgr, the resulting errno, and all that could explain the failure Philippe |