-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sun, Jun 19, 2016 at 05:15:47PM +0000, Andrey wrote: > Andrey <thatisme <at> inp.nsk.su> writes: > > > > On Fri, Jun 17, 2016 at 02:37:11PM +0000, Andrey wrote: > > > > <tomas <at> tuxteam.de> writes: > > > [...] > > > Sorry I wasn't clear: I was just talking about the errno -- we still > > > haven't an idea how it comes about. The manpage is but an approximation > > > to reality > > you are right, it's EAGAIN > "open $currname w" -> couldn't open ../../current/south/S_DAQconnMod.txt: > errorCode=POSIX EAGAIN {resource temporarily unavailable}
OK. So now we can be (more or less) sure it happens on open(2). Of course I'd sleep better if we had a way to positively know there's nothing happening behind our backs: perhaps Tcl is being extra clever[1] and Tcl's open does a bit more than just libc's/syscall's open() and we are seeing some spurious error from another system call: remember, error paths in the code tend to be less tested...) > although it's only confirmation to what has been already posted by > Sven Joachim <svenjoac <at> gmx.de> writes: > > On Linux, EWOULDBLOCK is #defined as EAGAIN in asm-generic/errno.h. > > Also they are always the same in the glibc, regardless of the operating > > system kernel. > > But how can I find out why it happens ? > Still have no hints how to proceed :( I fear I can't suggest much more than I have already. Keeping to user space (e.g. with the help of LD_PRELOAD) might help you find patterns (is this always in some region of the file system, is there any correlation to other logs in the system, etc.) But since user space only sees the kernel returning from a syscall with EAGAIN set, not "why", you'll end up trying to find out what the kernel is "thinking" to pin-point the cause. The more hints you collect (e.g. "Is it really open(2)?" "Is it always open(2)?" "Which files?") the better your chances to navigate through kernel code. I'd start setting up a "trap" (either by a suitable strace/ltrace incantation (easier) or with LD_PRELOAD (more difficult, and libc specific) to just log those events in a couple of chosen apps where you know from time to time. Try to extract as much info from those events (strace would tell you what system calls, which parameters, and so on). Sorry to be so unspecific regards - -- t -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAldnpJ4ACgkQBcgs9XrR2kZmpACeLcs1vzS/dmmgMLqhgf/UWhV8 RN8An1jAyNeFo53Y3+6P2jQOzxaW/GcR =CovP -----END PGP SIGNATURE-----