Hide Forgot
Description of problem: When I am writing into a file from 1 client and reading the file from the other, sometimes the read succeeds with a non-zero exit status. Version-Release number of selected component (if applicable): 3.3.0qa19 How reproducible: On client1: while true; do echo 'sdsd' > dot; sleep 1; rm -rf dot; done On client2: cat dot Actual results: # cat dot sdsd cat: dot: No such file or directory Additional info: When quick-read was disabled, this issue was not reproducible. Strace output- open("/usr/lib/locale/locale-archive", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=8363680, ...}) = 0 mmap(NULL, 8363680, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fec2df40000 close(3) = 0 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 8), ...}) = 0 open("dot", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0640, st_size=5, ...}) = 0 mmap(NULL, 139264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fec2ecd5000 read(3, "sdsd\n", 131072) = 5 write(1, "sdsd\n", 5) = 5 read(3, 0x7fec2ecd6000, 131072) = -1 ENOENT (No such file or directory) write(2, "cat: ", 5cat: ) = 5 write(2, "dot", 3dot) = 3 open("/usr/share/locale/locale.alias", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fec2ecd4000 read(4, "# Locale name alias data base.\n#"..., 4096) = 2570 read(4, "", 4096) = 0 close(4) = 0 munmap(0x7fec2ecd4000, 4096) = 0
This seems to be a cache-coherency issue.Consider following sequence of events: 1.file was cached during lookup on client1, 2.file was deleted on client2. 3.During first read, cache-timeout did not happen (1 sec is default timeout) and hence file was served from quick-read cache. 4.However, during second read, timeout did happen and validation was failed since file was removed from client2. If one doesn't wants to run into cache-coherency issues, its advised to set the cache-timeout to zero. Closing this bug for now. regards, Raghavendra.