All of lore.kernel.org
 help / color / mirror / Atom feed
* [Cluster-devel] gfs2-utils 3.5.0 released
@ 2023-02-09 13:12 Andrew Price
  2023-02-11 17:16 ` [Cluster-devel] [ClusterLabs] " Valentin Vidić
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Price @ 2023-02-09 13:12 UTC (permalink / raw)
  To: cluster-devel.redhat.com

gfs2-utils contains the tools needed to create, check, modify and 
inspect gfs2 filesystems along with support scripts needed on every gfs2 
cluster node.

The main themes in this release are improved testability and test 
coverage, with a number of bug fixes and a couple of new features thrown 
in too.

Some highlights visible to users and packagers:

- mkfs.gfs2 now has a -U option to provide your own UUID (added to 
support idempotent Ansible playbooks)
- gfs2_jadd now creates journals much faster
- The bzip2 configure check has been fixed to work on distros other than 
the Fedora family (which ship their own pkg-config file)
- Man pages have been improved

We now have CI testing enabled for gfs2-utils (thanks, Fabio!) which 
means that pull requests will be automatically tested across multiple 
distros and architectures. Static analysis will also now be more useful 
as the results are much less cluttered with false-positives. This all 
helps to ramp up the quality of the utils over time as we continue to 
add support for new gfs2 features.

There are also portability improvements included in this release which 
mean that building gfs2-utils against a non-glibc libc should not 
require much patching (probably just an rpmatch() replacement).

The full git shortlog is below.

The release tarballs and signed checksums can be found here:

https://releases.pagure.org/gfs2-utils/

Direct link for convenience:

https://releases.pagure.org/gfs2-utils/gfs2-utils-3.5.0.tar.gz

Please report bugs to the cluster-devel at redhat.com mailing list or at:

https://bugzilla.kernel.org/enter_bug.cgi?product=File%20System&component=gfs2

Patches or pull requests can be sent to the same list or submitted on 
Pagure:

https://pagure.io/gfs2-utils

Thanks,
Andy

gfs2-utils changes since 3.4.1:

Andreas Gruenbacher (7):
       fsck.gfs2: Clean up metawalk_check_data and undo_check_data 
argument passing
       fsck.gfs2: Minor data type cleanups
       fsck.gfs2: More flexible metalist handling in check_metatree
       fsck.gfs2: Move struct error_block into metawalk.c
       fsck.gfs2: Fix some endianness annotations
       fsck.gfs2: Factor out error handling in metawalk_check_data
       fsck.gfs2: Convert enum values to upper-case

Andrew Price (255):
       Update version string for dev
       gfs2_jadd: Use fallocate to preallocate journals
       gfs2_jadd: Don't fsync after each block written
       libgfs2: Move gfs1_ri_update() into gfs2_convert
       gfs2_convert: Remove fd parameter from gfs1_ri_update
       libgfs2: Fold __ri_update into ri_update
       libgfs2: Move ri_update() into fsck.gfs2
       libgfs2: Clean up rindex_read()
       Update some variable names for consistency
       libgfs2: Implement meta.c checks as unit tests
       libgfs2: Move build_rgrps into fsck.gfs2
       libgfs2: Remove fs_geometry.c
       libgfs2: Replace lgfs2_rgrps_root() with lgfs2_attach_rgrps()
       fsck.gfs2: Update an inaccessible web address
       libgfs2: Move block_list.c into fsck.gfs2
       fsck.gfs2: Refactor fetch_rgrps()
       fsck.gfs2: Call rindex_read() outside of ri_update()
       fsck.gfs2: Rename ri_update to read_rgrps
       fsck.gfs2: Fix bounds check in find_next_rgrp_dist()
       fsck.gfs2: Improve rindex consistency check
       configure: Don't define _FORTIFY_SOURCE for gcov builds
       Import linux/gfs2_ondisk.h
       Remove HAS_UUID conditionals
       Remove GFS2_HAS_LEAF_HINTS conditionals
       Remove GFS2_HAS_DE_RAHEAD/COOKIE conditionals
       Remove GFS2_HAS_RG_SKIP conditionals
       Remove GFS2_HAS_RG_RI_FIELDS conditionals
       Remove GFS2_HAS_LH_V2 conditionals
       Use PRI* when printing gfs2 structures
       Remove gfs2/include/linux_endian.h
       libgfs2: Add __force tags to endianness conversion macros
       fsck.gfs2: Fix declaration mismatch for invalidate_*
       Include asm/types.h in our linux/types.h
       libgfs2: Provide macros for printing on-disk fields
       libgfs2: Add a function for printing on-disk meta headers
       libgfs2: Expect big-endian data when printing log descriptors
       libgfs2: Remove gfs2_log_descriptor_{in,out}
       libgfs2: Remove gfs2_quota_change_{in,out}
       libgfs2: Remove gfs2_statfs_change_{in,out}
       libgfs2: Remove gfs2_ea_header_in
       libgfs2: Convert gfs2_leaf_print to accept big-endian data
       libgfs2: Remove gfs2_quota_{in,out}
       Convert rgrp printing functions to expect big-endian data
       libgfs2: Convert gfs2_sb_print to expect big-endian data
       gfs2_edit: Convert superblock printing to expect big-endian
       gfs2_edit: Store big-endian data in the global dinode
       libgfs2: Don't use on-disk structs with cpu-endian data in 
__init_dinode
       libgfs2: Fix endianness mismatches for struct gfs2_log_header
       gfs2_edit: Clean up display_gfs2()
       libgfs2: Add a cpu-endian log header struct
       libgfs2: Remove gfs2_dinode_print()
       libgfs2: Remove i_di from struct gfs2_inode
       libgfs2: Remove big-endian structs from struct rgrp_tree
       libgfs2: Remove sd_sb from struct gfs2_sbd
       libgfs2: Remove some now-unused functions
       gfs2_edit: Use native-endian types for dirent processing
       libgfs2: Endianness improvements for gfs2_inum and gfs2_dirent
       Remove some users of gfs2_leaf_in()
       libgfs2: Endianness improvements for gfs2_leaf
       libgfs2: Remove gfs2_meta_header_{in,out}
       libgfs2: Fix endianness conversions for superblock padding fields
       libgfs2: Don't parse/write de_cookie
       libgfs2: Broaden use of struct lgfs2_inum
       gfs2l: Sparse fixes
       libgfs2: Fix endianness tagging for gfs2_bit_search
       libgfs2: Remove gfs_jindex_in
       Fix sparse warnings about linkage
       fsck.gfs2: Remove unused invalidate_fxns
       libgfs2: Fix the remaining sparse warnings
       gfs2_convert: Fix the remaining sparse warnings
       gfs2_edit: Fix remaining endianness sparse warnings
       fsck.gfs2: Fix remaining endianness sparse warnings
       libgfs2: Add NULL-checking for ip->i_bh in inode_put()
       gfs2_edit: Fix segfault in hexdump()
       libgfs2: Avoid potential gfs/gfs2 superblock update clash
       Make sure i_bh is set after lgfs2_gfs_inode_get()
       tunegfs2: Use O_EXCL when opening the device rw
       tests: Increase the size of the sparse file used by tests
       libgfs2: Remove new_rgrps from struct gfs2_sbd
       libgfs2: Remove start and length from struct rgrp_tree
       fsck.gfs2: Simplify compute_rgrp_layout()
       fsck.gfs2: Simplify how_many_rgrps()
       libgfs2: Remove rgcalc from struct gfs2_sbd
       fsck.gfs2: Rename rg_repair() to rindex_repair()
       gfs2_edit: Fix NULL check in print_block_type()
       libgfs2: Fix leak of bh in read_sb()
       libgfs2: Remove unnecessary cast from gfs2_lookupi()
       gfs2_edit: Don't free buf in save_leaf_chain()
       libgfs2: Remove sd_max_dirres from struct gfs2_sbd
       libgfs2: Remove unused fields from struct gfs2_sbd
       libgfs2: Rename sdp->time to sdp->sd_time
       gfs2_grow.8: Man page improvements
       docs: Update branch name in README.contributing
       tunegfs2: Use PRIu64 instead of casting uint64_t to unsigned long 
long
       gfs2_convert: Use PRIu64 instead of casting uint64_t to unsigned 
long long
       mkfs.gfs2: Use PRIu64 instead of casting uint64_t to unsigned 
long long
       gfs2_grow: Use PRIu64 instead of casting uint64_t to unsigned 
long long
       gfs2_edit: Use PRIu64 instead of casting uint64_t to unsigned 
long long
       libgfs2: Use PRIu64 instead of casting uint64_t to unsigned long long
       glocktop: Use PRIu64 instead of casting uint64_t to unsigned long 
long
       fsck.gfs2: Use PRIu64 instead of casting uint64_t to unsigned 
long long
       fsck.gfs2: Rename warm_fuzzy_stuff()
       Update copyright notices
       Update translation template
       configure: Fix check for bzip2
       fsck.gfs2: Clean up set_block_ranges()
       gfs2_jadd: Clean up definitions from linux/fs.h
       libgfs2: Move debugging printf out of build_master()
       libgfs2: Rework lgfs2_build_jindex()
       libgfs2: Move build_jindex() into fsck.gfs2
       libgfs2: Push down build_per_node() into the utils
       libgfs2: Return the inode from build_inum_range()
       libgfs2: Return the inode from build_statfs_change()
       libgfs2: Return the inode from build_quota_change()
       libgfs2: Return the inode from build_inum()
       libgfs2: Return the inode from build_statfs()
       libgfs2: Return the inode from build_rindex()
       libgfs2: Return the inode from build_quota()
       libgfs2: Move debugging printf out of build_root()
       libgfs2: Remove debugging printf from do_init_statfs()
       libgfs2: Move debugging output out of do_init_inum()
       libgfs2: Remove debugging printfs from fix_device_geometry()
       libgfs2: Remove config.[ch]
       libgfs2: Move struct printing functions out of libgfs2
       libgfs2: Remove print_it extern requirement
       gfs2_edit: Clean up some unused macros
       gfs2_edit: Remove the remaining die() calls
       gfs2_edit: Fix usage of getch()
       libgfs2: Namespace improvements - structures.c
       libgfs2: Namespace improvements - buf.c
       libgfs2: Namespace improvements - fs_ops.c
       libgfs2: Namespace improvements - fs_bits.c
       libgfs2: Namespace improvements - gfs1.c
       libgfs2: Namespace improvements - misc.c
       libgfs2: Namespace improvements - rgrp.c
       libgfs2: Namespace improvements - super.c
       libgfs2: Namespace improvements - gfs2_disk_hash.c
       libgfs2: Remove revoke function declarations from libgfs2.h
       libgfs2: Namespace improvements - recovery.c
       libgfs2: Namespace improvements - device_geometry.c
       libgfs2: Namespace improvements - struct gfs2_inode
       libgfs2: Namespace improvements - struct gfs2_buffer_head
       libgfs2: Namespace improvements - struct gfs2_sbd
       libgfs2: Namespace improvements - struct metapath
       libgfs2: Namespace improvements - struct master_dir
       libgfs2: Namespace improvements - struct device
       libgfs2: Namespace improvements - struct gfs2_bitmap
       libgfs2: Namespace improvements - constants
       libgfs2: Namespace improvements - struct rgrp_tree
       fsck.gfs2: Reorganize pass1_fxns
       tests: Regenerate testvol where needed
       tests: Add an option to clean up the testvol file unconditionally
       Excplicitly ignore posix_fadvise() return value
       Add basic unit tests for lgfs2_lookupi()
       Use calloc in test_rgrps_write_final()
       gfs2_jadd.8: Man page improvements
       gfs2l: Remove redundant #include <sys/queue.h>
       Don't use glibc internal symbols
       Add LTLIBINTL to LDADD where needed
       fsck.gfs2: Use atexit() where on_exit() is not available
       mkfs.gfs2: Use realpath() instead of canonicalize_file_name()
       Configure script updates
       mkfs.gfs2: Add -U UUID option
       gfs2_convert: Fix uninitialized usage warning
       fsck.gfs2: Introduce struct fsck_cx
       fsck.gfs2: Pass the fsck_cx into the metawalk_fxns
       fsck.gfs2: Don't define names in the gfs2_ namespace
       fsck.gfs2: Move the global dup_blocks into fsck_cx
       fsck.gfs2: Move the global dirtree into fsck_cx
       fsck.gfs2: Move the global inodetree into fsck_cx
       fsck.gfs2: Move the global preen into fsck_options
       fsck.gfs2: Move the global force_check into fsck_options
       fsck.gfs2: Pass fsck_options into initialize()
       fsck.gfs2: Pass fsck_options into replay_journals()
       fsck.gfs2: Pass fsck_options into recover_journal()
       fsck.gfs2: Pass fsck_options into preen_is_safe()
       fsck.gfs2: Pass fsck_options into destroy()
       fsck.gfs2: Remove unused query field from fsck_options
       fsck.gfs2: Add an options pointer to fsck_cx
       fsck.gfs2: Pass fsck_cx into check_rgrp(s)_integrity()
       fsck.gfs2: Pass fsck_cx into rebuild_master()
       fsck.gfs2: Pass fsck_cx into lookup_per_node()
       fsck.gfs2: Pass fsck_cx into fill_super_block()
       fsck.gfs2: Pass fsck_cx into sb_repair()
       fsck.gfs2: Pass fsck_cx into peruse_metadata()
       fsck.gfs2: Pass fsck_cx into peruse_{system,user}_dinode()
       fsck.gfs2: Pass fsck_cx into reconstruct_journals()
       fsck.gfs2: Pass fsck_cx into correct_journal_seg_size()
       fsck.gfs2: Pass fsck_cx into reset_journal_seg_size()
       fsck.gfs2: Pass fsck_cx into init_rindex()
       fsck.gfs2: Pass fsck_cx into ask_remove_eattr_entry()
       fsck.gfs2: Pass fsck_cx into check_i_goal()
       fsck.gfs2: Pass fsck_cx into handle_inconsist()
       fsck.gfs2: Pass fsck_cx into update_rgrp()
       fsck.gfs2: Pass fsck_cx into check_block_status()
       fsck.gfs2: Pass fsck_cx into rewrite_rg_block()
       fsck.gfs2: Pass fsck_cx into fsck_query()
       fsck.gfs2: Remove the global opts variable
       Remove sd_bsize assignments which have no effect
       mkfs.gfs2: Improve journal write error reporting
       Remove dependency on linux/fs.h
       Remove dependency on linux/limits.h
       README: Remove kernel headers requirement
       configure: Only use AC_PROG_CC_C99 for autoconf < 2.70
       Add configure~ to .gitignore
       Add error checking to lgfs2_build_height()
       Add error checking to lgfs2_block_map()
       Add error checking to lgfs2_gfs1_block_map()
       Don't call exit() in lgfs2_write_journal
       Don't call exit() in lgfs2_build_quota_change
       Remove lgfs2_breadm()
       Add error checking to lgfs2_unstuff_dinode()
       Remove some exit() calls
       Add error checking to lgfs2_dir_split_leaf()
       Add error checking to dir_make_exhash()
       Add error checking to dir_double_exhash()
       libgfs2: Remove the remaining exit() calls
       libgfs2: Add member name prefixes to struct _lgfs2_rgrps
       libgfs2: Make sure block_alloc() fails when out of space
       libgfs2: Add unit tests for lgfs2_dinode_alloc()
       Add "tags" to .gitignore
       Update year in copyright notices
       libgfs2: Add unit test for lgfs2_meta_alloc()
       libgfs2: Remove rgrps count from struct lgfs2_sbd
       libgfs2: Consistently use rt_ prefix in struct lgfs2_rgrp_tree
       mkfs.gfs2: Add a root_inherit_jdata extended option
       libgfs2: Return the inode from lgfs2_lookupi()
       libgfs2: Remove lgfs2_gfs_createi()
       libgfs2: Reorganise lgfs2_createi()
       fsck.gfs2: Remove de variable from dirref_find()
       fsck.gfs2: Fix wrong entry used in dentry comparison
       fsck.gfs2: fix_hashtable: Decrement i_blocks when freeing leaf blocks
       Free per_node in build_per_node error paths
       Silence some coverity false-positives
       libgfs2: Add lgfs2_inode_free()
       libgfs2: Add lgfs2_bfree()
       Fix potential resource leaks spotted by coverity
       mkfs.gfs2: Fix bounds checking in parse_ulong()
       Suppress some copy-and-paste coverity warnings
       Fix up some unused value warnings
       Fix use-after-free warnings from coverity
       mkfs.gfs2: Annotate a TOCTOU false-positive
       Silence some false "weak crypto" warnings
       savemeta: Silence an infinite loop false-positive
       libgfs2: Fix potential NULL deref in lgfs2_lookupi()
       Suppress coverity warning in osi_erase()
       fsck.gfs2: Double check that the sysinode pointer has been set
       gfs2_grow: Don't free rgs when it's NULL
       Annotate coverity false-positive in find_next_rgrp_dist()
       Fix an overflow-before-widening warning in find_print_block_rg()
       Fix overflow-before-widen coverity warnings
       Fix uninitialized memory coverity warnings
       Annotate "overrun" coverity false-positive warnings
       Update translation template
       Prepare for version 3.5.0

Fabio M. Di Nitto (3):
       build: use c99 code build option
       build: clean up test/Makefile.am
       build: allow testvol location to be configurable.

Sergei Trofimovich (1):
       gfs2/edit: always use "%s"-style format for printf()-style functions


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Cluster-devel] [ClusterLabs] gfs2-utils 3.5.0 released
  2023-02-09 13:12 [Cluster-devel] gfs2-utils 3.5.0 released Andrew Price
@ 2023-02-11 17:16 ` Valentin Vidić
  2023-02-13  9:58   ` Andrew Price
  0 siblings, 1 reply; 8+ messages in thread
From: Valentin Vidić @ 2023-02-11 17:16 UTC (permalink / raw)
  To: cluster-devel.redhat.com

On Thu, Feb 09, 2023 at 01:12:58PM +0000, Andrew Price wrote:
> gfs2-utils contains the tools needed to create, check, modify and inspect
> gfs2 filesystems along with support scripts needed on every gfs2 cluster
> node.

Hi,

Some tests seem to be failing for the new version in Debian:

gfs2_edit tests

 37: Save/restoremeta, defaults                      FAILED (edit.at:14)
 38: Save/restoremeta, no compression                FAILED (edit.at:24)
 39: Save/restoremeta, min. block size               FAILED (edit.at:34)
 40: Save/restoremeta, 4 journals                    FAILED (edit.at:44)
 41: Save/restoremeta, min. block size, 4 journals   FAILED (edit.at:54)
 42: Save metadata to /dev/null                      ok

It seems this is all on 32-bit architectures, more info here:

https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=armel&ver=3.5.0-1&stamp=1676127480&raw=0
https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=armhf&ver=3.5.0-1&stamp=1676127632&raw=0
https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=i386&ver=3.5.0-1&stamp=1676127477&raw=0
https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=mipsel&ver=3.5.0-1&stamp=1676130593&raw=0

Can you check?

-- 
Valentin


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Cluster-devel] [ClusterLabs] gfs2-utils 3.5.0 released
  2023-02-11 17:16 ` [Cluster-devel] [ClusterLabs] " Valentin Vidić
