Knowledge Base
linbit.com Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

When `kmod-drbd` Upgrades and Installations Fail on RHEL-Derived Distributions

This interaction only occurs under the following conditions:

  • Nodes/clusters using a RHEL-based derivative such as AlmaLinux are configured to use LINBIT’s customer repositories.

  • The kmod-drbd package is already installed or is about to be installed through dnf.

  • A new minor version has just been released by RHEL, for example, version 9.4.

  • The RHEL-derived distribution has yet to release the new minor version. A few days, or even weeks might pass during this window of time.

  • Operating system upgrades (dnf upgrade) or drbd-kmod package installations/updates are attempted during this window. The following error occurs:

    Error:
      Problem: cannot install the best update candidate for package kmod-drbd[...]
    

The Brief Window of Concern

With every new minor release of RHEL, new kernel updates are also released. Beginning with RHEL 9, the Kernel Application Binary Interface (kABI) compatibility also differs between minor release versions.

From Red Hat’s kABI info page:

  • With Red Hat Enterprise Linux 7 and 8, the stablelist is valid for the particular major release. This means that once a symbol has been introduced into kABI for a particular major release, it will not be removed, nor will its meaning be changed during that kernel major release complete life cycle.

  • With Red Hat Enterprise Linux 9, each minor release will have a unique stablelist that is valid throughout the minor release lifecycle.

RHEL-derived distributions such as AlmaLinux and Rocky Linux have a release schedule that lags somewhat behind official RHEL releases.

Combining release dates from RHEL, AlmaLinux, and Rocky Linux, we can see the following:

| Release | RHEL Release Date | Alma Release Date | Rocky Release Date | Kernel |
| ------- | ----------------- | ----------------- | ------------------ | ------ |
| 9.0     | 5/17/2022         | 5/26/2022         | 7/14/2022          | 5.14.0-70.13.1 |
| 9.1     | 11/15/2022        | 11/16/2022        | 11/26/2022         | 5.14.0-162.6.1 |
| 9.2     | 5/10/2023         | 5/10/2023         | 5/16/2023          | 5.14.0-284.11.1 |
| 9.3     | 11/7/2023         | 11/13/2023        | 11/20/2023         | 5.14.0-362.8.1 |

Impact on DRBD Kernel Modules During System Upgrades

Example Scenario

  • On November 20th, 2022 A LINBIT customer is using Rocky Linux 9.1.
  • RHEL 9.2 is released with a new Linux kernel (and kABI) that is currently unavailable in Rocky Linux 9.1.
  • DRBD® kernel modules and other LINBIT packages have been installed using LINBIT’s customer repositories (for RHEL) as defined by default in /etc/yum.repos.d/linbit.repo
  • New DRBD kernel module packages (kmod-drbd) based on kernels from RHEL 9.2 have now been added to LINBIT’s RHEL repositories.

The system’s current Linux kernel version:

[root@rocky9 vagrant]# uname -r
5.14.0-162.23.1.el9_1.x86_64

The corresponding DRBD kernel module version:

[root@rocky9 vagrant]# rpm -qa | grep kmod-drbd
kmod-drbd-9.2.7_5.14.0_162.22.2-1.x86_64

Notice the version string of 5.14.0_162 inside the name of the kmod-drbd package. This indicates the DRBD kernel module closely matches the currently running (likely the currently installed and most up-to-date) Linux kernel.

Operating System Upgrade Failure

Issues arise after attempting to run a routine dnf upgrade:

