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

Reply via email to