Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Mar 2023 21:42:41 +0200
From:      Tomek CEDRO <tomek@cedro.info>
To:        Robert Fitzpatrick <robert@webtent.org>
Cc:        FreeBSD <freebsd-questions@freebsd.org>, michael@fuckner.net
Subject:   Re: Adaptec RAID 2020SA raid status
Message-ID:  <CAFYkXjnhCRo-j%2BomKzLaifgTC_=ejJMWOnk_g5TZPSX-wTQ=NQ@mail.gmail.com>
In-Reply-To: <86532220-d7df-0462-498b-3cb66c6a39bc@webtent.org>
References:  <86532220-d7df-0462-498b-3cb66c6a39bc@webtent.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 28, 2023 at 8:53=E2=80=AFPM Robert Fitzpatrick wrote:
>
> I installed FreeBSD 13.1 on an old Supermicro server that uses Adaptec
> STAT RAID 2020SA hardware raid and want to do health checks:
> (..)
> Can someone advise on how to get arcconf working or another way to
> monitor the RAID status?

I have ASR-2405 Adaptec RAID controller as SATA ports onboard are
full.. but I keep optical drives on it.

There is a dedicated BIOS menu for this card that you can trigger on
boot to see the card status settingc etc.

It only works in BIOS mode (prompt is not visible when UEFI boot is
selected). Also you may want to enable "cards prompt to firmware
settings" or something like that if the card firmware prompt does not
show up. The prompt should show before POST screen or after POST
screen and right before the OS loader prompt (I do not remember
exactly and that also may depend on your machine).

Regarding the RAID status I am using ZFS ZRAID2 and its status can be
verified with zpool.

Regarding the arcconf it core dumps for me too on `arcconf getconfig 1`.

Building port with debug symbols allows seeing the backtrace:

root@octagon:/usr/ports/sysutils/arcconf # make clean; make reinstall
WITH_DEBUG=3Dyes

then

root@octagon:/usr/ports/sysutils/arcconf # lldb arcconf getconfig 1
(lldb) target create "arcconf"
Current executable set to 'arcconf' (x86_64).
(lldb) settings set -- target.run-args  "getconfig" "1"
(lldb) run
Process 31060 launched: '/usr/local/sbin/arcconf' (x86_64)
Controllers found: 1
Process 31060 stopped
* thread #1, name =3D 'arcconf', stop reason =3D signal SIGSEGV: invalid
address (fault address: 0x0)
    frame #0: 0x0000000000000000
error: memory read failed for 0x0
(lldb) bt
* thread #1, name =3D 'arcconf', stop reason =3D signal SIGSEGV: invalid
address (fault address: 0x0)
  * frame #0: 0x0000000000000000
    frame #1: 0x00000000005c6a64
arcconf`ArcPhysicalDeviceAttach::setFsaInfo(FSA_STORAGE_DEVICE_INFO
const*, FSA_SMART_DATA const*) + 3124
    frame #2: 0x00000000005c782d
arcconf`ArcPhysicalDeviceAttach::ArcPhysicalDeviceAttach(Channel*,
PhysicalDevice*, FSA_STORAGE_DEVICE_INFO const*, FSA_SMART_DATA
const*) + 797
    frame #3: 0x00000000005a0c79 arcconf`ArcAdapter::buildChildren(Ret&) + =
4457
    frame #4: 0x00000000005d000c
arcconf`ArcSystem::buildChildrenForSingleAdapter(StorLib*, unsigned
long, Ret&, EnumGetSystemConfigType) + 892
    frame #5: 0x00000000004f1d70
arcconf`StorLib::getSystemConfigForSingleAdapter(unsigned long,
EnumGetSystemConfigType) + 112
    frame #6: 0x00000000004072fe arcconf`main + 2190
    frame #7: 0x00000000004094df arcconf`_start + 383


The same for rescan:

root@octagon:/usr/ports/sysutils/arcconf # arcconf rescan 1
Controllers found: 1
Segmentation fault (core dumped)
root@octagon:/usr/ports/sysutils/arcconf #
root@octagon:/usr/ports/sysutils/arcconf #
root@octagon:/usr/ports/sysutils/arcconf # lldb arcconf rescan 1
(lldb) target create "arcconf"
Current executable set to 'arcconf' (x86_64).
(lldb) settings set -- target.run-args  "rescan" "1"
(lldb) run
Process 36179 launched: '/usr/local/sbin/arcconf' (x86_64)
Controllers found: 1
Process 36179 stopped
* thread #1, name =3D 'arcconf', stop reason =3D signal SIGSEGV: invalid
address (fault address: 0x0)
    frame #0: 0x0000000000000000
error: memory read failed for 0x0
(lldb) bt
* thread #1, name =3D 'arcconf', stop reason =3D signal SIGSEGV: invalid
address (fault address: 0x0)
  * frame #0: 0x0000000000000000
    frame #1: 0x00000000005c6a64