Error:
 Problem: cannot install the best update candidate for package kmod-drbd-9.2.7_5.14.0_162.22.2-1.x86_64
  - nothing provides kernel(_printk) = 0x92997ed8 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(hugetlb_optimize_vmemmap_key) = 0xbcb36fe4 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(nla_put) = 0x113d86aa needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(nla_put_64bit) = 0x5ad5391b needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(nla_put_nohdr) = 0x948bc320 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(nla_reserve) = 0x5eb93fbf needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__alloc_skb) = 0x285bee04 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__bio_add_page) = 0x59199a4d needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__bitmap_and) = 0xeca957d1 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__bitmap_equal) = 0x06d11488 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__blk_alloc_disk) = 0xeb568b47 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__folio_put) = 0x9b700011 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__free_pages) = 0x20c78662 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__get_task_comm) = 0x797a9cf5 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__nla_parse) = 0x37f615e9 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__put_devmap_managed_page_refs) = 0x6891c0a6 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__wake_up) = 0xe2964344 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(_find_next_bit) = 0x53a1e8d9 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(_find_next_zero_bit) = 0xdf521442 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(alloc_pages) = 0x0e57e3e8 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bd_link_disk_holder) = 0x7782beb8 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bd_unlink_disk_holder) = 0x548c1108 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bdev_alignment_offset) = 0x5bbe2ed9 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bdev_discard_alignment) = 0xd9c2b5b3 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bio_add_page) = 0xec598bda needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bio_alloc_bioset) = 0xa56d18b0 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bio_alloc_clone) = 0x50348c7c needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bio_associate_blkg) = 0xb6930feb needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bio_end_io_acct_remapped) = 0x8f6d4579 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bio_endio) = 0x4736aa86 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bio_put) = 0x0668956f needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bio_split_to_limits) = 0x7a86d418 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bio_start_io_acct) = 0xcac4c39b needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bioset_exit) = 0xdbde227e needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(bioset_init) = 0xb1acf6ac needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blk_finish_plug) = 0x519552eb needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blk_queue_flag_set) = 0xe03a4f14 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blk_queue_max_discard_sectors) = 0x230a3f2f needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blk_queue_max_hw_sectors) = 0xb289b1fd needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blk_queue_max_write_zeroes_sectors) = 0xa0cc342a needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blk_queue_write_cache) = 0xad4a9c1b needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blk_set_stacking_limits) = 0x635a3606 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blk_stack_limits) = 0x1bd06015 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blk_start_plug) = 0x01af5141 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blkdev_get_by_path) = 0xcff15dc1 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blkdev_issue_discard) = 0x984bb8c1 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blkdev_issue_zeroout) = 0xca1d5360 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(blkdev_put) = 0xedc0985e needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(crypto_alloc_shash) = 0xfd75bf0e needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(crypto_destroy_tfm) = 0x933d4734 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(crypto_shash_digest) = 0x94f44447 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(crypto_shash_final) = 0xe267c3ac needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(crypto_shash_setkey) = 0x362761af needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(crypto_shash_update) = 0x05a151e7 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(dax_direct_access) = 0x2d609547 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(debugfs_create_dir) = 0x30bb48b8 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(debugfs_create_file) = 0xcad49544 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(debugfs_create_symlink) = 0x8cefcc75 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(debugfs_remove) = 0x5cd7184e needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(debugfs_rename) = 0x0994dc68 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(del_gendisk) = 0xe75aa851 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(device_add_disk) = 0x4d46c89b needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(disk_update_readahead) = 0x164df3e1 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(flush_signals) = 0xc97f3267 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(fs_bio_set) = 0xa4533f7a needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(fs_dax_get_by_bdev) = 0x30af607a needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(genl_register_family) = 0x7090dd44 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(genl_unregister_family) = 0x34069934 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(genlmsg_multicast_allns) = 0x6ef750a4 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(genlmsg_put) = 0xa41661b6 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kernel_accept) = 0x82849d34 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kernel_recvmsg) = 0xf13d68e7 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kernel_sendmsg) = 0x875cac73 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kernel_sock_shutdown) = 0x94af6bae needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kfree_skb_reason) = 0xa176c8cb needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kmalloc_caches) = 0xf24f1d68 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kmem_cache_alloc) = 0xaaa82978 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kmem_cache_alloc_trace) = 0xa3e49023 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kmem_cache_create) = 0xc8bb55e0 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kmem_cache_destroy) = 0x80fe8829 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kmem_cache_free) = 0xba9e671b needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kmem_cache_size) = 0xd82892ab needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kobject_uevent) = 0xecfabfa9 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(kthread_create_on_node) = 0x8eed5d61 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(module_layout) = 0x2f0167ad needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(module_put) = 0x693e317e needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(netlink_unicast) = 0xa7e87f93 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(param_get_uint) = 0x7517b4c6 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(param_ops_bool) = 0x7d783e91 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(param_ops_int) = 0x70557b9e needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(param_ops_string) = 0x84227236 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(param_ops_uint) = 0x090ad8b1 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(pcpu_hot) = 0x932464ef needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(proc_create_single_data) = 0xbbfc05cf needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(put_disk) = 0x0485b31d needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(remove_proc_entry) = 0xbcacae87 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(send_sig) = 0xe0866a7f needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(seq_lseek) = 0xba8c2125 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(seq_printf) = 0xf7ead680 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(seq_putc) = 0x924f3d39 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(seq_puts) = 0xf6775045 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(seq_read) = 0x348d7b89 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(set_capacity_and_notify) = 0x5729722e needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(set_cpus_allowed_ptr) = 0x2dfe9925 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(single_open) = 0x4a310728 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(single_release) = 0xd7a48aee needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(skb_trim) = 0x9eee9922 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(sock_create_kern) = 0x01ef5bb7 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(sock_release) = 0x5eec1492 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(sock_set_keepalive) = 0x9b6ead95 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(submit_bio) = 0x7d965c26 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(submit_bio_noacct) = 0x50d99fe7 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(sync_blockdev) = 0x92a106da needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(tcp_sock_set_cork) = 0x3d367dac needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(tcp_sock_set_keepcnt) = 0xd9e986ff needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(tcp_sock_set_keepidle) = 0x98d52dc0 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(tcp_sock_set_keepintvl) = 0xe728c16c needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(tcp_sock_set_nodelay) = 0x6953b653 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(tcp_sock_set_quickack) = 0xcb92ec5f needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(timer_delete) = 0x9f15f501 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(timer_delete_sync) = 0xb3087f55 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(timer_shutdown_sync) = 0x4a4209f8 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(try_module_get) = 0x5234c6d5 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(wake_up_process) = 0xd6050f27 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__ib_alloc_pd) = 0x36c2b5eb needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__ib_create_cq) = 0x8a3f1efb needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(__rdma_create_kernel_id) = 0x7ddc317d needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(dev_driver_string) = 0xf2edbc52 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(dma_map_page_attrs) = 0xcdf9d1b6 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(dma_sync_single_for_cpu) = 0xfe4f5a78 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(dma_sync_single_for_device) = 0xe10d5d59 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(dma_unmap_page_attrs) = 0x9a5b0610 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(fd_install) = 0x82ee97f3 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(fput) = 0x56d8a294 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(ib_dealloc_pd_user) = 0xf332fc8b needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(ib_destroy_cq_user) = 0xd6b21c2a needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(ib_modify_qp) = 0xfb2a9b04 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(key_link) = 0xe56348d0 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(key_put) = 0x188b3289 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(netlink_broadcast) = 0xa86dffc8 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(netlink_has_listeners) = 0x15d7efd0 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64b
  - nothing provides kernel(param_get_bool) = 0x29f9ac34 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(param_set_bool) = 0x99f9fa9e needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_accept) = 0x0dc3741a needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_bind_addr) = 0x7ea7c154 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_connect) = 0x272e8d10 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_create_qp) = 0xf36c6eef needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_destroy_id) = 0x4497cbe7 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_destroy_qp) = 0xc1c8fd66 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_disconnect) = 0x8fc15c5c needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_listen) = 0x0ae1e62d needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_reject) = 0xe2cda217 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_resolve_addr) = 0x83f23e70 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(rdma_resolve_route) = 0x4f55910c needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(register_pernet_device) = 0x5f0a5656 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(register_pernet_subsys) = 0x7c64b5ac needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(sk_free) = 0xe986ebeb needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(skb_abort_seq_read) = 0x2a37a847 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(skb_prepare_seq_read) = 0x7840e7d5 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(skb_seq_read) = 0x5f0a4ce0 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(sock_alloc_file) = 0x419cf27c needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(sockfd_lookup) = 0xa3c99a1f needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(tcp_read_sock) = 0xb2920479 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(unregister_pernet_device) = 0xbe4f34c6 needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
  - nothing provides kernel(unregister_pernet_subsys) = 0x9d21d73c needed by kmod-drbd-9.2.7_5.14.0_362.18.1-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

