Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Sep 2023 11:30:42 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 274103] geom_mirror should not use underlying provider with WRITE_PROTECTED flag
Message-ID:  <bug-274103-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D274103

            Bug ID: 274103
           Summary: geom_mirror should not use underlying provider with
                    WRITE_PROTECTED flag
           Product: Base System
           Version: Unspecified
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: ant_mail@inbox.ru

This is a horror story with production server that hanged and did not reboo=
t.
This was a rare case that one can't predict and it related to logic inside
geom_gmirror so I think  it is actual for all version of FreeBSD.

Background:
There was two SAS HDD: Toshiba and Seagate ST1800MM0129.
Both are GPT partitioned and three UFS paritition are mirrored on each othe=
r.

Failure:
There was an error from Seagate disk logged in /var/messages. Error seemed
serious. Because of no ability to physically remove Seagate from system the=
re=20
was a decision do logically detach it from system.
It've been realized by series of command like "gmirror detach". There was a
long time of each command. One command hangs, other command seems complete =
but
mirror status stayed the same. Because of this there was a decision to rebo=
ot.

After reboot system hangs during geom_mirror initialization.
Also tried a FreeBSD 13-STABLE USB-stick but result was the same.

Cause:
(this is mostly reconstruction because there was no time to explore problem
meaningfully)

After reboot (reinitialization?) Seagate ST1800MM0129 goes to read-only mode
because of internal hardware failure. It appear in camcontrol(?) with flag
MEDIUM: WRITE_PROTECTED. Geom_mirror unexpect this case and attach it as us=
ual
as part of a mirror. But with the first attempt to write to it hangs.


Summary:

geom_mirror must check each mirror component for WRITE_PROTECTED flag and do
not attach such a component to a mirror (at least during initialization)

P.S. Solution for people in this situation: use Seagate SeaChest tools for
FreeBSD to engage self-wiping process on failure disk. Disk will become cle=
an
and geom_mirror will initialize successfully.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-274103-227>