From gerrit@openafs.org Mon May 5 23:44:36 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Mon, 5 May 2025 18:44:36 -0400 Subject: OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_2-220-geddd5a0 Message-ID: <202505052244.545MiaP3166511@openafs.MIT.EDU> The following commit has been merged in the master branch: commit eddd5a060e9ed5acf10ee23359d54e22d4681592 Author: Cheyenne Wills Date: Fri Apr 25 11:43:01 2025 -0600 ubik: Use typedef for ubik_call function parameter One of ubik_Call()/ubik_CallIter()/ubik_Call_SingleServer() parameters is a function pointer (aproc). A function signature for this parameter is not specified which leads to a strict-prototype warning which has been addressed by suppressing the check by adding the -Wno-strict-prototypes compiler flag for the files that need it. A new C standard (C23) is coming out and newer versions of C compilers (e.g. gcc 15) are using the new standard (or an extension of that standard) as their default. The C23 standard has removed the ability to declare functions with unspecified parameters; now any function that is declared as: int foo(); is treated as: int foo(void); Building with gcc-15 results in the following types of compile time errors (even when -Wno-strict-prototypes is used): ubikclient.c: In function ‘CallIter’: ubikclient.c:391:10: error: too many arguments to function ‘aproc’; expected 0, have 17 391 | (*aproc) (tc, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, | ~^~~~~~~ ~~ ubikclient.c: In function ‘ubik_Call’: ubikclient.c:577:18: error: too many arguments to function ‘aproc’; expected 0, have 17 577 | (*aproc) (tc, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, | ~^~~~~~~ ~~ To avoid this error, we must declare the parameters for the 'aproc' function pointer. Define a typedef, ubik_call_func, that can be used to define the data type for the function parameter and can also be used as a cast on the function parameter when calling ubik_Call() ubik_CallIter() or ubik_Call_SingleServer(). Update the function prototypes and definitions for ubik_Call() ubik_CallIter() and ubik_Call_SingleServer(), and add casts where needed. Define "UBIK_LEGACY_CALLITER" in ubik_db_if.c, so it can also use the ubik_call_func typedef for its ubik_Call_SingleServer variant. Remove the -Wno-strict-prototypes for the files that were updated. The CFLAGS_NOSTRICT_PROTOTYPES autoconf var is now unused, so remove it. Some minor whitespace/indentation cleanup. Note: This problem occurred on Fedora 42 which comes with gcc 15. Change-Id: Ib5e069ac3a0c16498161b70ee121666f02e5276e Reviewed-on: https://gerrit.openafs.org/16370 Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Cheyenne Wills Tested-by: Cheyenne Wills Reviewed-by: Andrew Deason doc/process/compiler-warnings.md | 5 ----- src/bucoord/Makefile.in | 1 - src/bucoord/ubik_db_if.c | 7 ++++--- src/cf/osconf.m4 | 3 --- src/kauth/Makefile.in | 3 --- src/kauth/admin_tools.c | 4 ++-- src/kauth/authclient.c | 8 ++++---- src/libadmin/kas/Makefile.in | 1 - src/libadmin/kas/afs_kasAdmin.c | 4 ++-- src/tbutc/Makefile.in | 1 - src/ubik/Makefile.in | 2 -- src/ubik/ubik.p.h | 13 ++++++++++--- src/ubik/ubikclient.c | 8 ++++---- 13 files changed, 26 insertions(+), 34 deletions(-) -- OpenAFS Master Repository From gerrit@openafs.org Thu May 15 17:41:01 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Thu, 15 May 2025 12:41:01 -0400 Subject: OpenAFS Master Repository branch, openafs-stable-1_8_x, updated. openafs-stable-1_8_13_2-41-g6f8c509 Message-ID: <202505151641.54FGf1mQ133319@openafs.MIT.EDU> The following commit has been merged in the openafs-stable-1_8_x branch: commit df76aa14e71d26d5d2e43e41d9de56a7fa5cfcf7 Author: Marcio Barbosa Date: Mon Jul 22 02:25:02 2024 -0700 DARWIN: Set workIPArray to nil in commitModify Address potential memory issues by setting workIPArray to nil after releasing it in commitModify. This prevents dangling pointers and ensures consistency with rollbackModify, which already includes this safeguard. Without this change, PrefPane can crash upon closing the window used for setting IP addresses of cells in the CellServDB. Reviewed-on: https://gerrit.openafs.org/15962 Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale (cherry picked from commit e45d0bd1e1ff500ace7b50ad7ea83d8ddf8b7e1c) Change-Id: I68082b1679a50a87a161dd03cf56ef88197fe0e6 Reviewed-on: https://gerrit.openafs.org/16066 Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Marcio Brito Barbosa Tested-by: BuildBot Reviewed-by: Benjamin Kaduk src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.m | 1 + 1 file changed, 1 insertion(+) -- OpenAFS Master Repository From gerrit@openafs.org Thu May 15 17:41:01 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Thu, 15 May 2025 12:41:01 -0400 Subject: OpenAFS Master Repository branch, openafs-stable-1_8_x, updated. openafs-stable-1_8_13_2-41-g6f8c509 Message-ID: <202505151641.54FGf1Tn133328@openafs.MIT.EDU> The following commit has been merged in the openafs-stable-1_8_x branch: commit 6f8c5093a4f82b627277f1291071667bef53f0d3 Author: Marcio Barbosa Date: Thu Nov 21 06:05:12 2024 -0800 DARWIN: Use NSUInteger for indexGreaterThanIndex return value The indexGreaterThanIndex function returns the closest index from the index set that is greater than a specified index. This function is typically used in a loop to iterate through a list of items until it returns NSNotFound, indicating the end of the list. In AFSCommanderPref.m, the following pattern is being used: int index = 0; do { ... } while((index = [... indexGreaterThanIndex:index]) != NSNotFound); The issue arises because indexGreaterThanIndex returns an NSUInteger, while the loop uses an int for index. If NSNotFound is cast to an int, it becomes -1, causing the loop to never terminate and leading to a crash. To fix this problem, change the type of index from int to NSUInteger to ensure proper comparison and termination of the loop when NSNotFound is returned. Reviewed-on: https://gerrit.openafs.org/15961 Reviewed-by: Michael Meffie Reviewed-by: Cheyenne Wills Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Andrew Deason (cherry picked from commit d76df7cb24a7d5c12dcbe2a60cf34d1a6f158c76) Change-Id: I270bdf5fefbb32062e56e2e6f3908669738ef819 Reviewed-on: https://gerrit.openafs.org/16067 Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Marcio Brito Barbosa Tested-by: BuildBot Reviewed-by: Benjamin Kaduk src/platform/DARWIN/AFSPreference/AFSCommanderPref.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -- OpenAFS Master Repository From gerrit@openafs.org Fri May 16 17:18:29 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Fri, 16 May 2025 12:18:29 -0400 Subject: OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_2-221-gd7d28e4 Message-ID: <202505161618.54GGITMP190410@openafs.MIT.EDU> The following commit has been merged in the master branch: commit d7d28e4c9eae13e7e306e7017017aa9b7b46bffb Author: Sahil Siddiq Date: Fri May 16 00:35:53 2025 +0530 doc: Add Arch Linux build instructions Add instructions to build OpenAFS from source on Arch Linux. Change-Id: I3ee7a120d89131d745bdecfabf95635f07c5e5cb Reviewed-on: https://gerrit.openafs.org/16381 Tested-by: BuildBot Reviewed-by: Michael Meffie doc/process/howto-build-openafs.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) -- OpenAFS Master Repository From gerrit@openafs.org Sun May 18 23:03:21 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Sun, 18 May 2025 18:03:21 -0400 Subject: OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_2-222-g0db3b2f Message-ID: <202505182203.54IM3LfD020179@openafs.MIT.EDU> The following commit has been merged in the master branch: commit 0db3b2f092a62a00637b79b42a60ced140ea1a0f Author: Andrew Deason Date: Thu May 8 11:23:35 2025 -0500 DARWIN: Improve ProcessRequest retval docs ProcessRequest() documents one of its possible return values as the return value of system(), but we don't actually call system(); instead we get this value from waitpid(). Document it as the wait status from waitpid. Change-Id: I9234b2fd1338afad5aa445a54cc24f6e3f35b057 Reviewed-on: https://gerrit.openafs.org/16371 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot Reviewed-by: Cheyenne Wills src/platform/DARWIN/PrivilegedHelper/privhelper.c.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- OpenAFS Master Repository From gerrit@openafs.org Tue May 20 18:46:31 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Tue, 20 May 2025 13:46:31 -0400 Subject: OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_2-223-g3cf71a0 Message-ID: <202505201746.54KHkVgk018666@openafs.MIT.EDU> The following commit has been merged in the master branch: commit 3cf71a09949f4a84f3b915f2633dc1238dc65816 Author: Cheyenne Wills Date: Fri May 2 16:39:15 2025 -0600 packaging: Remove old 1.4.0 patch file The commit 'redhat-packaging-non-stable-branches-20090203' (0ac1e741783e) removed the inclusion of the openafs-1.4.0-kmodule26.patch from the Redhat rpm spec file. Delete the old file. Change-Id: I9913e89da1940dd4d19ddfce1aef9f78b5fef96e Reviewed-on: https://gerrit.openafs.org/16325 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie src/packaging/RedHat/openafs-1.4.0-kmodule26.patch | 17 ----------------- 1 file changed, 17 deletions(-) -- OpenAFS Master Repository From gerrit@openafs.org Thu May 22 21:52:32 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Thu, 22 May 2025 16:52:32 -0400 Subject: OpenAFS Master Repository branch, openafs-stable-1_8_x, updated. openafs-stable-1_8_13_2-45-gef0b3fc Message-ID: <202505222052.54MKqWvG020505@openafs.MIT.EDU> The following commit has been merged in the openafs-stable-1_8_x branch: commit ef0b3fc53c69b54f1c941c942b0d8079f6bf8952 Author: Michael Meffie Date: Fri Sep 15 14:51:55 2023 -0400 fsint: Move RXAFS_StoreACL function declaration Commit 8f1eba056fd (CVE-2018-7168 RXAFS_StoreACL deprecate 134 introduce 164) added RXAFS opcode 164 as RXAFS_StoreACL. This change sensibly added the new opcode 164 between opcodes 163 (RXAFS_DFSSymlink) and 220 (RXAFS_FsCmd) in the afsint.xg file. Unfortunately, the rx rpc call statistics reported over the wire by RXSTATS_RetrieveProcessRPCStats() are given by function index (not opcode). The function index is determined by the function position in the xg file when rxgen generates the RPC stubs. This means following RXAFS RPCs stats are off-by-one in the returned stats block: RXAFS_FsCmd RXAFS_InlineBulkStatus RXAFS_GiveUpAllCallBacks RXAFS_GetCapabilities RXAFS_CallBackRxConnAddr RXAFS_GetStatistics64 Since the RPC call statistics are reported by function index and not opcode, rxstat clients (e.g., rxstat_get_process) report incorrect stats when there is a mismatch between the rxstat client and the fileserver. Move the declaration of RXAFS_StoreACL (164) to be after the last function in afsint.xg file, so the function indices generated by rxgen are not changed for existing functions and the next available function index is assigned to the new RXAFS_StoreACL (164) RPC. Note: The RXSTATS_RetrieveProcessRPCStats() RPC has a parameter to indicate the stat client version, which could be used in the future to support an improved interface, since relying on the function indices is not very robust. Reviewed-on: https://gerrit.openafs.org/15572 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Cheyenne Wills Reviewed-by: Mark Vitale Reviewed-by: Benjamin Kaduk (cherry picked from commit 23333c98badd32d5276c571f3106f2de46711b1a) Change-Id: I80b399052a2634c834aff009820c221c480f6f5b Reviewed-on: https://gerrit.openafs.org/16230 Reviewed-by: Michael Meffie Reviewed-by: Benjamin Kaduk Tested-by: BuildBot src/fsint/afsint.xg | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) -- OpenAFS Master Repository From gerrit@openafs.org Thu May 22 21:53:17 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Thu, 22 May 2025 16:53:17 -0400 Subject: OpenAFS Master Repository branch, openafs-stable-1_8_x, updated. openafs-stable-1_8_13_2-46-g8de21fd Message-ID: <202505222053.54MKrHch021495@openafs.MIT.EDU> The following commit has been merged in the openafs-stable-1_8_x branch: commit 8de21fd7614f43ba0a45d1ff25b2411102db2ac8 Author: Cheyenne Wills Date: Wed Apr 7 10:51:58 2021 -0600 cf: Run AFS_LT_INIT after setting CC Since libtool support was introduced for 1.8.x in commit 69f26ece (Add libtool support), we've run LT_INIT or AFS_LT_INIT early on in configure.ac. If CC isn't set, AFS_LT_INIT defaults to using gcc when it's available. On Solaris, we set CC and CFLAGS ourselves later (in osconf.m4) to use the Solaris Studio compiler, but this doesn't change the compiler that AFS_LT_INIT already chose. As a result, on Solaris if no value for CC is given during configure and gcc is available, some libtool commands will try to use gcc with CFLAGS intended for the Solaris Studio compiler, which will fail. /bin/sh ../../libtool --quiet --mode=link --tag=CC ... -mt ... gcc: error: unrecognized command line option '-mt'; did you mean '-t'? To fix this, move AFS_LT_INIT into osconf.m4 after our platform-specific macros have had a chance to set CC. Also move our checks for AR, AS, etc. to after AFS_LT_INIT, since AFS_LT_INIT sets those. Note. Without GCC installed on a Solaris system, libtool will find the Solaris Studio compiler (assuming that PATH is set up correctly) and the build will proceed successfully. Just installing the GCC package is sufficient to break the build. This commit fixes a regression from 1.6.x where having the GCC package installed on the system would not break the build. Reviewed-on: https://gerrit.openafs.org/14585 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot (cherry picked from commit 0a58d21881d7e91deccb416e8d2c272e14b412dd) Change-Id: I6a961a3a5586c6c68ddfc90a758af16b3b45adb8 Reviewed-on: https://gerrit.openafs.org/16097 Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Benjamin Kaduk configure.ac | 2 -- src/cf/osconf.m4 | 26 ++++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) -- OpenAFS Master Repository From gerrit@openafs.org Thu May 22 22:21:23 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Thu, 22 May 2025 17:21:23 -0400 Subject: OpenAFS Master Repository branch, openafs-stable-1_8_x, updated. openafs-stable-1_8_13_2-48-gefc5dc5 Message-ID: <202505222121.54MLLN4l071771@openafs.MIT.EDU> The following commit has been merged in the openafs-stable-1_8_x branch: commit efc5dc5a407955844e513c3f8ad7711ddfc92077 Author: Cheyenne Wills Date: Tue Jun 1 12:17:01 2021 -0600 cf: Fix typo in test for enable-shared/with-swig The commit cf: Disable swig if shared libraries are disabled (0e84b7405) contains a typo in a test: "x$enable_shared" != "yes". This causes configure to exit due to incorrectly testing --enable-shared. Update swig.m4 to correct the typo. Reviewed-on: https://gerrit.openafs.org/14628 Reviewed-by: Benjamin Kaduk Tested-by: Benjamin Kaduk (cherry picked from commit a73d337a55d4800b67b0ce3c60cb1d5f5fbc7519) Change-Id: I4467f8923df376400ac228c31e75f20f356cb81a Reviewed-on: https://gerrit.openafs.org/16101 Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Benjamin Kaduk Tested-by: BuildBot src/cf/swig.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- OpenAFS Master Repository From gerrit@openafs.org Thu May 22 23:15:51 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Thu, 22 May 2025 18:15:51 -0400 Subject: OpenAFS Master Repository branch, openafs-stable-1_8_x, updated. openafs-stable-1_8_13_2-52-g02603ec Message-ID: <202505222215.54MMFpKf156047@openafs.MIT.EDU> The following commit has been merged in the openafs-stable-1_8_x branch: commit 02603ec7bb2b6dadd9fc6f30f1d180732673f3d9 Author: Cheyenne Wills Date: Fri Feb 14 15:18:52 2025 -0700 LINUX: Refactor afs_linux_dentry_revalidate() The signature for Linux's dentry_operations.d_revalidate method has undergone several changes, leading to increased use of #if directives in afs_linux_dentry_revalidate(). To make the code more maintainable for future changes involving the parent inode and the dentry's name, split out most of our logic in afs_linux_dentry_revalidate() into a new function, dentry_revalidate_common(). Keep the logic for getting the parent and checking for LOOKUP_RCU in the caller, afs_linux_dentry_revalidate(). Written in collaboration with adeason@sinenomine.net. Reviewed-on: https://gerrit.openafs.org/16258 Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Cheyenne Wills Tested-by: Cheyenne Wills Reviewed-by: Andrew Deason (cherry picked from commit 4702930f8dd87a6cad1d59ef8c127003fded1f31) Change-Id: Iae781913ec933e79ca47cdf043e729e50c1b2a6d Reviewed-on: https://gerrit.openafs.org/16276 Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Benjamin Kaduk src/afs/LINUX/osi_vnodeops.c | 92 ++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 45 deletions(-) -- OpenAFS Master Repository From gerrit@openafs.org Thu May 29 17:32:37 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Thu, 29 May 2025 12:32:37 -0400 Subject: OpenAFS Master Repository branch, openafs-stable-1_8_x, updated. openafs-stable-1_8_13_2-54-g4d224c7 Message-ID: <202505291632.54TGWbSJ108016@openafs.MIT.EDU> The following commit has been merged in the openafs-stable-1_8_x branch: commit 4d224c7df7b5e0bf0e17400ad6ef6a05695a60dd Author: Cheyenne Wills Date: Wed Feb 26 08:03:18 2025 -0700 Convert HAVE_STRUCT_LABEL_SUPPORT to AFS_STRUCT_INIT The OpenAFS coding style allows the use of designated initializers for structs, however not all supported platforms have compilers that support it. The preprocessor define HAVE_STRUCT_LABEL_SUPPORT has been available for use so structure initialization can be set up to support compilers that do have designated initializers support. The typical use is: struct foo x = { #ifndef HAVE_STRUCT_LABEL_SUPPORT val1, val2, ... #else .mem1 = val1, .mem2 = val2, ... #endif }; This results in extra lines of code where errors can easily be introduced. Create a macro, AFS_STRUCT_INIT, that uses designated initializers when available, so the above example would be: struct foo x = { AFS_STRUCT_INIT(.mem1, val1), AFS_STRUCT_INIT(.mem2, val2), ... }; Convert the initialization of structures that are using the HAVE_STRUCT_LABEL_SUPPORT define to use AFS_STRUCT_INIT. Note, there is still a requirement that the order of initializers match the order of the elements within the structure, but it should be easier to verify that the initializers are in the proper order. Use a consistent alignment, and add trailing comma on the last element. There are no functional changes made by this commit. Reviewed-on: https://gerrit.openafs.org/16289 Tested-by: BuildBot Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Andrew Deason (cherry picked from commit 7c28b99490b75475ed9130526c536ae0e354e064) Change-Id: I8faa4b497f2962bdd0a4ecb559e8b9288fd5c796 Reviewed-on: https://gerrit.openafs.org/16382 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Benjamin Kaduk src/afs/afs_dcache.c | 66 +++++++++++++++--------------------------------- src/afs/afs_fetchstore.c | 54 ++++++++++++--------------------------- src/config/stds.h | 6 +++++ src/rx/xdr_len.c | 28 ++++++-------------- src/rx/xdr_mem.c | 28 ++++++-------------- src/rx/xdr_rx.c | 28 ++++++-------------- 6 files changed, 66 insertions(+), 144 deletions(-) -- OpenAFS Master Repository From gerrit@openafs.org Thu May 29 18:03:50 2025 From: gerrit@openafs.org (Gerrit Code Review) Date: Thu, 29 May 2025 13:03:50 -0400 Subject: OpenAFS Master Repository branch, openafs-stable-1_8_x, updated. openafs-stable-1_8_13_2-56-g533f424 Message-ID: <202505291703.54TH3o8V148171@openafs.MIT.EDU> The following commit has been merged in the openafs-stable-1_8_x branch: commit 533f4241cc1617e8081236609399e2e41a8048a6 Author: Cheyenne Wills Date: Mon Jan 22 15:06:56 2024 -0700 RedHat: Use KillMode=process for systemd client Our openafs-client.service systemd unit file contains a deprecated option, KillMode=none. Using this option results in the following message with systemd version 246 or later: /lib/systemd/system/openafs-client.service:22: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. Without this option, if someone runs 'systemctl stop openafs-client' and the client fails to shutdown (e.g., because files are accessing /afs), systemd will try to kill all of our afsd processes. Our afsd processes usually either cannot be killed, or will cause unstable behavior if they are killed (because e.g. AFSDB requests cannot be fulfilled). If systemd cannot kill all of our afsd processes, it will wait for a timeout before reporting an error. By default, it waits 90 seconds before sending SIGTERMs, and another 90 seconds before sending SIGKILLs. This means that by default, if someone is using /afs, 'systemctl stop openafs-client' will hang for 3 minutes (!), even though we know immediately that we cannot stop the client. One way to avoid this is using KillMode=none, which skips killing our processes and waiting for any timeouts. To avoid using a deprecated option, switch to using KillMode=process. With KillMode=process, after a failed 'stop', systemd will only try to kill the 'main' pid run by ExecStart. The 'main' pid is detected by systemd either automatically by some heuristic (with GuessMainPID=yes), or by a pid file (when PIDFile= is set). If we disable GuessMainPID and don't set PIDFile, systemd will not try to terminate any of our processes on shutdown. systemd will still try to kill our other remaining processes using SIGKILL, but we can disable that with SendSIGKILL=no. To be safe, also specify KillSignal=SIGCONT to make sure systemd doesn't actually forcibly kill any of our afsd processes. None of this matters during a successful client shutdown, since then all of our afsd processes go away after a successful unmount, and there's nothing to cleanup. Our behavior during a failed 'stop' is still not ideal. After a failed 'stop', systemd will flag the service as "failed (Result: exit-code)". This is similar to a service that is stopped successfully (deactivated), and running 'systemctl stop' on it again does nothing. Running 'systemctl start openafs-client' will try to start the service again, but this will fail because of the ExecStartPre check that runs 'fs sysname', and the service will still be considered failed/deactivated. The only way to fix the situation is for an administrator to run the shutdown sequence manually, unmounting /afs and removing the kernel module themselves, and then starting the client again. That behavior is unfortunate, but seems difficult or impossible to avoid with a single systemd service. Reviewed-on: https://gerrit.openafs.org/15613 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Michael Meffie (cherry picked from commit df3b8129ce9ce3c211e3cfa2033ac72e008f3895) Change-Id: Ifbdcad1e39ce77a63121972d4561424e243ab4d1 Reviewed-on: https://gerrit.openafs.org/16104 Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Benjamin Kaduk src/packaging/RedHat/openafs-client.service | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -- OpenAFS Master Repository