[OpenAFS] Re: Large files with 1.6.0pre2
Ryan C. Underwood
nemesis@icequake.net
Sat, 5 Mar 2011 15:31:37 -0600
On Sat, Mar 05, 2011 at 01:47:55PM -0600, Andrew Deason wrote:
> That would be helpful. But if you want to look yourself, I'd find a
> failed pread, or even an open, stat, fstat to be more likely, or a short
> read.
>
> The best way is probably to look for the actual file in the log, though.
> You can get the filename from the fid, and you can get the fid from 'fs
> getfid'. First get the fid by just running 'fs getfid' on it on the
> client. Then, on the server, you can run
No such luck, am I doing something wrong?
I started strace -f before I opened the file.
Then I used dd to seek to the end of the file and attempt to append.
The volume was offlined/salvaged as expected.
Then I stopped strace.
# fs getfid /afs/.icequake.net/tmp/tempfile
File /afs/.icequake.net/tmp/tempfile (536870981.175772.399580) located in cell icequake.net
# volinfo /vicepa 536870981 -filenames |grep 175772
5624640 Vnode 175772.399580.76 cloned: 0, length: 2147483648 linkCount: 1 parent: 1 UFS-Filename: /vicepa/AFSIDat/3=/3=++U/8/L3/Que++kB44
Unfortunately, this node is nowhere opened in the log.
# grep open /tmp/fslog
[pid 17994] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
[pid 18102] access("/var/log/openafs/FileLog", F_OK <unfinished ...>
[pid 17980] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
[pid 18068] open("/vicepa/AFSIDat/h/h+++U/0/S=/Im9++gM1=", O_RDWR|O_LARGEFILE) = 97
[pid 18040] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
[pid 18040] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
[pid 18002] open("/vicepa/AFSIDat/h/h+++U/S/H5/KSu=+2957", O_RDWR|O_LARGEFILE) = 102
[pid 17989] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
[pid 18025] open("/vicepa/AFSIDat/h/h+++U/0/S=/sl9++kL1=", O_RDWR|O_LARGEFILE) = 110
[pid 18069] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
[pid 17978] open("/vicepa/AFSIDat/F/F2++U/0/==/yC6++I9G", O_RDWR|O_LARGEFILE) = 148
[pid 18004] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
[pid 18102] access("/var/log/openafs/FileLog", F_OK) = 0
[pid 17988] open("/vicepa/AFSIDat/h/h+++U/0/S=/gl9++IL1=", O_RDWR|O_LARGEFILE) = 155
[pid 18079] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
[pid 18032] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
[pid 18064] open("/vicepa/AFSIDat/O/O2++U/+/=/gC+++oV", O_RDWR|O_LARGEFILE) = 215
[pid 17985] open("/vicepa/AFSIDat/h/h+++U/3/r0/2uK++YUW=", O_RDWR|O_LARGEFILE) = 216
[pid 18097] open("/vicepa/AFSIDat/h/h+++U/8/A3/2bd+2IIm0", O_RDWR|O_LARGEFILE) = 200
[pid 18097] open("/vicepa/AFSIDat/h/h+++U/8/A3/2bd++IIm0", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_LARGEFILE, 0) = 67
[pid 18097] open("/vicepa/AFSIDat/h/h+++U/8/A3/2bd++IIm0", O_RDWR|O_LARGEFILE) = 67
[pid 18097] open("/vicepa/AFSIDat/h/h+++U/special/zzzzPo0+++0", O_RDWR|O_LARGEFILE) = 202
[pid 17978] open("/vicepa/AFSIDat/h/h+++U/=/n/1P4++AoB3", O_RDWR|O_LARGEFILE) = 200
[pid 18034] open("/vicepa/AFSIDat/h/h+++U/=/n/5P4++IoB3", O_RDWR|O_LARGEFILE) = 203
[pid 18026] open("/vicepa/AFSIDat/h/h+++U/0/9=/AN7++ECD3", O_RDWR|O_LARGEFILE) = 205
[pid 18006] open("/vicepa/AFSIDat/h/h+++U/F/w/wU5=+QoB3", O_RDWR|O_LARGEFILE) = 217
[pid 18019] open("/vicepa/AFSIDat/h/h+++U/8/A3/yad++YHm0", O_RDWR|O_LARGEFILE) = 221
[pid 18100] stat64("/etc/openafs/server/CellServDB", {st_mode=S_IFREG|0644, st_size=80, ...}) = 0
I also looked for any read, seek, or stat call that returned negative.
No luck. It seems like all the threads are being captured...
--
Ryan C. Underwood, <nemesis@icequake.net>