[Bug 287251] Failed to rebuild autoinstall ISO for freebsd-14.3-RC1-64bit with error: Failed adding duplicate name to parent

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 03 Jun 2025 06:31:13 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287251

            Bug ID: 287251
           Summary: Failed to rebuild autoinstall ISO for
                    freebsd-14.3-RC1-64bit with error: Failed adding
                    duplicate name to parent
           Product: Base System
           Version: 14.3-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: standards
          Assignee: standards@FreeBSD.org
          Reporter: yanhui.he@broadcom.com

Hi,

pycdlib is used on our test to automatic install FreeBSD 14.3. We hit the issue
that we cannot use it from FreeBSD 14.3 RC1.

Like we use the below code to open FreeBSD 14.3 RC1 64bit ISO Image.
******test_freebsd_iso.py******
#!/usr/bin/env python

import pycdlib
iso = pycdlib.PyCdlib(always_consistent=True)
src_iso = "FreeBSD-14.3-RC1-amd64-dvd1.iso"
iso.open(src_iso)
iso.close()
******test_freebsd_iso.py******

Got exceptions when test FreeBSD 14.3 RC1 64bit ISO.
******************
File
"/tmp/ansible_community.general.iso_customize_payload_0ng2_nf0/ansible_community.general.iso_customize_payload.zip/ansible_collections/community/general/plugins/modules/iso_customize.py",
line 269, in iso_rebuild
  File "/usr/local/lib/python3.10/dist-packages/pycdlib/pycdlib.py", line 4152,
in open
    self._open_fp(fp)
  File "/usr/local/lib/python3.10/dist-packages/pycdlib/pycdlib.py", line 2320,
in _open_fp
    ic_level, lastbyte = self._walk_directories(self.pvd, extent_to_ptr,
  File "/usr/local/lib/python3.10/dist-packages/pycdlib/pycdlib.py", line 1167,
in _walk_directories
    new_record.parent.track_child(new_record,
  File "/usr/local/lib/python3.10/dist-packages/pycdlib/dr.py", line 861, in
track_child
    self._add_child(child, logical_block_size, allow_duplicate, False)
  File "/usr/local/lib/python3.10/dist-packages/pycdlib/dr.py", line 770, in
_add_child
    raise pycdlibexception.PyCdlibInvalidInput('Failed adding duplicate name to
parent')

fatal: [localhost]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "add_files": [
                {
                    "dest_file": "/etc/installerconfig",
                    "src_file":
"/home/worker/workspace/Ansible_FreeBSD_14.x_64bit_MAIN_NVME_VMXNET3_EFI-136/ansible-vsphere-gos-validation/cache/unattend_iso_rajob3bm/installerconfig"
                }
            ],
            "delete_files": [],
            "dest_iso":
"/home/worker/workspace/Ansible_FreeBSD_14.x_64bit_MAIN_NVME_VMXNET3_EFI-136/ansible-vsphere-gos-validation/cache/unattend_iso_rajob3bm/FreeBSD-14.3-RC1-amd64-dvd1-20250531223539.iso",
            "src_iso":
"/home/worker/workspace/Ansible_FreeBSD_14.x_64bit_MAIN_NVME_VMXNET3_EFI-136/ansible-vsphere-gos-validation/cache/unattend_iso_rajob3bm/FreeBSD-14.3-RC1-amd64-dvd1.iso"
        }
    },
    "msg": "Failed to rebuild ISO
/home/worker/workspace/Ansible_FreeBSD_14.x_64bit_MAIN_NVME_VMXNET3_EFI-136/ansible-vsphere-gos-validation/cache/unattend_iso_rajob3bm/FreeBSD-14.3-RC1-amd64-dvd1.iso
with error: Failed adding duplicate name to parent"
}
error message:
Failed to rebuild ISO
/home/worker/workspace/Ansible_FreeBSD_14.x_64bit_MAIN_NVME_VMXNET3_EFI-136/ansible-vsphere-gos-validation/cache/unattend_iso_rajob3bm/FreeBSD-14.3-RC1-amd64-dvd1.iso
with error: Failed adding duplicate name to parent

******************

It has the same error information in this PR.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283112

This one is OK after did
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286666#c5, thanks Ed!

Would you please add a test like below to test FreeBSD ISO files and make sure
the published ISO files can be opened by pycdlib?

#!/usr/bin/env python

import pycdlib
iso = pycdlib.PyCdlib(always_consistent=True)
src_iso = "FreeBSD-14.3-RC1-amd64-dvd1.iso"
iso.open(src_iso)
iso.close()


Thanks!
Yanhui

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