Sure - it's attached. I ran exactly the code I posted earlier.
-crispy
On 12/14/2010 07:25 PM, Sam Lang wrote:
Hi Chris,
Would you be willing to run your test with strace and post the output? That
will help us figure out what read/write system calls PVFS is getting from your
app.
Thanks,
-sam
On Dec 14, 2010, at 4:29 PM, Chris Poultney wrote:
All-
I'm having a problem where files written to a PVFS volume overwrite the
beginning of the file after some output has already been generated, as if
lseek() had been called mid-write. The overwriting behavior does not show up on
a regular ext3 volume. Sample code is attached. I'd like to know if anyone can
duplicate this behavior, because it looks like a bug.
Essentially what happens is this: given a large (1024+ character) string, I
write some portion of the string using a C++ ostream, then write another line:
out<< st.substr(0, N);
out<< "done";
If N< 1024, everything is fine. If N>= 1024, "done" is written at the
beginning of the file, overwriting what was there before.
I'd love to figure this out!
Cheers,
-crispy
<pvfstest.cpp>_______________________________________________
Pvfs2-users mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users
execve("/home/crispy/tmp/pvfstest", ["/home/crispy/tmp/pvfstest"], [/* 27 vars
*/]) = 0
brk(0) = 0x21f8000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7ff2fa6f7000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=33131, ...}) = 0
mmap(NULL, 33131, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff2fa6ee000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\244\5\0\0\0\0\0"..., 832) =
832
fstat(3, {st_mode=S_IFREG|0644, st_size=1044112, ...}) = 0
mmap(NULL, 3223608, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7ff2fa1c6000
mprotect(0x7ff2fa2bc000, 2097152, PROT_NONE) = 0
mmap(0x7ff2fa4bc000, 36864, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf6000) = 0x7ff2fa4bc000
mmap(0x7ff2fa4c5000, 81976, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff2fa4c5000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360>\0\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=534832, ...}) = 0
mmap(NULL, 2629864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7ff2f9f43000
mprotect(0x7ff2f9fc5000, 2093056, PROT_NONE) = 0
mmap(0x7ff2fa1c4000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x81000) = 0x7ff2fa1c4000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200-\0\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=92552, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7ff2fa6ed000
mmap(NULL, 2188280, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7ff2f9d2c000
mprotect(0x7ff2f9d42000, 2093056, PROT_NONE) = 0
mmap(0x7ff2f9f41000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7ff2f9f41000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\355\1\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1572232, ...}) = 0
mmap(NULL, 3680296, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7ff2f99a9000
mprotect(0x7ff2f9b23000, 2093056, PROT_NONE) = 0
mmap(0x7ff2f9d22000, 20480, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x179000) = 0x7ff2f9d22000
mmap(0x7ff2f9d27000, 18472, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff2f9d27000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7ff2fa6ec000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7ff2fa6ea000
arch_prctl(ARCH_SET_FS, 0x7ff2fa6ea720) = 0
mprotect(0x7ff2f9d22000, 16384, PROT_READ) = 0
mprotect(0x7ff2f9f41000, 4096, PROT_READ) = 0
mprotect(0x7ff2fa1c4000, 4096, PROT_READ) = 0
mprotect(0x7ff2fa4bc000, 28672, PROT_READ) = 0
mprotect(0x601000, 4096, PROT_READ) = 0
mprotect(0x7ff2fa6f9000, 4096, PROT_READ) = 0
munmap(0x7ff2fa6ee000, 33131) = 0
brk(0) = 0x21f8000
brk(0x2219000) = 0x2219000
open("test1.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
write(3, "0xxxxxxxxx1xxxxxxxxx2xxxxxxxxx3x"..., 1056) = 1056
close(3) = 0
open("test2.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
writev(3, [{NULL, 0}, {"0xxxxxxxxx1xxxxxxxxx2xxxxxxxxx3x"..., 1024}], 2) = 1024
write(3, "\n--- should be the last line ---"..., 33) = 33
close(3) = 0
exit_group(0) = ?
_______________________________________________
Pvfs2-users mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users