@ 2023-02-13  9:58   ` Andrew Price
  2023-02-13 16:54     ` Andrew Price
  2023-02-14  5:18     ` Fabio M. Di Nitto
  0 siblings, 2 replies; 8+ messages in thread
From: Andrew Price @ 2023-02-13  9:58 UTC (permalink / raw)
  To: cluster-devel.redhat.com

On 11/02/2023 17:16, Valentin Vidi? wrote:
> On Thu, Feb 09, 2023 at 01:12:58PM +0000, Andrew Price wrote:
>> gfs2-utils contains the tools needed to create, check, modify and inspect
>> gfs2 filesystems along with support scripts needed on every gfs2 cluster
>> node.
> 
> Hi,
> 
> Some tests seem to be failing for the new version in Debian:
> 
> gfs2_edit tests
> 
>   37: Save/restoremeta, defaults                      FAILED (edit.at:14)
>   38: Save/restoremeta, no compression                FAILED (edit.at:24)
>   39: Save/restoremeta, min. block size               FAILED (edit.at:34)
>   40: Save/restoremeta, 4 journals                    FAILED (edit.at:44)
>   41: Save/restoremeta, min. block size, 4 journals   FAILED (edit.at:54)
>   42: Save metadata to /dev/null                      ok
> 
> It seems this is all on 32-bit architectures, more info here:
> 
> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=armel&ver=3.5.0-1&stamp=1676127480&raw=0
> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=armhf&ver=3.5.0-1&stamp=1676127632&raw=0
> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=i386&ver=3.5.0-1&stamp=1676127477&raw=0
> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=mipsel&ver=3.5.0-1&stamp=1676130593&raw=0
> 
> Can you check?
> 

The smoking gun is

     "stderr:
     Error: File system is too small to restore this metadata.
     File system is 524287 blocks. Restore block = 537439"

It's caused by size_t being used for a variable relating to file size 
and it's too small in 32-bit environments.

It should be fixed by this commit: 
https://pagure.io/fork/andyp/gfs2-utils/c/a3f3aadc789f214cd24606808f5d8a6608e10219

It's waiting for the CI queue to flush after last week's outage but it 
should be in main shortly.

I doubt we have any users on 32-bit architectures but perhaps we can get 
a 32-bit test runner added to the CI pool to prevent these issues 
slipping through anyway.

Are you happy to carry the patch or do you think this is worth a 3.5.1?

Thanks,
Andy


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Cluster-devel] [ClusterLabs] gfs2-utils 3.5.0 released
  2023-02-13  9:58   ` Andrew Price
