.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "STATE_ANALYZER 8" .TH STATE_ANALYZER 8 2024-02-03 OpenAFS "AFS Command Reference" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME state_analyzer \- Explores and queries the fileserver state database interactively .SH SYNOPSIS .IX Header "SYNOPSIS" \&\fBstate_analyzer\fR [\fIstate\ dump\ file\fR\ |\ \fB\-h\fR] .SH DESCRIPTION .IX Header "DESCRIPTION" The demand-attach file server makes host / callback information persistent. On shutdown, the state is saved to database \fBfsstate.dat\fR\|(5). On startup, the state is read, verified and restored. This allows for file server shutdowns or restarts without breaking all callbacks (an operation that could otherwise take a long time). .PP \&\fBstate_analyzer\fR interactively explores and queries the saved state database, \fBfsstate.dat\fR\|(5). .PP This command is only supported on the demand-attach file server. It operates at an extremely low-level and hence requires detailed knowledge of the OpenAFS architecture and code. .SH COMMANDS .IX Header "COMMANDS" \&\fBstate_analyzer\fR supports the following interactive commands: .IP "\fBh <...\fR> \-\- host menu" 4 .IX Item "h <...> -- host menu" .RS 4 .PD 0 .IP \(bu 4 .PD \&\fBhdr\fR \-\- display the host_state_header struct .IP \(bu 4 \&\fBfirst\fR \-\- display the first host .IP \(bu 4 \&\fBprev\fR \-\- display the previous host .IP \(bu 4 \&\fBthis\fR \-\- display this host .IP \(bu 4 \&\fBnext\fR \-\- display the next host .IP \(bu 4 \&\fBlast\fR \-\- display the last host .IP \(bu 4 \&\fBdump\fR \-\- display all hosts .RE .RS 4 .RE .IP "\fBfe <...\fR> \-\- FileEntry menu" 4 .IX Item "fe <...> -- FileEntry menu" .RS 4 .PD 0 .IP \(bu 4 .PD \&\fBhdr\fR \-\- display the callback_state_header struct .IP \(bu 4 \&\fBfirst\fR \-\- display the first FE .IP \(bu 4 \&\fBprev\fR \-\- display the previous FE .IP \(bu 4 \&\fBthis\fR \-\- display this FE .IP \(bu 4 \&\fBnext\fR \-\- display the next FE .IP \(bu 4 \&\fBlast\fR \-\- display the last FE .IP \(bu 4 \&\fBdump\fR \-\- display all FEs .IP \(bu 4 \&\fBtimeout\fR \-\- display the timeout queue heads .IP \(bu 4 \&\fBhash\fR \-\- display the file entry hash buckets .IP \(bu 4 \&\fBfind by index \fR\f(BIid\fR \-\- find an fe by its array index .IP \(bu 4 \&\fBfind by fid \fR\f(BI(vol,vnode,unique)\fR \-\- find an fe by its AFSFid .RE .RS 4 .RE .IP "\fBcb <...\fR> \-\- CallBack menu" 4 .IX Item "cb <...> -- CallBack menu" .RS 4 .PD 0 .IP \(bu 4 .PD \&\fBhdr\fR \-\- display the callback_state_entry_header struct .IP \(bu 4 \&\fBfirst\fR \-\- display the first CB .IP \(bu 4 \&\fBprev\fR \-\- display the previous CB .IP \(bu 4 \&\fBthis\fR \-\- display this CB .IP \(bu 4 \&\fBnext\fR \-\- display the next CB .IP \(bu 4 \&\fBlast\fR \-\- display the last CB .IP \(bu 4 \&\fBdump\fR \-\- display all CBs .RE .RS 4 .RE .IP "\fBhexdump [offset [len]]\fR \-\- hex dump raw data" 4 .IX Item "hexdump [offset [len]] -- hex dump raw data" .PD 0 .IP "\fBquit\fR \-\- quit current menu" 4 .IX Item "quit -- quit current menu" .IP "\fBexit\fR \-\- exit debugger" 4 .IX Item "exit -- exit debugger" .IP "\fBhelp\fR \-\- help message" 4 .IX Item "help -- help message" .PD .SH "PRIVILEGE REQUIRED" .IX Header "PRIVILEGE REQUIRED" The issuer must have read access to the file server state database, \&\fIfsstate.dat\fR. Usually, this means that the issuer must be the local superuser \f(CW\*(C`root\*(C'\fR on the file server machine. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBfsstate.dat\fR\|(5), \&\fBfssync\-debug\fR\|(8), \&\fBsalvsync\-debug\fR\|(8) .SH COPYRIGHT .IX Header "COPYRIGHT" Copyright 2010 Davor Ocelic .PP This documentation is covered by the IBM Public License Version 1.0. This man page was written by Davor Ocelic for OpenAFS, based on documentation from Tom Keiser, Steven Jenkins and others.