linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
To: Logan Gunthorpe <logang@deltatee.com>
Cc: linux-raid@vger.kernel.org, Jes Sorensen <jsorensen@fb.com>,
	Song Liu <song@kernel.org>, Christoph Hellwig <hch@infradead.org>,
	Donald Buczek <buczek@molgen.mpg.de>,
	Guoqing Jiang <guoqing.jiang@linux.dev>, Xiao Ni <xni@redhat.com>,
	Himanshu Madhani <himanshu.madhani@oracle.com>,
	Coly Li <colyli@suse.de>, Bruce Dubbs <bruce.dubbs@gmail.com>,
	Stephen Bates <sbates@raithlin.com>,
	Martin Oliveira <Martin.Oliveira@eideticom.com>,
	David Sloan <David.Sloan@eideticom.com>,
	Wu Guanghao <wuguanghao3@huawei.com>
Subject: Re: [PATCH mdadm v1 06/14] mdadm: Fix mdadm -r remove option regresision
Date: Mon, 20 Jun 2022 16:35:55 +0200	[thread overview]
Message-ID: <20220620163555.00005d74@linux.intel.com> (raw)
In-Reply-To: <20220609211130.5108-7-logang@deltatee.com>

On Thu,  9 Jun 2022 15:11:22 -0600
Logan Gunthorpe <logang@deltatee.com> wrote:

> The commit noted below globally adds a parameter to the -r option but missed
> the fact that -r is used for another purpose: --remove.
> 
> After that commit, a command such as:
> 
>   mdadm /dev/md0 -r /dev/loop0
> 
> will do nothing seeing the device parameter will be consumed as a
> argument to the -r option; thus, there will only be one device
> seen one the command line, devs_found will only be 1 and nothing will
> happen.
> 
> This caused the 01r5integ and 01raid6integ tests to hang indefinitely
> as mdadm did not remove the failed device. With the device not removed,
> it would not be readded. Then the loop waiting for the array status to
> change would loop forever.
> 
> To fix this, revert the changes in the noted patch and create a new subopt
> type for the monitor mode with parameters required for -r.
> 
> Fixes: 546047688e1c ("mdadm: fix coredump of mdadm --monitor -r")
> Cc: Wu Guanghao <wuguanghao3@huawei.com>
> Cc: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
> Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
> ---