@ 2023-02-13 16:54     ` Andrew Price
  2023-02-13 23:52       ` Valentin Vidic
  2023-02-14  5:18     ` Fabio M. Di Nitto
  1 sibling, 1 reply; 8+ messages in thread
From: Andrew Price @ 2023-02-13 16:54 UTC (permalink / raw)
  To: cluster-devel.redhat.com

On 13/02/2023 09:58, Andrew Price wrote:
> On 11/02/2023 17:16, Valentin Vidi? wrote:
>> On Thu, Feb 09, 2023 at 01:12:58PM +0000, Andrew Price wrote:
>>> gfs2-utils contains the tools needed to create, check, modify and 
>>> inspect
>>> gfs2 filesystems along with support scripts needed on every gfs2 cluster
>>> node.
>>
>> Hi,
>>
>> Some tests seem to be failing for the new version in Debian:
>>
>> gfs2_edit tests
>>
>> ? 37: Save/restoremeta, defaults????????????????????? FAILED (edit.at:14)
>> ? 38: Save/restoremeta, no compression??????????????? FAILED (edit.at:24)
>> ? 39: Save/restoremeta, min. block size?????????????? FAILED (edit.at:34)
>> ? 40: Save/restoremeta, 4 journals??????????????????? FAILED (edit.at:44)
>> ? 41: Save/restoremeta, min. block size, 4 journals?? FAILED (edit.at:54)
>> ? 42: Save metadata to /dev/null????????????????????? ok
>>
>> It seems this is all on 32-bit architectures, more info here:
>>
>> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=armel&ver=3.5.0-1&stamp=1676127480&raw=0
>> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=armhf&ver=3.5.0-1&stamp=1676127632&raw=0
>> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=i386&ver=3.5.0-1&stamp=1676127477&raw=0
>> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=mipsel&ver=3.5.0-1&stamp=1676130593&raw=0
>>
>> Can you check?
>>
> 
> The smoking gun is
> 
>  ??? "stderr:
>  ??? Error: File system is too small to restore this metadata.
>  ??? File system is 524287 blocks. Restore block = 537439"
> 
> It's caused by size_t being used for a variable relating to file size 
> and it's too small in 32-bit environments.
> 
> It should be fixed by this commit: 
> https://pagure.io/fork/andyp/gfs2-utils/c/a3f3aadc789f214cd24606808f5d8a6608e10219
> 
> It's waiting for the CI queue to flush after last week's outage but it 
> should be in main shortly.

It's now in main: https://pagure.io/gfs2-utils/c/a3f3aadc

Andy

> I doubt we have any users on 32-bit architectures but perhaps we can get 
> a 32-bit test runner added to the CI pool to prevent these issues 
> slipping through anyway.
> 
> Are you happy to carry the patch or do you think this is worth a 3.5.1?
> 
> Thanks,
> Andy


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Cluster-devel] [ClusterLabs] gfs2-utils 3.5.0 released
  2023-02-13 16:54     ` Andrew Price