The above issue arises due to the following reasons:

  1. RHEL 9.2 now ships a newer kernel (and kABI) than Rocky Linux 9.1.
  2. There is only one LINBIT RHEL repository used by both RHEL and all RHEL-based derivatives. LINBIT does not provide distribution-specific repositories for AlmaLinux, Rocky Linux, or any other derivative distributions.
  3. The dnf upgrade command tries to install the latest kmod-drbd package. However, the latest kmod-drbd package is built for the RHEL 9.2 kernel. This situation presents unmet dependencies as shown above with Rocky Linux 9.1.

The Workaround

Proceed with the upgrade by running dnf upgrade --nobest.

Using the --nobest option will allow dnf to select a lower version of the kmod-drbd package that more closely aligns with a kernel available to the system.

As mentioned earlier, the kmod-drbd version and kernel version should closely match. When perfoming a dnf upgrade or a new kmod-drbd installation, it is always a good idea to double-check the package versions before continuing:

# dnf install kmod-drbd
Last metadata expiration check: 0:03:24 ago on Fri Mar  1 03:24:40 2024.
Dependencies resolved.
==================================================================================
Package                 Arch       Version                      Repository  Size
==================================================================================
Installing:
kernel-core             x86_64     5.14.0-362.18.1.el9_3        baseos      15 M
kernel-modules          x86_64     5.14.0-362.18.1.el9_3        baseos      32 M
kernel-modules-core     x86_64     5.14.0-362.18.1.el9_3        baseos      27 M
kmod-drbd               x86_64     9.2.7_5.14.0_362.18.1-1      drbd-9     510 k