>  ReadMe.c | 7 ++++---
>  mdadm.c  | 1 +
>  mdadm.h  | 1 +
>  3 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/ReadMe.c b/ReadMe.c
> index 8f873c4895da..556104f75d72 100644
> --- a/ReadMe.c
> +++ b/ReadMe.c
> @@ -81,11 +81,12 @@ char Version[] = "mdadm - v" VERSION " - " VERS_DATE
> EXTRAVERSION "\n";
>   *     found, it is started.
>   */
>  
> -char
> short_options[]="-ABCDEFGIQhVXYWZ:vqbc:i:l:p:m:r:n:x:u:c:d:z:U:N:safRSow1tye:k";
> +char
> short_options[]="-ABCDEFGIQhVXYWZ:vqbc:i:l:p:m:n:x:u:c:d:z:U:N:sarfRSow1tye:k";
> +char
> short_monitor_options[]="-ABCDEFGIQhVXYWZ:vqbc:i:l:p:m:r:n:x:u:c:d:z:U:N:safRSow1tye:k";
> char short_bitmap_options[]=
> -
> "-ABCDEFGIQhVXYWZ:vqb:c:i:l:p:m:r:n:x:u:c:d:z:U:N:sarfRSow1tye:k:";
> +
> "-ABCDEFGIQhVXYWZ:vqb:c:i:l:p:m:n:x:u:c:d:z:U:N:sarfRSow1tye:k:"; char
> short_bitmap_auto_options[]=
> -
> "-ABCDEFGIQhVXYWZ:vqb:c:i:l:p:m:r:n:x:u:c:d:z:U:N:sa:rfRSow1tye:k:";
> +
> "-ABCDEFGIQhVXYWZ:vqb:c:i:l:p:m:n:x:u:c:d:z:U:N:sa:rfRSow1tye:k:"; 
>  struct option long_options[] = {
>      {"manage",    0, 0, ManageOpt},
> diff --git a/mdadm.c b/mdadm.c
> index be40686cf91b..d0c5e6def901 100644
> --- a/mdadm.c
> +++ b/mdadm.c
> @@ -227,6 +227,7 @@ int main(int argc, char *argv[])
>  			shortopt = short_bitmap_auto_options;
>  			break;
>  		case 'F': newmode = MONITOR;
> +			shortopt = short_monitor_options;
>  			break;
>  		case 'G': newmode = GROW;
>  			shortopt = short_bitmap_options;
> diff --git a/mdadm.h b/mdadm.h
> index 09915a0009d9..559da3f6f440 100644
> --- a/mdadm.h
> +++ b/mdadm.h
> @@ -419,6 +419,7 @@ enum mode {
>  };
>  
>  extern char short_options[];
> +extern char short_monitor_options[];
>  extern char short_bitmap_options[];
>  extern char short_bitmap_auto_options[];
>  extern struct option long_options[];

Jes applied Nigel's revert but I cannot see it on repository yet.
I consider adding short monitor options as valuable.
Could you apply revert manually and then adopt your patch?
https://lore.kernel.org/linux-raid/5f9a4417-d044-a87e-3945-2c6b29278d8c@trained-monkey.org/#t

Thanks,
Mariusz

  reply	other threads:[~2022-06-20 15:04 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-09 21:11 [PATCH mdadm v1 00/14] Bug fixes and testing improvments Logan Gunthorpe
2022-06-09 21:11 ` [PATCH mdadm v1 01/14] Makefile: Don't build static build with everything Logan Gunthorpe
2022-06-20 14:08   ` Mariusz Tkaczyk
2022-06-22 16:39     ` Logan Gunthorpe
2022-06-09 21:11 ` [PATCH mdadm v1 02/14] DDF: Cleanup validate_geometry_ddf_container() Logan Gunthorpe
2022-06-20 14:14   ` Mariusz Tkaczyk
2022-06-09 21:11 ` [PATCH mdadm v1 03/14] DDF: Fix NULL pointer dereference in validate_geometry_ddf() Logan Gunthorpe
2022-06-20 14:13   ` Mariusz Tkaczyk
2022-06-09 21:11 ` [PATCH mdadm v1 04/14] mdadm/Grow: Fix use after close bug by closing after fork Logan Gunthorpe
2022-06-20 14:27   ` Mariusz Tkaczyk
2022-06-09 21:11 ` [PATCH mdadm v1 05/14] monitor: Avoid segfault when calling NULL get_bad_blocks Logan Gunthorpe
2022-06-20 14:29   ` Mariusz Tkaczyk
2022-06-09 21:11 ` [PATCH mdadm v1 06/14] mdadm: Fix mdadm -r remove option regresision Logan Gunthorpe
2022-06-20 14:35   ` Mariusz Tkaczyk [this message]
2022-06-20 15:26   ` Paul Menzel
2022-06-09 21:11 ` [PATCH mdadm v1 07/14] mdadm: Fix optional --write-behind parameter Logan Gunthorpe
2022-06-20 14:37   ` Mariusz Tkaczyk
2022-06-09 21:11 ` [PATCH mdadm v1 08/14] tests/00raid0: add a test that validates raid0 with layout fails for 0.9 Logan Gunthorpe
2022-06-09 21:11 ` [PATCH mdadm v1 09/14] tests: fix raid0 tests for 0.90 metadata Logan Gunthorpe
2022-06-09 21:11 ` [PATCH mdadm v1 10/14] tests/04update-metadata: avoid passing chunk size to raid1 Logan Gunthorpe
2022-06-09 21:11 ` [PATCH mdadm v1 11/14] tests/02lineargrow: clear the superblock at every iteration Logan Gunthorpe
2022-06-09 21:11 ` [PATCH mdadm v1 12/14] mdadm/test: Add a mode to repeat specified tests Logan Gunthorpe
2022-06-09 21:11 ` [PATCH mdadm v1 13/14] mdadm/test: Mark and ignore broken test failures Logan Gunthorpe
2022-06-09 21:11 ` [PATCH mdadm v1 14/14] tests: Add broken files for all broken tests Logan Gunthorpe
2022-06-10  9:49   ` Guoqing Jiang
2022-06-10 15:17     ` Logan Gunthorpe
2022-06-10 16:16   ` Donald Buczek
2022-06-10 10:14 ` [PATCH mdadm v1 00/14] Bug fixes and testing improvments Paul Menzel
2022-06-10 15:27   ` Logan Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220620163555.00005d74@linux.intel.com \
    --to=mariusz.tkaczyk@linux.intel.com \
    --cc=David.Sloan@eideticom.com \
    --cc=Martin.Oliveira@eideticom.com \
    --cc=bruce.dubbs@gmail.com \
    --cc=buczek@molgen.mpg.de \
    --cc=colyli@suse.de \
    --cc=guoqing.jiang@linux.dev \
    --cc=hch@infradead.org \
    --cc=himanshu.madhani@oracle.com \
    --cc=jsorensen@fb.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=logang@deltatee.com \
    --cc=sbates@raithlin.com \
    --cc=song@kernel.org \
    --cc=wuguanghao3@huawei.com \
    --cc=xni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).