@ 2023-02-13 23:52       ` Valentin Vidic
  0 siblings, 0 replies; 8+ messages in thread
From: Valentin Vidic @ 2023-02-13 23:52 UTC (permalink / raw)
  To: cluster-devel.redhat.com

On Mon, Feb 13, 2023 at 04:54:26PM +0000, Andrew Price wrote:
> It's now in main: https://pagure.io/gfs2-utils/c/a3f3aadc

Great, thank you for the quick response. Updated package is building
correctly now:

https://buildd.debian.org/status/package.php?p=gfs2-utils

-- 
Valentin


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Cluster-devel] [ClusterLabs] gfs2-utils 3.5.0 released
  2023-02-13  9:58   ` Andrew Price
  2023-02-13 16:54     ` Andrew Price
@ 2023-02-14  5:18     ` Fabio M. Di Nitto
  2023-02-14 20:17       ` Valentin Vidic
  1 sibling, 1 reply; 8+ messages in thread
From: Fabio M. Di Nitto @ 2023-02-14  5:18 UTC (permalink / raw)
  To: cluster-devel.redhat.com



On 13/02/2023 10.58, Andrew Price wrote:
> On 11/02/2023 17:16, Valentin Vidi? wrote:
>> On Thu, Feb 09, 2023 at 01:12:58PM +0000, Andrew Price wrote:
>>> gfs2-utils contains the tools needed to create, check, modify and 
>>> inspect
>>> gfs2 filesystems along with support scripts needed on every gfs2 cluster
>>> node.
>>
>> Hi,
>>
>> Some tests seem to be failing for the new version in Debian:
>>
>> gfs2_edit tests
>>
>> ? 37: Save/restoremeta, defaults????????????????????? FAILED (edit.at:14)
>> ? 38: Save/restoremeta, no compression??????????????? FAILED (edit.at:24)
>> ? 39: Save/restoremeta, min. block size?????????????? FAILED (edit.at:34)
>> ? 40: Save/restoremeta, 4 journals??????????????????? FAILED (edit.at:44)
>> ? 41: Save/restoremeta, min. block size, 4 journals?? FAILED (edit.at:54)
>> ? 42: Save metadata to /dev/null????????????????????? ok
>>
>> It seems this is all on 32-bit architectures, more info here:
>>
>> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=armel&ver=3.5.0-1&stamp=1676127480&raw=0
>> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=armhf&ver=3.5.0-1&stamp=1676127632&raw=0
>> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=i386&ver=3.5.0-1&stamp=1676127477&raw=0
>> https://buildd.debian.org/status/fetch.php?pkg=gfs2-utils&arch=mipsel&ver=3.5.0-1&stamp=1676130593&raw=0
>>
>> Can you check?
>>
> 
> The smoking gun is
> 
>  ??? "stderr:
>  ??? Error: File system is too small to restore this metadata.
>  ??? File system is 524287 blocks. Restore block = 537439"
> 
> It's caused by size_t being used for a variable relating to file size 
> and it's too small in 32-bit environments.
> 
> It should be fixed by this commit: 
> https://pagure.io/fork/andyp/gfs2-utils/c/a3f3aadc789f214cd24606808f5d8a6608e10219
> 
> It's waiting for the CI queue to flush after last week's outage but it 
> should be in main shortly.
> 
> I doubt we have any users on 32-bit architectures but perhaps we can get 
> a 32-bit test runner added to the CI pool to prevent these issues 
> slipping through anyway.

We had to drop i686 from CI for lack of BaseOS support of 32bit 
OpenStack / Cloud images.

Also, other HA tools like pacemaker, have dropped 32bit support a while 
back. Not sure it?s worth the troubles any more.

If Valentin has an easy way to setup a 64 bit Debian based that will 
build a 32bit env with easy envvar overrides, I am happy to add it to 
the pool for gfs2-utils, but I am not going to build pure i686 images 
for that.

The process would have to look like:

<deploy amd64 debian image and add to CI> (usual)
apt-get install <list of packages + 32 bit versions of them>
git clone gfs2-utils
export CFLAGS/LDFLAGS/CC or whatever env var
<normal build bits go here>
./autogen.sh
./configure..
make
make <tests>

Using other build tools like debbuild or mock has been problematic in 
the past for other projects, might not be the case for gfs2-utils.

so you can try that all in a local VM and let me know the steps, then we 
can add it to CI.

Fabio



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Cluster-devel] [ClusterLabs] gfs2-utils 3.5.0 released
  2023-02-14  5:18     ` Fabio M. Di Nitto
