7277 zdb should be able to print zfs_dbgmsg's
illumos/illumos-gate@29bdd2f916
29bdd2f916
https://www.illumos.org/issues/7277
ztest always prints the debug messages (zfs_dbgmsg()) by calling
zfs_dbgmsg_print(). We should add a flag to zdb to make it do this as well
before exiting.
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Author: Pavel Zakharov <pavel.zakharov@delphix.com>
This commit is contained in:
parent
4b498e5e9d
commit
9d4cd9e2d9
@ -21,7 +21,7 @@
|
||||
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2011, 2015 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2011, 2016 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2014 Integros [integros.com]
|
||||
*/
|
||||
|
||||
@ -117,7 +117,7 @@ static void
|
||||
usage(void)
|
||||
{
|
||||
(void) fprintf(stderr,
|
||||
"Usage: %s [-CumMdibcsDvhLXFPA] [-t txg] [-e [-p path...]] "
|
||||
"Usage: %s [-CumMdibcsDvhLXFPAG] [-t txg] [-e [-p path...]] "
|
||||
"[-U config] [-I inflight I/Os] [-x dumpdir] poolname [object...]\n"
|
||||
" %s [-divPA] [-e -p path...] [-U config] dataset "
|
||||
"[object...]\n"
|
||||
@ -178,12 +178,23 @@ usage(void)
|
||||
(void) fprintf(stderr, " -I <number of inflight I/Os> -- "
|
||||
"specify the maximum number of "
|
||||
"checksumming I/Os [default is 200]\n");
|
||||
(void) fprintf(stderr, " -G dump zfs_dbgmsg buffer before "
|
||||
"exiting\n");
|
||||
(void) fprintf(stderr, "Specify an option more than once (e.g. -bb) "
|
||||
"to make only that option verbose\n");
|
||||
(void) fprintf(stderr, "Default is to dump everything non-verbosely\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
static void
|
||||
dump_debug_buffer()
|
||||
{
|
||||
if (dump_opt['G']) {
|
||||
(void) printf("\n");
|
||||
zfs_dbgmsg_print("zdb");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Called for usage errors that are discovered after a call to spa_open(),
|
||||
* dmu_bonus_hold(), or pool_match(). abort() is called for other errors.
|
||||
@ -200,6 +211,8 @@ fatal(const char *fmt, ...)
|
||||
va_end(ap);
|
||||
(void) fprintf(stderr, "\n");
|
||||
|
||||
dump_debug_buffer();
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -3076,8 +3089,10 @@ dump_zpool(spa_t *spa)
|
||||
if (dump_opt['h'])
|
||||
dump_history(spa);
|
||||
|
||||
if (rc != 0)
|
||||
if (rc != 0) {
|
||||
dump_debug_buffer();
|
||||
exit(rc);
|
||||
}
|
||||
}
|
||||
|
||||
#define ZDB_FLAG_CHECKSUM 0x0001
|
||||
@ -3547,7 +3562,7 @@ main(int argc, char **argv)
|
||||
spa_config_path = spa_config_path_env;
|
||||
|
||||
while ((c = getopt(argc, argv,
|
||||
"bcdhilmMI:suCDRSAFLXx:evp:t:U:P")) != -1) {
|
||||
"bcdhilmMI:suCDRSAFLXx:evp:t:U:PG")) != -1) {
|
||||
switch (c) {
|
||||
case 'b':
|
||||
case 'c':
|
||||
@ -3563,6 +3578,7 @@ main(int argc, char **argv)
|
||||
case 'M':
|
||||
case 'R':
|
||||
case 'S':
|
||||
case 'G':
|
||||
dump_opt[c]++;
|
||||
dump_all = 0;
|
||||
break;
|
||||
@ -3797,6 +3813,8 @@ main(int argc, char **argv)
|
||||
fuid_table_destroy();
|
||||
sa_loaded = B_FALSE;
|
||||
|
||||
dump_debug_buffer();
|
||||
|
||||
libzfs_fini(g_zfs);
|
||||
kernel_fini();
|
||||
|
||||
|
@ -11,15 +11,15 @@
|
||||
.\"
|
||||
.\"
|
||||
.\" Copyright 2012, Richard Lowe.
|
||||
.\" Copyright (c) 2012, 2014 by Delphix. All rights reserved.
|
||||
.\" Copyright (c) 2012, 2016 by Delphix. All rights reserved.
|
||||
.\"
|
||||
.TH "ZDB" "1M" "March 6, 2014" "" ""
|
||||
.TH "ZDB" "1M" "Feb 4, 2016" "" ""
|
||||
|
||||
.SH "NAME"
|
||||
\fBzdb\fR - Display zpool debugging and consistency information
|
||||
|
||||
.SH "SYNOPSIS"
|
||||
\fBzdb\fR [-CumdibcsDvhLMXFPA] [-e [-p \fIpath\fR...]] [-t \fItxg\fR]
|
||||
\fBzdb\fR [-CumdibcsDvhLMXFPAG] [-e [-p \fIpath\fR...]] [-t \fItxg\fR]
|
||||
[-U \fIcache\fR] [-I \fIinflight I/Os\fR] [-x \fIdumpdir\fR]
|
||||
[\fIpoolname\fR [\fIobject\fR ...]]
|
||||
|
||||
@ -397,6 +397,17 @@ Attempt to make an unreadable pool readable by trying progressively older
|
||||
transactions.
|
||||
.RE
|
||||
|
||||
.sp
|
||||
.ne 2
|
||||
.na
|
||||
\fB-G\fR
|
||||
.ad
|
||||
.sp .6
|
||||
.RS 4n
|
||||
Dump the contents of the zfs_dbgmsg buffer before exiting zdb. zfs_dbgmsg is
|
||||
a buffer used by ZFS to dump advanced debug information.
|
||||
.RE
|
||||
|
||||
.sp
|
||||
.ne 2
|
||||
.na
|
||||
|
Loading…
x
Reference in New Issue
Block a user