<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Kumar</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Self-signup on the Whamcloud JIRA had to be deactivated about ten years ago after repeated hacking attempts via that option. You are by no means the first person to be confused by the default UI around this but there is a message on the front page that tells
you to email info@whamcloud.com to get an account.</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Peter</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="mail-editor-reference-message-container">
<div class="ms-outlook-mobile-reference-message skipProofing">
<meta name="Generator" content="Microsoft Exchange Server">
</div>
<div class="ms-outlook-mobile-reference-message skipProofing" style="text-align: left; padding: 3pt 0in 0in; border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentcolor currentcolor; font-family: Aptos; font-size: 12pt; color: black;">
<b>From: </b>lustre-discuss <lustre-discuss-bounces@lists.lustre.org> on behalf of Kumar Nachiketa via lustre-discuss <lustre-discuss@lists.lustre.org><br>
<b>Date: </b>Sunday, May 10, 2026 at 7:05\u202fAM<br>
<b>To: </b>lustre-discuss@lists.lustre.org <lustre-discuss@lists.lustre.org><br>
<b>Subject: </b>[lustre-discuss] [BUG] osd-zfs configure writes wrong KBUILD_EXTRA_SYMBOLS path against OpenZFS 2.4+ (Module.symvers moved)<br>
<br>
</div>
<div class="PlainText" style="font-size: 11pt;">Hi all,<br>
<br>
First post to the list, I'm Kumar Nachiketa, a storage practitioner<br>
running a small personal lab on NVIDIA DGX Spark hardware (Grace UMA<br>
workstation, ARM64, Ubuntu 24.04 LTS, kernel 6.17.0-1014-nvidia). This<br>
is a personal-capacity project on my own hardware, not affiliated with<br>
my employer.<br>
<br>
I tried jira.whamcloud.com self-signup but the registration page<br>
redirects to a contact-administrators form that isn't configured, so<br>
I'm filing on the list. Happy to refile in Jira if a maintainer can<br>
help me get an account, or if a triager prefers to relay it there.<br>
<br>
This is the first of three bugs I'll send separately.<br>
<br>
<br>
Summary<br>
-------<br>
<br>
Lustre master ./configure --with-zfs=<zfs-source-root> writes<br>
KBUILD_EXTRA_SYMBOLS pointing at <zfs-source-root>/Module.symvers, but<br>
OpenZFS 2.4+ relocated this file to <zfs-source-root>/module/Module.symvers<br>
as part of its build-tree reorganization. The osd-zfs build then proceeds<br>
with no Module.symvers reference; kbuild emits<br>
<br>
WARNING: Symbol version dump "<path>/Module.symvers" is missing<br>
<br>
and the resulting osd_zfs.ko has unresolved symbols and fails to load<br>
(Unknown symbol against zfs/spl symbols at insmod time).<br>
<br>
<br>
Environment<br>
-----------<br>
<br>
Kernel: 6.17.0-1014-nvidia (NVIDIA-signed Ubuntu kernel)<br>
OS: Ubuntu 24.04.1 LTS ARM64<br>
OpenZFS: 2.4.1 (release tag)<br>
Lustre: master @ 805cece6747f442449f32a1d25a8b8a03b230875<br>
Hardware: NVIDIA DGX Spark (Grace UMA workstation, ARM64)<br>
<br>
<br>
Reproduction<br>
------------<br>
<br>
Step 1 \u2014 Build OpenZFS 2.4:<br>
<br>
git clone <a href="https://github.com/openzfs/zfs.git" data-outlook-id="31f62edd-37c8-4c32-9818-943a31c69b05">
https://github.com/openzfs/zfs.git</a> && cd zfs<br>
git checkout zfs-2.4.1<br>
./autogen.sh<br>
./configure --with-linux=/lib/modules/$(uname -r)/build \<br>
--with-linux-obj=/lib/modules/$(uname -r)/build<br>
make -j$(nproc)<br>
<br>
At this point Module.symvers is at module/Module.symvers, NOT at the<br>
source root:<br>
<br>
ls Module.symvers # -> ENOENT<br>
ls module/Module.symvers # -> present<br>
<br>
Step 2 \u2014 Build Lustre against it:<br>
<br>
cd ../<br>
git clone <a href="https://git.whamcloud.com/fs/lustre-release.git" data-outlook-id="ceb82568-6eea-470e-8227-4dd5547ddf37">
https://git.whamcloud.com/fs/lustre-release.git</a><br>
cd lustre-release<br>
git checkout 805cece6747f442449f32a1d25a8b8a03b230875<br>
sh autogen.sh<br>
./configure --with-linux=/lib/modules/$(uname -r)/build \<br>
--with-zfs=/path/to/zfs \<br>
--disable-ldiskfs \<br>
--with-o2ib=/lib/modules/$(uname -r)/build<br>
make -j$(nproc)<br>
<br>
The osd-zfs build emits the Symbol-version-dump warning; the resulting<br>
osd_zfs.ko is unresolvable.<br>
<br>
<br>
Expected behavior<br>
-----------------<br>
<br>
./configure --with-zfs=<path> resolves the OpenZFS symbol-versions file<br>
regardless of whether the OpenZFS source tree uses the pre-2.4 layout<br>
(<path>/Module.symvers) or the 2.4+ layout (<path>/module/Module.symvers).<br>
<br>
<br>
Actual behavior<br>
---------------<br>
<br>
KBUILD_EXTRA_SYMBOLS is written with the pre-2.4 path unconditionally.<br>
osd-zfs builds without symbol-version data; the kernel module produced<br>
is unresolvable.<br>
<br>
<br>
Workaround (measured working)<br>
-----------------------------<br>
<br>
After the OpenZFS build completes and before Lustre ./configure, create<br>
a symlink at the legacy location:<br>
<br>
ln -sf module/Module.symvers <zfs-source-root>/Module.symvers<br>
<br>
Lustre ./configure then resolves Module.symvers correctly, osd-zfs<br>
builds clean, and osd_zfs.ko loads. Validated end-to-end (Lustre<br>
filesystem mounted, IO measured) in the linked reproduce kit.<br>
<br>
<br>
Suggested fix<br>
-------------<br>
<br>
./configure should probe both candidate paths and use whichever exists:<br>
<br>
if test -f "$with_zfs/module/Module.symvers"; then<br>
ZFS_SYMBOLS_PATH="$with_zfs/module/Module.symvers"<br>
elif test -f "$with_zfs/Module.symvers"; then<br>
ZFS_SYMBOLS_PATH="$with_zfs/Module.symvers"<br>
else<br>
AC_MSG_ERROR([cannot locate ZFS Module.symvers under $with_zfs])<br>
fi<br>
<br>
(Or equivalently in the osd-zfs Kbuild that consumes the variable.)<br>
<br>
<br>
Reference<br>
---------<br>
<br>
Public reproduce kit (build cascade documented end-to-end):<br>
<br>
<a href="https://github.com/knachiketa04/aihomelab/tree/main/artifacts/training/lustre-on-uma-workstations/reproduce" data-outlook-id="9eb340f4-2460-407e-99b0-a9792a05f1d8">https://github.com/knachiketa04/aihomelab/tree/main/artifacts/training/lustre-on-uma-workstations/reproduce</a><br>
<br>
Thanks,<br>
Kumar<br>
kn@knachiketa.com<br>
_______________________________________________<br>
lustre-discuss mailing list<br>
lustre-discuss@lists.lustre.org<br>
<a href="http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org" data-outlook-id="81026a39-5b24-44af-8bf3-179a9a68f8b5">http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org</a><br>
</div>
</div>
</body>
</html>