Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Lustre 2.1.0
-
None
-
e2fsprogs 1.42.3.wc1-7.el6
-
3
-
6373
Description
When trying to update an EL 6.2 system with the Whamcloud e2fsprogs release 1.42.3.wc1-7.el6 only the e2fsprogs and e2fsprogs-libs packages actually get updated:
Resolving Dependencies --> Running transaction check ---> Package e2fsprogs.x86_64 0:1.41.12-11.el6 will be updated ---> Package e2fsprogs.x86_64 0:1.42.3.wc1-7.el6 will be an update --> Processing Dependency: e2fsprogs-libs = 1.42.3.wc1-7.el6 for package: e2fsprogs-1.42.3.wc1-7.el6.x86_64 --> Running transaction check ---> Package e2fsprogs-libs.x86_64 0:1.41.12-11.el6 will be updated ---> Package e2fsprogs-libs.x86_64 0:1.42.3.wc1-7.el6 will be an update --> Finished Dependency Resolution Dependencies Resolved =========================================================================================================================================== Package Arch Version Repository Size =========================================================================================================================================== Updating: e2fsprogs x86_64 1.42.3.wc1-7.el6 chroma 695 k Updating for dependencies: e2fsprogs-libs x86_64 1.42.3.wc1-7.el6 chroma 157 k
This results in a broken e2fsck, mke2fs (and probably other tools):
# e2fsck e2fsck: symbol lookup error: e2fsck: undefined symbol: set_com_err_gettext # mke2fs mke2fs: symbol lookup error: mke2fs: undefined symbol: set_com_err_gettext
This appears to be because the packaging is not specifying the upgrade of libcom_err as being necessary. When I manually force that package to be upgraded e2fsck and mke2fs work again:
# e2fsck Usage: e2fsck [-panyrcdfvtDFV] [-b superblock] [-B blocksize] [-I inode_buffer_blocks] [-P process_inode_size] [-l|-L bad_blocks_file] [-C fd] [-j external_journal] [-E extended-options] device Emergency help: -p Automatic repair (no questions) -n Make no changes to the filesystem -y Assume "yes" to all questions -c Check for bad blocks and add them to the badblock list -f Force checking even if filesystem is marked clean -v Be verbose -b superblock Use alternative superblock -B blocksize Force blocksize when looking for superblock -j external_journal Set location of the external journal -l bad_blocks_file Add to badblocks list -L bad_blocks_file Set badblocks list [root@localhost yum.repos.d]# mke2fs Usage: mke2fs [-c|-l filename] [-b block-size] [-C cluster-size] [-i bytes-per-inode] [-I inode-size] [-J journal-options] [-G flex-group-size] [-N number-of-inodes] [-m reserved-blocks-percentage] [-o creator-os] [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory] [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]] [-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]
Ultimately it appears that between 1.41.12 1.42.3 the ABI of libcom_err has changed. Such a change should force an increase in the version of the shared library which will in turn tell yum and rpm to upgrade libcom_err when it upgrades e2fsprogs.