@ 2023-02-14 20:17       ` Valentin Vidic
  2023-02-15  4:55         ` Fabio M. Di Nitto
  0 siblings, 1 reply; 8+ messages in thread
From: Valentin Vidic @ 2023-02-14 20:17 UTC (permalink / raw)
  To: cluster-devel.redhat.com

On Tue, Feb 14, 2023 at 06:18:55AM +0100, Fabio M. Di Nitto wrote:
> The process would have to look like:
> 
> <deploy amd64 debian image and add to CI> (usual)
> apt-get install <list of packages + 32 bit versions of them>
> git clone gfs2-utils
> export CFLAGS/LDFLAGS/CC or whatever env var
> <normal build bits go here>
> ./autogen.sh
> ./configure..
> make
> make <tests>
> 
> Using other build tools like debbuild or mock has been problematic in the
> past for other projects, might not be the case for gfs2-utils.
> 
> so you can try that all in a local VM and let me know the steps, then we can
> add it to CI.

Sure, the commands to build and test a 32-bit version look like this for me:

dpkg --add-architecture i386
apt-get update
apt-get install --yes build-essential crossbuild-essential-i386 autoconf automake autopoint autotools-dev bison flex check:i386 libblkid-dev:i386 libbz2-dev:i386 libncurses-dev:i386 libtool pkg-config:i386 zlib1g-dev:i386
./configure --build=x86_64-linux-gnu --host=i686-linux-gnu
make
make check

