mdadm incremental failed: md device busy

mdadm incremental failed: md device busy

am 15.12.2010 18:50:11 von Spelic

Hi there
this happened:

# cat /proc/mdstat
....other arrays not including sdb3...
md2 : active raid1 sda3[0]
52428728 blocks super 1.2 [2/1] [U_]
bitmap: 6/200 pages [24KB], 128KB chunk
....other arrays not including sdb3...

strangely sdb3 was not added to array at boot, I am still investigating
that, but now see this:

# mdadm --incremental /dev/sdb3
mdadm: failed to open /dev/md2: Device or resource busy.


#strace mdadm --incremental /dev/sdb3
....lots of stuff, then...
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
nanosleep({0, 200000000}, NULL) = 0
open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource busy)
.........
write(2, "mdadm: failed to open /dev/md2: "..., 57mdadm: failed to open
/dev/md2: Device or resource busy.
) = 57


hmmm... strange thing, I just booted and md2 is not even mounted...
but now see this:

# mdadm /dev/md2 --add /dev/sdb3
mdadm: re-added /dev/sdb3

worked perfectly!

So?
Bug?

Thank you
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

Re: mdadm incremental failed: md device busy

am 15.12.2010 19:50:46 von Spelic

On 12/15/2010 06:50 PM, Spelic wrote:
> Hi there
> this happened:
>
> # cat /proc/mdstat
> ...other arrays not including sdb3...
> md2 : active raid1 sda3[0]
> 52428728 blocks super 1.2 [2/1] [U_]
> bitmap: 6/200 pages [24KB], 128KB chunk
> ...other arrays not including sdb3...
>
> strangely sdb3 was not added to array at boot, I am still
> investigating that, but now see this:
>
> # mdadm --incremental /dev/sdb3
> mdadm: failed to open /dev/md2: Device or resource busy.
>
>
> #strace mdadm --incremental /dev/sdb3
> ...lots of stuff, then...
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> nanosleep({0, 200000000}, NULL) = 0
> open("/dev/md2", O_RDWR|O_EXCL) = -1 EBUSY (Device or resource
> busy)
> ........
> write(2, "mdadm: failed to open /dev/md2: "..., 57mdadm: failed to
> open /dev/md2: Device or resource busy.
> ) = 57
>
>
> hmmm... strange thing, I just booted and md2 is not even mounted...
> but now see this:
>
> # mdadm /dev/md2 --add /dev/sdb3
> mdadm: re-added /dev/sdb3
>
> worked perfectly!
>
> So?
> Bug?
>
> Thank you

I add one detail: the drive probably had been kicked at boot because it
was non-fresh.

--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html