|
From: Radoslaw K. <ku...@9l...> - 2016-12-08 10:28:22
|
W dniu 08.12.2016 o 11:12, Ivo Raisr pisze: > > > 2016-12-07 13:54 GMT+01:00 Radoslaw Kujawa <ku...@9l... > <mailto:ku...@9l...>>: > > Hi Ivo, > > here is the log that appeared when we switched on trace-syscalls: > > SYSCALL[28094,1](89) sys_readlink ( 0x374581b667(/proc/self/exe), > 0xffeffec10, 4096 ) --> [pre-success] Success(0x52) > valgrind: m_syswrap/syswrap-main.c:1938 (vgPlain_client_syscall): > Assertion '0 == (sci->flags & ~(SfPollAfter | SfYieldAfter | > SfNoWriteResult))' failed. > > > Hi Radek, > > Thanks to the log you provided, I was able to quickly analyse the > situation and get to the root cause. > Pre-syscall wrapper for sys_readlink in syswrap-generic.c sets > SfMayBlock unconditionally (via FUSE_COMPATIBLE_MAY_BLOCK) > in the anticipation that the subsequent real syscall may block. > However in some cases, such as when operating on /proc/self/exe, the > wrapper calls the real syscall > itself and therefore SfMayBlock should not have been set. > > If you are able to compile Valgrind from sources, I can prepare a > small patch for you to test. > Unfortunately I don't have an environment to test with FUSE for you. > I. Yes, we can recompile Valgrind. We will be grateful if you prepare a patch for us. If it occurs that this patch resolves the problem, do you think we should report it as a bug via bugzilla? Radek |