-- 
Valentin


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Cluster-devel] [ClusterLabs] gfs2-utils 3.5.0 released
  2023-02-14 20:17       ` Valentin Vidic
@ 2023-02-15  4:55         ` Fabio M. Di Nitto
  0 siblings, 0 replies; 8+ messages in thread
From: Fabio M. Di Nitto @ 2023-02-15  4:55 UTC (permalink / raw)
  To: cluster-devel.redhat.com



On 14/02/2023 21.17, Valentin Vidic wrote:
> On Tue, Feb 14, 2023 at 06:18:55AM +0100, Fabio M. Di Nitto wrote:
>> The process would have to look like:
>>
>> <deploy amd64 debian image and add to CI> (usual)
>> apt-get install <list of packages + 32 bit versions of them>
>> git clone gfs2-utils
>> export CFLAGS/LDFLAGS/CC or whatever env var
>> <normal build bits go here>
>> ./autogen.sh
>> ./configure..
>> make
>> make <tests>
>>
>> Using other build tools like debbuild or mock has been problematic in the
>> past for other projects, might not be the case for gfs2-utils.
>>
>> so you can try that all in a local VM and let me know the steps, then we can
>> add it to CI.
> 
> Sure, the commands to build and test a 32-bit version look like this for me:
> 
> dpkg --add-architecture i386

doh.. didn?t think of cross compilation.

> apt-get update
> apt-get install --yes build-essential crossbuild-essential-i386 autoconf automake autopoint autotools-dev bison flex check:i386 libblkid-dev:i386 libbz2-dev:i386 libncurses-dev:i386 libtool pkg-config:i386 zlib1g-dev:i386
> ./configure --build=x86_64-linux-gnu --host=i686-linux-gnu
> make
> make check
> 

ack perfect, we already have a Debian CI builder dedicated to arm cross 
compilation, we can tweak it to add i386 as well.

Thanks
Fabio


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-02-15  4:55 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-09 13:12 [Cluster-devel] gfs2-utils 3.5.0 released Andrew Price
2023-02-11 17:16 ` [Cluster-devel] [ClusterLabs] " Valentin Vidić
2023-02-13  9:58   ` Andrew Price
2023-02-13 16:54     ` Andrew Price
2023-02-13 23:52       ` Valentin Vidic
2023-02-14  5:18     ` Fabio M. Di Nitto
2023-02-14 20:17       ` Valentin Vidic
2023-02-15  4:55         ` Fabio M. Di Nitto

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.