arcconf`ArcPhysicalDeviceAttach::setFsaInfo(FSA_STORAGE_DEVICE_INFO
const*, FSA_SMART_DATA const*) + 3124
    frame #2: 0x00000000005c782d
arcconf`ArcPhysicalDeviceAttach::ArcPhysicalDeviceAttach(Channel*,
PhysicalDevice*, FSA_STORAGE_DEVICE_INFO const*, FSA_SMART_DATA
const*) + 797
    frame #3: 0x00000000005a0c79 arcconf`ArcAdapter::buildChildren(Ret&) + =
4457
    frame #4: 0x00000000005d000c
arcconf`ArcSystem::buildChildrenForSingleAdapter(StorLib*, unsigned
long, Ret&, EnumGetSystemConfigType) + 892
    frame #5: 0x00000000004f1d70
arcconf`StorLib::getSystemConfigForSingleAdapter(unsigned long,
EnumGetSystemConfigType) + 112
    frame #6: 0x00000000004072fe arcconf`main + 2190
    frame #7: 0x00000000004094df arcconf`_start + 383


The same for getstatus:

root@octagon:/usr/ports/sysutils/arcconf # lldb arcconf getstatus 1
(lldb) target create "arcconf"
Current executable set to 'arcconf' (x86_64).
(lldb) settings set -- target.run-args  "getstatus" "1"
(lldb) run
Process 39367 launched: '/usr/local/sbin/arcconf' (x86_64)
Controllers found: 1
Process 39367 stopped
* thread #1, name =3D 'arcconf', stop reason =3D signal SIGSEGV: invalid
address (fault address: 0x0)
    frame #0: 0x0000000000000000
error: memory read failed for 0x0
(lldb) bt
* thread #1, name =3D 'arcconf', stop reason =3D signal SIGSEGV: invalid
address (fault address: 0x0)
  * frame #0: 0x0000000000000000
    frame #1: 0x00000000005c6a64
arcconf`ArcPhysicalDeviceAttach::setFsaInfo(FSA_STORAGE_DEVICE_INFO
const*, FSA_SMART_DATA const*) + 3124
    frame #2: 0x00000000005c782d
arcconf`ArcPhysicalDeviceAttach::ArcPhysicalDeviceAttach(Channel*,
PhysicalDevice*, FSA_STORAGE_DEVICE_INFO const*, FSA_SMART_DATA
const*) + 797
    frame #3: 0x00000000005a0c79 arcconf`ArcAdapter::buildChildren(Ret&) + =
4457
    frame #4: 0x00000000005d000c
arcconf`ArcSystem::buildChildrenForSingleAdapter(StorLib*, unsigned
long, Ret&, EnumGetSystemConfigType) + 892
    frame #5: 0x00000000004f1d70
arcconf`StorLib::getSystemConfigForSingleAdapter(unsigned long,
EnumGetSystemConfigType) + 112
    frame #6: 0x00000000004072fe arcconf`main + 2190
    frame #7: 0x00000000004094df arcconf`_start + 383


The same for getlogs:

root@octagon:/usr/ports/sysutils/arcconf # lldb arcconf getlogs 1
(lldb) target create "arcconf"
Current executable set to 'arcconf' (x86_64).
(lldb) settings set -- target.run-args  "getlogs" "1"
(lldb) run
Process 45845 launched: '/usr/local/sbin/arcconf' (x86_64)
Controllers found: 1
Process 45845 stopped
* thread #1, name =3D 'arcconf', stop reason =3D signal SIGSEGV: invalid
address (fault address: 0x0)
    frame #0: 0x0000000000000000
error: memory read failed for 0x0
(lldb) bt
* thread #1, name =3D 'arcconf', stop reason =3D signal SIGSEGV: invalid
address (fault address: 0x0)
  * frame #0: 0x0000000000000000
    frame #1: 0x00000000005c6a64
arcconf`ArcPhysicalDeviceAttach::setFsaInfo(FSA_STORAGE_DEVICE_INFO
const*, FSA_SMART_DATA const*) + 3124
    frame #2: 0x00000000005c782d
arcconf`ArcPhysicalDeviceAttach::ArcPhysicalDeviceAttach(Channel*,
PhysicalDevice*, FSA_STORAGE_DEVICE_INFO const*, FSA_SMART_DATA
const*) + 797
    frame #3: 0x00000000005a0c79 arcconf`ArcAdapter::buildChildren(Ret&) + =
4457
    frame #4: 0x00000000005d000c
arcconf`ArcSystem::buildChildrenForSingleAdapter(StorLib*, unsigned
long, Ret&, EnumGetSystemConfigType) + 892
    frame #5: 0x00000000004f1d70
arcconf`StorLib::getSystemConfigForSingleAdapter(unsigned long,
EnumGetSystemConfigType) + 112
    frame #6: 0x00000000004072fe arcconf`main + 2190
    frame #7: 0x00000000004094df arcconf`_start + 383


No matter what command trace looks always the same. Seems like a bug
in the application that prevents the initial read of the device
info..?

There is no man page for arcconf:

root@octagon:/usr/ports/sysutils/arcconf # man arcconf
No manual entry for arcconf

There seems to be no source code to analyze, just a binary builds
provided by MicroSemi / Microchip.

I am attaching port maintainer, maybe Michael will be able to help? :-)

--=20
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFYkXjnhCRo-j%2BomKzLaifgTC_=ejJMWOnk_g5TZPSX-wTQ=NQ>