lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <vvorpevngfle6budlgqhmj3f25lb77czzyvd5aa6jil7zkaqgp@weanygri324r>
Date: Thu, 19 Jun 2025 13:50:21 +0200
From: Joel Granados <joel.granados@...nel.org>
To: Bert Karwatzki <spasswolf@....de>
Cc: linux-kernel@...r.kernel.org, linux-next@...r.kernel.org, 
	Waiman Long <longman@...hat.com>, Kees Cook <kees@...nel.org>
Subject: Re: register_syctl_init error in linux-next-20250612

Hey Bert

Thx for the report.

I just tested on my https://git.kernel.org/pub/scm/linux/kernel/git/sysctl/sysctl.git/log/?h=sysctl-next
and can't see the issue. Maybe its something that I'm missing in the
configuration. Do you happen to have your the .config that you used?

On Thu, Jun 12, 2025 at 07:55:13PM +0200, Bert Karwatzki wrote:
> When starting evolution (gnome email client) on my debian sid with
> linux-next-20250612 I get the following error message on the terminal
> emulator (the Gtk messages also occur  when):
> 
> Gtk-Message: 13:34:49.069: Failed to load module "colorreload-gtk-module"
> Gtk-Message: 13:34:49.070: Failed to load module "window-decorations-gtk-module"
> Gtk-Message: 13:34:51.012: Failed to load module "colorreload-gtk-module"
> Gtk-Message: 13:34:51.013: Failed to load module "window-decorations-gtk-module"
> bwrap: Can't read /proc/sys/kernel/overflowuid: No such file or directory
> 
> ** (org.gnome.Evolution:3327): ERROR **: 13:34:51.245: Failed to fully launch dbus-proxy: Der Kindprozess wurde mit Status 1 beendet
> Trace/Breakpoint ausgelöst
> 
> and the following message in dmesg:
> 
> [  305.600587] [      T3327] traps: evolution[3327] trap int3 ip:7f64442d3ab7 sp:7ffc9f4e94d0 error:0 in libglib-2.0.so.0.8400.2[66ab7,7f644428c000+a1000]
> 
> I bisected this to commit cf47285025e6 ("locking/rtmutex: Move max_lock_depth
> into rtmutex.c"). The absence of /proc/sys/kernel/overflow{uid,gid} seems to be the related
> to the start failure, in affected kernel version the files are absent while they're present
> when evolution starts normally.
> 
> Also when booting next-20250612 I get this error message regarding max_lock_depth and
> rtmutex_sysctl_table:
> 
> [    0.234399] [         T1] sysctl duplicate entry: /kernel/max_lock_depth
> [    0.234402] [         T1] failed when register_sysctl_sz rtmutex_sysctl_table to kernel
> [    0.234405] [         T1] sysctl duplicate entry: /kernel/max_lock_depth
> [    0.234407] [         T1] failed when register_sysctl_sz rtmutex_sysctl_table to kernel
that is weird. I made sure that we only call register once. Will test
this on next and see what I get

> 
> Reverting commit cf47285025e6 in next-20250612 fixes the both the "sysctl duplicate
> entry" issue and the missing overflow{gid,uid} files and evolution starts normally again.
I would like to fix this instead of reverting. Let me give it a go and
revert if there is no easy fix.

> 
> As there were conflicts when reverting, here the revert patch for next-20250612
> to illustrate conflict resolution:
Thx for this.

> 
> diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h
> index dc9a51cda97c..7d049883a08a 100644
> --- a/include/linux/rtmutex.h
> +++ b/include/linux/rtmutex.h
> @@ -18,6 +18,8 @@
>  #include <linux/rbtree_types.h>
>  #include <linux/spinlock_types_raw.h>
>  
> +extern int max_lock_depth; /* for sysctl */
> +
>  struct rt_mutex_base {
>  	raw_spinlock_t		wait_lock;
>  	struct rb_root_cached   waiters;
> diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
> index 705a0e0fd72a..c80902eacd79 100644
> --- a/kernel/locking/rtmutex.c
> +++ b/kernel/locking/rtmutex.c
> @@ -29,29 +29,6 @@
>  #include "rtmutex_common.h"
>  #include "lock_events.h"
>  
> -/*
> - * Max number of times we'll walk the boosting chain:
> - */
> -static int max_lock_depth = 1024;
> -
> -static const struct ctl_table rtmutex_sysctl_table[] = {
> -	{
> -		.procname	= "max_lock_depth",
> -		.data		= &max_lock_depth,
> -		.maxlen		= sizeof(int),
> -		.mode		= 0644,
> -		.proc_handler	= proc_dointvec,
> -	},
> -};
> -
> -static int __init init_rtmutex_sysctl(void)
> -{
> -	register_sysctl_init("kernel", rtmutex_sysctl_table);
> -	return 0;
> -}
> -
> -subsys_initcall(init_rtmutex_sysctl);
> -
>  #ifndef WW_RT
>  # define build_ww_mutex()	(false)
>  # define ww_container_of(rtm)	NULL
> diff --git a/kernel/locking/rtmutex_api.c b/kernel/locking/rtmutex_api.c
> index 9e00ea0e5cfa..2d933528a0fa 100644
> --- a/kernel/locking/rtmutex_api.c
> +++ b/kernel/locking/rtmutex_api.c
> @@ -8,6 +8,11 @@
>  #define RT_MUTEX_BUILD_MUTEX
>  #include "rtmutex.c"
>  
> +/*
> + * Max number of times we'll walk the boosting chain:
> + */
> +int max_lock_depth = 1024;
> +
>  /*
>   * Debug aware fast / slowpath lock,trylock,unlock
>   *
> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
> index 0716c7df7243..82af6e6f5dbb 100644
> --- a/kernel/sysctl.c
> +++ b/kernel/sysctl.c
> @@ -23,6 +23,14 @@
>  #include <linux/uaccess.h>
>  #include <asm/processor.h>
>  
> +#ifdef CONFIG_X86
> +#include <asm/nmi.h>
> +#include <asm/io.h>
> +#endif
> +#ifdef CONFIG_RT_MUTEXES
> +#include <linux/rtmutex.h>
> +#endif
> +
>  /* shared constants to be used in various sysctls */
>  const int sysctl_vals[] = { 0, 1, 2, 3, 4, 100, 200, 1000, 3000, INT_MAX, 65535, -1 };
>  EXPORT_SYMBOL(sysctl_vals);
> @@ -1525,6 +1533,15 @@ static const struct ctl_table kern_table[] = {
>  		.proc_handler	= proc_dointvec,
>  	},
>  #endif
> +#ifdef CONFIG_RT_MUTEXES
> +	{
> +		.procname	= "max_lock_depth",
> +		.data		= &max_lock_depth,
> +		.maxlen		= sizeof(int),
> +		.mode		= 0644,
> +		.proc_handler	= proc_dointvec,
> +	},
> +#endif
>  };
>  
>  int __init sysctl_init_bases(void)
> 
> 
> Bert Karwatzki

-- 

Joel Granados

Download attachment "signature.asc" of type "application/pgp-signature" (660 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