Transaction Summary
==================================================================================
Install  4 Packages

Total download size: 74 M
Installed size: 123 M
Is this ok [y/N]:

Note the version similarity between the kernel-core and the kmod-drbd package versions above.

Option 2

Hold back kernel upgrades until the RHEL-derivative repositories “catch up”. Running dnf upgrade --exclude kernel*,kmod-drbd will upgrade all packages without updating the currently installed kernel and DRBD kernel module.

Configure the repository to use a specific RHEL minor release version.

For option 3, change relevant [drbd-9] repository configuration entries /etc/yum.repos.d/linbit.repo to point to the specific minor version of the repository.

For example, change rhel9:

[drbd-9]
name=LINBIT Packages for drbd-9 - $basearch
baseurl=https://packages.linbit.com/<node_hash>/yum/rhel9/drbd-9/$basearch
enabled=1
gpgkey=https://packages.linbit.com/package-signing-pubkey.asc
gpgcheck=1
priority=90

To rhel9.1:

[drbd-9]
name=LINBIT Packages for drbd-9 - $basearch
baseurl=https://packages.linbit.com/<node_hash>/yum/rhel9.1/drbd-9/$basearch
enabled=1
gpgkey=https://packages.linbit.com/package-signing-pubkey.asc
gpgcheck=1
priority=90

If using option 3, the minor version in the repository configuration will need to be updated when the new minor release is available.