oxidecomputer / oxidecomputer/omicron
xde driver not reloaded after update
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
tl;dr: it looks like a recent change updated xde, but the dev tooling / process does not actually reload the driver and that seems like a bug.
I went to deploy Omicron on maxwell (a lab PC). It had previously been set up on relatively old bits (probably like 6 weeks old), then rebooted, then was sitting for a few weeks.
Following the usual instructions, from the old git commit I ran omicron-package uninstall and destroy_virtual_hardware.sh. Then I moved to basically 63ca0f9d9603ee486241be1d541cdcc5101e9dc2 (the tip of "main"), ran install_prerequisites.sh, and proceeded with a standard setup. The omicron-package install step failed with:
Nov 02 23:20:08.738 WARN Deleting Omicron bootstrap VNIC, vnic_name: bootstrap0
Nov 02 23:20:08.757 WARN Deleting Omicron bootstrap etherstub, stub_name: bootstrap_stub0
Error: Failure interacting with the OPTE ioctl(2) interface: command ListPorts failed: BadApiVersion { user: 25, kernel: 23 }
Caused by:
command ListPorts failed: BadApiVersion { user: 25, kernel: 23 }
I got some help in chat. I reran install_prerequisites (which I had already done). Here's the full output:
dap@maxwell ~/omicron $ . env.sh
++++ dirname env.sh
+++ cd .
+++ echo /home/dap/omicron
++ OMICRON_WS=/home/dap/omicron
++ export PATH=/home/dap/omicron/out/cockroachdb/bin:/home/dap/.cargo/bin:/home/dap/bin:/opt/ooce/sbin:/opt/ooce/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
++ PATH=/home/dap/omicron/out/cockroachdb/bin:/home/dap/.cargo/bin:/home/dap/bin:/opt/ooce/sbin:/opt/ooce/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
++ export PATH=/home/dap/omicron/out/clickhouse:/home/dap/omicron/out/cockroachdb/bin:/home/dap/.cargo/bin:/home/dap/bin:/opt/ooce/sbin:/opt/ooce/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
++ PATH=/home/dap/omicron/out/clickhouse:/home/dap/omicron/out/cockroachdb/bin:/home/dap/.cargo/bin:/home/dap/bin:/opt/ooce/sbin:/opt/ooce/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
++ export PATH=/home/dap/omicron/out/dendrite-stub/bin:/home/dap/omicron/out/clickhouse:/home/dap/omicron/out/cockroachdb/bin:/home/dap/.cargo/bin:/home/dap/bin:/opt/ooce/sbin:/opt/ooce/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
++ PATH=/home/dap/omicron/out/dendrite-stub/bin:/home/dap/omicron/out/clickhouse:/home/dap/omicron/out/cockroachdb/bin:/home/dap/.cargo/bin:/home/dap/bin:/opt/ooce/sbin:/opt/ooce/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
++ export PATH=/home/dap/omicron/out/mgd/root/opt/oxide/mgd/bin:/home/dap/omicron/out/dendrite-stub/bin:/home/dap/omicron/out/clickhouse:/home/dap/omicron/out/cockroachdb/bin:/home/dap/.cargo/bin:/home/dap/bin:/opt/ooce/sbin:/opt/ooce/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
++ PATH=/home/dap/omicron/out/mgd/root/opt/oxide/mgd/bin:/home/dap/omicron/out/dendrite-stub/bin:/home/dap/omicron/out/clickhouse:/home/dap/omicron/out/cockroachdb/bin:/home/dap/.cargo/bin:/home/dap/bin:/opt/ooce/sbin:/opt/ooce/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
++ unset OMICRON_WS
++ set +o xtrace
dap@maxwell ~/omicron $ ./tools/install_prerequisites.sh -y
No updates necessary for this image.
No changes required.
No changes required.
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
clang system 15 system
csh system system illumos
ctags system system illumos
gcc vendor 12 vendor
gcc system 10 system
gcc system 7 system
llvm system 15 system
mta vendor vendor dma
openjdk system 17 system
openjdk system 11 system
openjdk system 1.8 system
openssl vendor 3 vendor
perl system 5.36 system
postgresql system 13 system
python vendor 3 vendor
python system 2 system
python3 system 3.11 system
ruby system 3.0 system
words vendor vendor american-english
words system system australian-english
words system system british-english
words system system canadian-english
words system system french
words system system italian
words system system ngerman
words system system ogerman
words system system spanish
FMRI IFO
pkg://helios-dev/developer/build-essential@11-2.0:20230623T110919Z im-
pkg://helios-dev/developer/pkg-config@0.29.2-2.0:20230621T191911Z im-
pkg://helios-dev/library/libxmlsec1@1.2.35-2.0:20230624T123441Z im-
pkg://helios-dev/ooce/developer/clang-15@15.0.7-2.0:20231012T123315Z im-
pkg://helios-dev/ooce/library/postgresql-13@13.11-2.0:20230623T123131Z im-
pkg://helios-dev/package/pkg@0.5.11-2.0:20230621T202036Z i--
+ set -o errexit
+++ dirname ./tools/ci_download_cockroachdb
++ cd ./tools
++ pwd
+ SOURCE_DIR=/home/dap/omicron/tools
++ basename ./tools/ci_download_cockroachdb
+ ARG0=ci_download_cockroachdb
++ cat /home/dap/omicron/tools/cockroachdb_version
+ CIDL_VERSION=v22.1.9
+ source /home/dap/omicron/tools/cockroachdb_checksums
++ CIDL_MD5_DARWIN=2db972c254b4e3b599e12110520178b5
++ CIDL_MD5_LINUX=8c3170883e0a0be1a34b44090c067a8c
++ CIDL_MD5_ILLUMOS=d8999aff364e5d70f226e139fda724a3
+ TARGET_DIR=out
+ DOWNLOAD_DIR=out/downloads
+ DEST_DIR=./out/cockroachdb
+ CIDL_URL_COCKROACH=https://binaries.cockroachdb.com
+ CIDL_URL_ILLUMOS=https://illumos.org/downloads
+ main
+ [[ 0 != 0 ]]
+ CIDL_OS=solaris2.11
+ [[ 0 != 0 ]]
+ configure_os solaris2.11
+ echo 'current directory: /home/dap/omicron'
current directory: /home/dap/omicron
+ echo 'configuring based on OS: "solaris2.11"'
configuring based on OS: "solaris2.11"
+ case "$1" in
+ CIDL_BUILD=illumos
+ CIDL_SUFFIX=tar.gz
+ CIDL_MD5=d8999aff364e5d70f226e139fda724a3
+ CIDL_MD5FUNC=do_md5sum
+ CIDL_URL_BASE=https://illumos.org/downloads
+ CIDL_ASSEMBLE=do_assemble_illumos
+ TARBALL_DIRNAME=cockroach-v22.1.9.illumos
+ TARBALL_FILENAME=cockroach-v22.1.9.illumos.tar.gz
+ TARBALL_FILE=out/downloads/cockroach-v22.1.9.illumos.tar.gz
+ TARBALL_DIR=out/downloads/cockroach-v22.1.9.illumos
+ CIDL_URL=https://illumos.org/downloads/cockroach-v22.1.9.illumos.tar.gz
+ echo 'URL: https://illumos.org/downloads/cockroach-v22.1.9.illumos.tar.gz'
URL: https://illumos.org/downloads/cockroach-v22.1.9.illumos.tar.gz
+ echo 'Local file: out/downloads/cockroach-v22.1.9.illumos.tar.gz'
Local file: out/downloads/cockroach-v22.1.9.illumos.tar.gz
+ mkdir -p out/downloads
+ mkdir -p ./out/cockroachdb
+ local DO_DOWNLOAD=true
+ [[ -f out/downloads/cockroach-v22.1.9.illumos.tar.gz ]]
++ do_md5sum out/downloads/cockroach-v22.1.9.illumos.tar.gz
++ md5sum
++ awk '{print $1}'
+ calculated_md5=d8999aff364e5d70f226e139fda724a3
+ [[ d8999aff364e5d70f226e139fda724a3 == \d\8\9\9\9\a\f\f\3\6\4\e\5\d\7\0\f\2\2\6\e\1\3\9\f\d\a\7\2\4\a\3 ]]
+ DO_DOWNLOAD=false
+ '[' false == true ']'
+ do_untar out/downloads/cockroach-v22.1.9.illumos.tar.gz
+ tar xzf out/downloads/cockroach-v22.1.9.illumos.tar.gz -C out/downloads
+ do_assemble_illumos
+ rm -r ./out/cockroachdb
+ cp -r out/downloads/cockroach-v22.1.9 ./out/cockroachdb
+ ./out/cockroachdb/bin/cockroach version
Build Tag: v22.1.9-dirty
Build Time: 2022/10/26 21:17:46
Distribution: OSS
Platform: illumos amd64 (x86_64-pc-solaris2.11)
Go Version: go1.17.13
C Compiler: gcc 10.3.0
Build Commit ID: e438c2f89282e607e0e6ca1d38b2e0a622f94493
Build Type: release
+ set -o errexit
+++ dirname ./tools/ci_download_clickhouse
++ cd ./tools
++ pwd
+ SOURCE_DIR=/home/dap/omicron/tools
++ basename ./tools/ci_download_clickhouse
+ ARG0=ci_download_clickhouse
+ TARGET_DIR=out
+ DOWNLOAD_DIR=out/downloads
+ DEST_DIR=./out/clickhouse
+ CIDL_VERSION=v22.8.9.24
+ source /home/dap/omicron/tools/clickhouse_checksums
++ CIDL_MD5_DARWIN=20603974a929926591fca70ff1df0e45
++ CIDL_MD5_LINUX=ea909519bd9d989fd5d090fd9bdd42f1
++ CIDL_MD5_ILLUMOS=7702939ce5b4b51846a1ba39f1392306
+ CIDL_URL_BASE=https://oxide-clickhouse-build.s3.us-west-2.amazonaws.com
+ main
+ [[ 0 != 0 ]]
+ CIDL_OS=solaris2.11
+ [[ 0 != 0 ]]
+ configure_os solaris2.11
+ echo 'current directory: /home/dap/omicron'
current directory: /home/dap/omicron
+ echo 'configuring based on OS: "solaris2.11"'
configuring based on OS: "solaris2.11"
+ CIDL_DASHREV=
+ case "$1" in
+ CIDL_PLATFORM=illumos
+ CIDL_MD5=7702939ce5b4b51846a1ba39f1392306
+ CIDL_MD5FUNC=do_md5sum
+ CIDL_DASHREV=-1
+ TARBALL_DIRNAME=clickhouse-v22.8.9.24
+ TARBALL_FILENAME=clickhouse-v22.8.9.24-1.illumos.tar.gz
+ TARBALL_FILE=out/downloads/clickhouse-v22.8.9.24-1.illumos.tar.gz
+ CIDL_URL=https://oxide-clickhouse-build.s3.us-west-2.amazonaws.com/clickhouse-v22.8.9.24-1.illumos.tar.gz
+ echo 'URL: https://oxide-clickhouse-build.s3.us-west-2.amazonaws.com/clickhouse-v22.8.9.24-1.illumos.tar.gz'
URL: https://oxide-clickhouse-build.s3.us-west-2.amazonaws.com/clickhouse-v22.8.9.24-1.illumos.tar.gz
+ echo 'Local file: out/downloads/clickhouse-v22.8.9.24-1.illumos.tar.gz'
Local file: out/downloads/clickhouse-v22.8.9.24-1.illumos.tar.gz
+ mkdir -p out/downloads
+ mkdir -p ./out/clickhouse
+ local DO_DOWNLOAD=true
+ [[ -f out/downloads/clickhouse-v22.8.9.24-1.illumos.tar.gz ]]
++ do_md5sum out/downloads/clickhouse-v22.8.9.24-1.illumos.tar.gz
++ md5sum
++ awk '{print $1}'
+ calculated_md5=7702939ce5b4b51846a1ba39f1392306
+ [[ 7702939ce5b4b51846a1ba39f1392306 == \7\7\0\2\9\3\9\c\e\5\b\4\b\5\1\8\4\6\a\1\b\a\3\9\f\1\3\9\2\3\0\6 ]]
+ DO_DOWNLOAD=false
+ '[' false == true ']'
+ do_untar out/downloads/clickhouse-v22.8.9.24-1.illumos.tar.gz ./out/clickhouse
+ mkdir -p ./out/clickhouse
+ tar xzf out/downloads/clickhouse-v22.8.9.24-1.illumos.tar.gz -C ./out/clickhouse
+ ./out/clickhouse/clickhouse server --version
ClickHouse server version 22.8.9.1.
+ set -o errexit
+++ dirname ./tools/ci_download_console
++ cd ./tools
++ pwd
+ SOURCE_DIR=/home/dap/omicron/tools
++ basename ./tools/ci_download_console
+ ARG0=ci_download_console
+ TARGET_DIR=out
+ DOWNLOAD_DIR=out/downloads
+ DEST_DIR=./out/console-assets
+ source /home/dap/omicron/tools/console_version
++ COMMIT=bd65b9da7019ad812dd056e7fc182df2cf4ec128
++ SHA2=e4d4f33996a6e89b972fac61737acb7f1dbd21943d1f6bef776d4ee9bcccd2b0
+ URL=https://dl.oxide.computer/releases/console/bd65b9da7019ad812dd056e7fc182df2cf4ec128.tar.gz
+ TARBALL_FILE=out/downloads/console.tar.gz
+ main
+ [[ 0 != 0 ]]
+ echo 'URL: https://dl.oxide.computer/releases/console/bd65b9da7019ad812dd056e7fc182df2cf4ec128.tar.gz'
URL: https://dl.oxide.computer/releases/console/bd65b9da7019ad812dd056e7fc182df2cf4ec128.tar.gz
+ echo 'Local file: out/downloads/console.tar.gz'
Local file: out/downloads/console.tar.gz
+ local DO_DOWNLOAD=true
+ [[ -f out/downloads/console.tar.gz ]]
++ do_sha256sum out/downloads/console.tar.gz
++ case "$OSTYPE" in
++ SHA=sha256sum
++ sha256sum
++ awk '{print $1}'
+ calculated_sha2=e4d4f33996a6e89b972fac61737acb7f1dbd21943d1f6bef776d4ee9bcccd2b0
+ [[ e4d4f33996a6e89b972fac61737acb7f1dbd21943d1f6bef776d4ee9bcccd2b0 == \e\4\d\4\f\3\3\9\9\6\a\6\e\8\9\b\9\7\2\f\a\c\6\1\7\3\7\a\c\b\7\f\1\d\b\d\2\1\9\4\3\d\1\f\6\b\e\f\7\7\6\d\4\e\e\9\b\c\c\c\d\2\b\0 ]]
+ DO_DOWNLOAD=false
+ mkdir -p out/downloads
+ '[' false == true ']'
+ rm -rf ./out/console-assets
+ mkdir -p ./out/console-assets
+ do_untar out/downloads/console.tar.gz ./out/console-assets
+ mkdir -p ./out/console-assets
+ tar xzf out/downloads/console.tar.gz -C ./out/console-assets
+ set -o errexit
+++ dirname ./tools/ci_download_maghemite_openapi
++ cd ./tools
++ pwd
+ SOURCE_DIR=/home/dap/omicron/tools
++ basename ./tools/ci_download_maghemite_openapi
+ ARG0=ci_download_maghemite_openapi
+ TARGET_DIR=out
+ DOWNLOAD_DIR=out/downloads
+ source /home/dap/omicron/tools/maghemite_ddm_openapi_version
++ COMMIT=d7169a61fd8833b3a1e6f46d897ca3295b2a28b6
++ SHA2=9737906555a60911636532f00f1dc2866dc7cd6553beb106e9e57beabad41cdf
+ URL=https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/openapi/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6/ddm-admin.json
+ LOCAL_FILE=out/downloads/ddm-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json
+ main
+ [[ 0 != 0 ]]
+ echo 'URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/openapi/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6/ddm-admin.json'
URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/openapi/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6/ddm-admin.json
+ echo 'Local file: out/downloads/ddm-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json'
Local file: out/downloads/ddm-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json
+ local DO_DOWNLOAD=true
+ [[ -f out/downloads/ddm-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json ]]
++ do_sha256sum out/downloads/ddm-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json
++ case "$OSTYPE" in
++ SHA=sha256sum
++ sha256sum
++ awk '{print $1}'
+ calculated_sha2=9737906555a60911636532f00f1dc2866dc7cd6553beb106e9e57beabad41cdf
+ [[ 9737906555a60911636532f00f1dc2866dc7cd6553beb106e9e57beabad41cdf == \9\7\3\7\9\0\6\5\5\5\a\6\0\9\1\1\6\3\6\5\3\2\f\0\0\f\1\d\c\2\8\6\6\d\c\7\c\d\6\5\5\3\b\e\b\1\0\6\e\9\e\5\7\b\e\a\b\a\d\4\1\c\d\f ]]
+ DO_DOWNLOAD=false
+ mkdir -p out/downloads
+ '[' false == true ']'
+ source /home/dap/omicron/tools/maghemite_mg_openapi_version
++ COMMIT=d7169a61fd8833b3a1e6f46d897ca3295b2a28b6
++ SHA2=d0f7611e5ecd049b0f83bcfa843942401f155a0be36d9a2dfd73b8341d5f816e
+ URL=https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/openapi/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6/mg-admin.json
+ LOCAL_FILE=out/downloads/mg-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json
+ main
+ [[ 0 != 0 ]]
+ echo 'URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/openapi/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6/mg-admin.json'
URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/openapi/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6/mg-admin.json
+ echo 'Local file: out/downloads/mg-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json'
Local file: out/downloads/mg-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json
+ local DO_DOWNLOAD=true
+ [[ -f out/downloads/mg-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json ]]
++ do_sha256sum out/downloads/mg-admin-d7169a61fd8833b3a1e6f46d897ca3295b2a28b6.json
++ case "$OSTYPE" in
++ SHA=sha256sum
++ sha256sum
++ awk '{print $1}'
+ calculated_sha2=d0f7611e5ecd049b0f83bcfa843942401f155a0be36d9a2dfd73b8341d5f816e
+ [[ d0f7611e5ecd049b0f83bcfa843942401f155a0be36d9a2dfd73b8341d5f816e == \d\0\f\7\6\1\1\e\5\e\c\d\0\4\9\b\0\f\8\3\b\c\f\a\8\4\3\9\4\2\4\0\1\f\1\5\5\a\0\b\e\3\6\d\9\a\2\d\f\d\7\3\b\8\3\4\1\d\5\f\8\1\6\e ]]
+ DO_DOWNLOAD=false
+ mkdir -p out/downloads
+ '[' false == true ']'
+ set -o errexit
+++ dirname ./tools/ci_download_dendrite_openapi
++ cd ./tools
++ pwd
+ SOURCE_DIR=/home/dap/omicron/tools
++ basename ./tools/ci_download_dendrite_openapi
+ ARG0=ci_download_dendrite_openapi
+ TARGET_DIR=out
+ DOWNLOAD_DIR=out/downloads
+ source /home/dap/omicron/tools/dendrite_openapi_version
++ COMMIT=343e3a572cc02efe3f8b68f9affd008623a33966
++ SHA2=544ab42ccc7942d8ece9cdc80cd85d002bcf9d5646a291322bf2f79087ab6df0
+ URL=https://buildomat.eng.oxide.computer/public/file/oxidecomputer/dendrite/openapi/343e3a572cc02efe3f8b68f9affd008623a33966/dpd.json
+ LOCAL_FILE=out/downloads/dpd-343e3a572cc02efe3f8b68f9affd008623a33966.json
+ main
+ [[ 0 != 0 ]]
+ echo 'URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/dendrite/openapi/343e3a572cc02efe3f8b68f9affd008623a33966/dpd.json'
URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/dendrite/openapi/343e3a572cc02efe3f8b68f9affd008623a33966/dpd.json
+ echo 'Local file: out/downloads/dpd-343e3a572cc02efe3f8b68f9affd008623a33966.json'
Local file: out/downloads/dpd-343e3a572cc02efe3f8b68f9affd008623a33966.json
+ local DO_DOWNLOAD=true
+ [[ -f out/downloads/dpd-343e3a572cc02efe3f8b68f9affd008623a33966.json ]]
++ do_sha256sum out/downloads/dpd-343e3a572cc02efe3f8b68f9affd008623a33966.json
++ case "$OSTYPE" in
++ SHA=sha256sum
++ sha256sum
++ awk '{print $1}'
+ calculated_sha2=544ab42ccc7942d8ece9cdc80cd85d002bcf9d5646a291322bf2f79087ab6df0
+ [[ 544ab42ccc7942d8ece9cdc80cd85d002bcf9d5646a291322bf2f79087ab6df0 == \5\4\4\a\b\4\2\c\c\c\7\9\4\2\d\8\e\c\e\9\c\d\c\8\0\c\d\8\5\d\0\0\2\b\c\f\9\d\5\6\4\6\a\2\9\1\3\2\2\b\f\2\f\7\9\0\8\7\a\b\6\d\f\0 ]]
+ DO_DOWNLOAD=false
+ mkdir -p out/downloads
+ '[' false == true ']'
+ set -o errexit
+++ dirname ./tools/ci_download_dendrite_stub
++ cd ./tools
++ pwd
+ SOURCE_DIR=/home/dap/omicron/tools
++ basename ./tools/ci_download_dendrite_stub
+ ARG0=ci_download_dendrite_stub
+ source /home/dap/omicron/tools/dendrite_stub_checksums
++ CIDL_SHA256_ILLUMOS=0808f331741e02d55e199847579dfd01f3658b21c7122cef8c3f9279f43dbab0
++ CIDL_SHA256_LINUX_DPD=3e276dd553dd7cdb75c8ad023c2cd29b91485fafb94f27097a745b2b7ef5ecea
++ CIDL_SHA256_LINUX_SWADM=645faf8a93bcae9814b2f116bccd66a54763332b56220e93b66316c853ce13d2
+ source /home/dap/omicron/tools/dendrite_openapi_version
++ COMMIT=343e3a572cc02efe3f8b68f9affd008623a33966
++ SHA2=544ab42ccc7942d8ece9cdc80cd85d002bcf9d5646a291322bf2f79087ab6df0
+ TARGET_DIR=out
+ DOWNLOAD_DIR=out/downloads
+ DEST_DIR=./out/dendrite-stub
+ BIN_DIR=./out/dendrite-stub/root/opt/oxide/dendrite/bin
+ ARTIFACT_URL=https://buildomat.eng.oxide.computer/public/file
+ REPO=oxidecomputer/dendrite
+ PACKAGE_BASE_URL=https://buildomat.eng.oxide.computer/public/file/oxidecomputer/dendrite/image/343e3a572cc02efe3f8b68f9affd008623a33966
+ main
+ [[ 0 != 0 ]]
+ CIDL_OS=solaris2.11
+ [[ 0 != 0 ]]
+ configure_os solaris2.11
+ echo 'current directory: /home/dap/omicron'
current directory: /home/dap/omicron
+ echo 'configuring based on OS: "solaris2.11"'
configuring based on OS: "solaris2.11"
+ case "$1" in
+ SET_BINARIES=
+ CIDL_SHA256=0808f331741e02d55e199847579dfd01f3658b21c7122cef8c3f9279f43dbab0
+ CIDL_SHA256FUNC=do_sha256sum
+ TARBALL_FILENAME=dendrite-stub.tar.gz
+ PACKAGE_URL=https://buildomat.eng.oxide.computer/public/file/oxidecomputer/dendrite/image/343e3a572cc02efe3f8b68f9affd008623a33966/dendrite-stub.tar.gz
+ TARBALL_FILE=out/downloads/dendrite-stub.tar.gz
+ echo 'URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/dendrite/image/343e3a572cc02efe3f8b68f9affd008623a33966/dendrite-stub.tar.gz'
URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/dendrite/image/343e3a572cc02efe3f8b68f9affd008623a33966/dendrite-stub.tar.gz
+ echo 'Local file: out/downloads/dendrite-stub.tar.gz'
Local file: out/downloads/dendrite-stub.tar.gz
+ mkdir -p out/downloads
+ mkdir -p ./out/dendrite-stub
+ fetch_and_verify
+ local DO_DOWNLOAD=true
+ [[ -f out/downloads/dendrite-stub.tar.gz ]]
++ do_sha256sum out/downloads/dendrite-stub.tar.gz
++ sha256sum
++ awk '{print $1}'
+ calculated_sha256=0808f331741e02d55e199847579dfd01f3658b21c7122cef8c3f9279f43dbab0
+ [[ 0808f331741e02d55e199847579dfd01f3658b21c7122cef8c3f9279f43dbab0 == \0\8\0\8\f\3\3\1\7\4\1\e\0\2\d\5\5\e\1\9\9\8\4\7\5\7\9\d\f\d\0\1\f\3\6\5\8\b\2\1\c\7\1\2\2\c\e\f\8\c\3\f\9\2\7\9\f\4\3\d\b\a\b\0 ]]
+ DO_DOWNLOAD=false
+ '[' false == true ']'
+ do_untar out/downloads/dendrite-stub.tar.gz
+ tar xzf out/downloads/dendrite-stub.tar.gz -C out/downloads
+ do_assemble
+ rm -r ./out/dendrite-stub
+ mkdir ./out/dendrite-stub
+ cp -r out/downloads/root ./out/dendrite-stub/root
+ ln -s /home/dap/omicron/out/dendrite-stub/root/opt/oxide/dendrite/bin/ /home/dap/omicron/out/dendrite-stub/bin
+ set -o errexit
+++ dirname ./tools/ci_download_maghemite_mgd
++ cd ./tools
++ pwd
+ SOURCE_DIR=/home/dap/omicron/tools
++ basename ./tools/ci_download_maghemite_mgd
+ ARG0=ci_download_maghemite_mgd
+ source /home/dap/omicron/tools/maghemite_mgd_checksums
++ CIDL_SHA256=452dfb3491e1b6d4df6be1cb689921f59623aed082e47606a78c0f44d918f66a
++ MGD_LINUX_SHA256=d4c48eb6374c0cc7812b7af2c0ac92acdcbc91b7718a9ce64d069da00ae5ae73
+ source /home/dap/omicron/tools/maghemite_mg_openapi_version
++ COMMIT=d7169a61fd8833b3a1e6f46d897ca3295b2a28b6
++ SHA2=d0f7611e5ecd049b0f83bcfa843942401f155a0be36d9a2dfd73b8341d5f816e
+ TARGET_DIR=out
+ DOWNLOAD_DIR=out/downloads
+ DEST_DIR=./out/mgd
+ BIN_DIR=./out/mgd/root/opt/oxide/mgd/bin
+ ARTIFACT_URL=https://buildomat.eng.oxide.computer/public/file
+ REPO=oxidecomputer/maghemite
+ PACKAGE_BASE_URL=https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/image/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6
+ main
+ [[ 0 != 0 ]]
+ CIDL_OS=solaris2.11
+ [[ 0 != 0 ]]
+ configure_os solaris2.11
+ echo 'current directory: /home/dap/omicron'
current directory: /home/dap/omicron
+ echo 'configuring based on OS: "solaris2.11"'
configuring based on OS: "solaris2.11"
+ case "$1" in
+ SET_BINARIES=
+ CIDL_SHA256FUNC=do_sha256sum
+ TARBALL_FILENAME=mgd.tar.gz
+ PACKAGE_URL=https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/image/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6/mgd.tar.gz
+ TARBALL_FILE=out/downloads/mgd.tar.gz
+ echo 'URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/image/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6/mgd.tar.gz'
URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/image/d7169a61fd8833b3a1e6f46d897ca3295b2a28b6/mgd.tar.gz
+ echo 'Local file: out/downloads/mgd.tar.gz'
Local file: out/downloads/mgd.tar.gz
+ mkdir -p out/downloads
+ mkdir -p ./out/mgd
+ fetch_and_verify
+ local DO_DOWNLOAD=true
+ [[ -f out/downloads/mgd.tar.gz ]]
++ do_sha256sum out/downloads/mgd.tar.gz
++ sha256sum
++ awk '{print $1}'
+ calculated_sha256=452dfb3491e1b6d4df6be1cb689921f59623aed082e47606a78c0f44d918f66a
+ [[ 452dfb3491e1b6d4df6be1cb689921f59623aed082e47606a78c0f44d918f66a == \4\5\2\d\f\b\3\4\9\1\e\1\b\6\d\4\d\f\6\b\e\1\c\b\6\8\9\9\2\1\f\5\9\6\2\3\a\e\d\0\8\2\e\4\7\6\0\6\a\7\8\c\0\f\4\4\d\9\1\8\f\6\6\a ]]
+ DO_DOWNLOAD=false
+ '[' false == true ']'
+ do_untar out/downloads/mgd.tar.gz
+ tar xzf out/downloads/mgd.tar.gz -C out/downloads
+ do_assemble
+ rm -r ./out/mgd
+ mkdir ./out/mgd
+ cp -r out/downloads/root ./out/mgd/root
+ set -o errexit
+++ dirname ./tools/ci_download_transceiver_control
++ cd ./tools
++ pwd
+ SOURCE_DIR=/home/dap/omicron/tools
++ basename ./tools/ci_download_transceiver_control
+ ARG0=ci_download_transceiver_control
+ source /home/dap/omicron/tools/transceiver_control_version
++ COMMIT=8813cf996f37a6c43e7b83d6084f88c5f0f0430a
++ CIDL_SHA256_ILLUMOS=388f9e03089e8bc6d47fd21f9c83554a6cdc626eb928374fcff945a881e1f7e1
+ TARGET_DIR=out
+ DOWNLOAD_DIR=out/downloads
+ DEST_DIR=./out/transceiver-control
+ BIN_DIR=/opt/oxide/bin
+ BINARY=xcvradm
+ ARTIFACT_URL=https://buildomat.eng.oxide.computer/public/file
+ REPO=oxidecomputer/transceiver-control
+ PACKAGE_BASE_URL=https://buildomat.eng.oxide.computer/public/file/oxidecomputer/transceiver-control/bins/8813cf996f37a6c43e7b83d6084f88c5f0f0430a
+ main
+ [[ 0 != 0 ]]
+ CIDL_OS=solaris2.11
+ [[ 0 != 0 ]]
+ configure_os solaris2.11
+ echo 'current directory: /home/dap/omicron'
current directory: /home/dap/omicron
+ echo 'configuring based on OS: "solaris2.11"'
configuring based on OS: "solaris2.11"
+ case "$1" in
+ SET_BINARIES=
+ CIDL_SHA256=388f9e03089e8bc6d47fd21f9c83554a6cdc626eb928374fcff945a881e1f7e1
+ CIDL_SHA256FUNC=do_sha256sum
+ ARCHIVE_FILENAME=xcvradm.gz
+ PACKAGE_URL=https://buildomat.eng.oxide.computer/public/file/oxidecomputer/transceiver-control/bins/8813cf996f37a6c43e7b83d6084f88c5f0f0430a/xcvradm.gz
+ ARCHIVE_FILE=out/downloads/xcvradm.gz
+ echo 'URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/transceiver-control/bins/8813cf996f37a6c43e7b83d6084f88c5f0f0430a/xcvradm.gz'
URL: https://buildomat.eng.oxide.computer/public/file/oxidecomputer/transceiver-control/bins/8813cf996f37a6c43e7b83d6084f88c5f0f0430a/xcvradm.gz
+ echo 'Local file: out/downloads/xcvradm.gz'
Local file: out/downloads/xcvradm.gz
+ mkdir -p out/downloads
+ mkdir -p ./out/transceiver-control
+ fetch_and_verify
+ local DO_DOWNLOAD=true
+ [[ -f out/downloads/xcvradm.gz ]]
++ do_sha256sum out/downloads/xcvradm.gz
++ sha256sum
++ awk '{print $1}'
+ calculated_sha256=388f9e03089e8bc6d47fd21f9c83554a6cdc626eb928374fcff945a881e1f7e1
+ [[ 388f9e03089e8bc6d47fd21f9c83554a6cdc626eb928374fcff945a881e1f7e1 == \3\8\8\f\9\e\0\3\0\8\9\e\8\b\c\6\d\4\7\f\d\2\1\f\9\c\8\3\5\5\4\a\6\c\d\c\6\2\6\e\b\9\2\8\3\7\4\f\c\f\f\9\4\5\a\8\8\1\e\1\f\7\e\1 ]]
+ DO_DOWNLOAD=false
+ '[' false == true ']'
+ do_unpack out/downloads/xcvradm.gz
+ mkdir -p out/downloads/root//opt/oxide/bin
+ gzip -dc out/downloads/xcvradm.gz
+ chmod +x out/downloads/root//opt/oxide/bin/xcvradm
+ do_assemble
+ rm -r ./out/transceiver-control
+ mkdir ./out/transceiver-control
+ cp -r out/downloads/root ./out/transceiver-control/root
All builder prerequisites installed successfully, and PATH looks valid
No updates necessary for this image.
FMRI IFO
pkg://helios-dev/developer/pkg-config@0.29.2-2.0:20230621T191911Z im-
pkg://helios-dev/library/libxmlsec1@1.2.35-2.0:20230624T123441Z im-
pkg://helios-dev/ooce/library/postgresql-13@13.11-2.0:20230623T123131Z im-
pkg://helios-dev/package/pkg@0.5.11-2.0:20230621T202036Z i--
pkg://helios-dev/service/network/chrony@4.3-2.0:20230804T102734Z im-
pkg://helios-dev/system/zones/brand/omicron1/tools@1.0.16:20230601T213844Z im-
+ MARKER=/etc/opt/oxide/NO_INSTALL
+ [[ -f /etc/opt/oxide/NO_INSTALL ]]
++ uname
+ [[ SunOS != \S\u\n\O\S ]]
+++ dirname ./tools/install_opte.sh
++ cd ./tools
++ pwd
+ SOURCE_DIR=/home/dap/omicron/tools
+ cd /home/dap/omicron/tools/..
+ OMICRON_TOP=/home/dap/omicron
+ RC=0
+ pkg info -lq driver/network/opte
+ [[ 0 -eq 0 ]]
++ pkg info -l driver/network/opte
++ grep Version
++ tr -s ' '
++ cut -d ' ' -f 3
++ cut -d . -f 2
+ OPTE_VERSION=25
+ [[ 25 -lt 21 ]]
+ RC=0
+ man -l mac_getinfo
mac_getinfo(9f) -M /usr/share/man
+ [[ 0 -ne 0 ]]
++ cat /home/dap/omicron/tools/opte_version
+ OPTE_VERSION=0.25.183
+ OMICRON_FROZEN_PKG_COMMENT=OMICRON-PINNED-PACKAGE
++ pkg freeze
++ grep driver/network/opte
+ PKG_FROZEN='driver/network/opte 0.25.183 02 Nov 2023 23:05:59 UTC OMICRON-PINNED-PACKAGE'
++ echo 'driver/network/opte 0.25.183 02 Nov 2023 23:05:59 UTC OMICRON-PINNED-PACKAGE'
++ awk '{ print $(NF) }'
+ FROZEN_COMMENT=OMICRON-PINNED-PACKAGE
+ '[' OMICRON-PINNED-PACKAGE '!=' OMICRON-PINNED-PACKAGE ']'
+ pfexec pkg unfreeze driver/network/opte
driver/network/opte was unfrozen.
+ RC=0
+ pfexec pkg install -v pkg://helios-dev/driver/network/opte@0.25.183
No updates necessary for this image.
+ RC=4
+ [[ 4 -eq 0 ]]
+ [[ 4 -eq 4 ]]
+ echo 'Correct xde driver already installed'
Correct xde driver already installed
+ RC=0
+ pfexec pkg freeze -c OMICRON-PINNED-PACKAGE driver/network/opte@0.25.183
driver/network/opte was frozen at 0.25.183
+ [[ 0 -ne 0 ]]
+ RC=0
+ which opteadm
+ RC=1
+ [[ 1 -ne 0 ]]
+ echo 'The `opteadm` administration tool is not on your path.'
The `opteadm` administration tool is not on your path.
+ echo 'You may add "/opt/oxide/opte/bin" to your path to access it.'
You may add "/opt/oxide/opte/bin" to your path to access it.
fetching npuzone
Ensuring oxidecomputer/softnpu/image/npuzone in out/npuzone
(commit: c1c42398c82b0220c8b5fa3bfba9c7a3bcaa0943)
Getting hash for npuzone
(hash: 4e3cd20ca95b90f85396e965a68dac08e26c0454be09c388b91cf679eea6d90e)
npuzone already exists with correct hash
All runner prerequisites installed successfully
At that point I tried to uninstall again:
dap@maxwell ~/omicron $ pfexec ./target/release/omicron-package uninstall
Nov 02 23:55:59.962 DEBG target[active]: Target({"image": "standard", "machine": "non-gimlet", "rack-topology": "multi-sled", "switch": "softnpu"})
Nov 02 23:55:59.964 INFO Removing all Omicron zones
Nov 02 23:55:59.970 INFO Uninstalling all packages
Nov 02 23:56:00.059 INFO Removing networking resources
Nov 02 23:56:00.078 WARN Deleting Omicron underlay VNIC, vnic_name: underlay0
Nov 02 23:56:00.088 WARN Deleting Omicron underlay etherstub, stub_name: underlay_stub0
Nov 02 23:56:00.093 WARN Deleting Omicron bootstrap VNIC, vnic_name: bootstrap0
Nov 02 23:56:00.107 WARN Deleting Omicron bootstrap etherstub, stub_name: bootstrap_stub0
Error: Failure interacting with the OPTE ioctl(2) interface: command ListPorts failed: BadApiVersion { user: 25, kernel: 23 }
Caused by:
command ListPorts failed: BadApiVersion { user: 25, kernel: 23 }
In case it's helpful:
$ /opt/oxide/opte/bin/opteadm -V
opteadm 0.25.183
$ pkg list driver/network/opte
NAME (PUBLISHER) VERSION IFO
driver/network/opte 0.25.183 if-
$ pkg verify opte
$
After running update_drv xde, I was able to teardown and deploy successfully. Some part of the tooling should do this for you (or else the instructions should be updated to say that you have to do it).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the omicron-package install entry point and tools/install_prerequisites.sh, then trace how the xde/OPTE driver is handled after an update. Use the reported BadApiVersion mismatch as the reproduction signal; done means the updated driver is loaded before installation uses the OPTE ioctl interface.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- operating-systems, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100