Critical Bug: Randomly freezes to Kernel Panic with blinking Caps Lock

System Info and Version
 System/Version info
Hyprland, built from branch  at commit cba1ade848feac44b2eda677503900639581c3f4  (props: bump version to 0.40.0).
Date: Sat May 4 15:42:32 2024
Tag: v0.40.0, commits: 4606

flags: (if any)

System Information:
System name: Linux
Node name: dell-xps
Release: 6.9.2-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sun, 26 May 2024 01:30:29 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation CometLake-H GT2 [UHD Graphics] [8086:9bc4] (rev 05) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU106M [GeForce RTX 2060 Max-Q] [10de:1f12] (rev a1) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

 System info (extra from fastfetch)
OS: Arch Linux x86_64
Host: XPS 17 9700
Kernel: Linux 6.9.2-arch1-1
Uptime: 31 mins
Packages: 1420 (pacman)
Shell: zsh 5.9
Display (SHP14D6): 3840x2400 @ 60Hz (as 1920x1200) [Built-in]
WM: Hyprland (Wayland)
Theme: Adwaita-dark [GTK2/3]
Icons: Adwaita [GTK2/3], Adwaita-dark [GTK4]
Font: Cantarell (11pt) [GTK2/3]
Cursor: Adwaita (24px)
Terminal: alacritty 0.13.2
Terminal Font: FiraCode Nerd Font (11pt)
CPU: Intel(R) Core(TM) i9-10885H (16) @ 5.30 GHz
GPU 1: NVIDIA GeForce RTX 2060 Max-Q [Discrete]
GPU 2: Intel UHD Graphics @ 1.25 GHz [Integrated]
Memory: 6.24 GiB / 31.09 GiB (20%)
Locale: en_US.UTF-8

 My configs
hyprland.conf
$scrPath = ~/.config/hypr/scripts
# layerrule = blur, waybar

# MONITOR
#
# See https://wiki.hyprland.org/Configuring/Monitors/

#monitor=eDP-1,3840x2400@59.99400,0x0,auto
#monitor=,highres,auto,2
monitor = ,preferred,auto,auto

xwayland {
 force_zero_scaling = true
}

# LAUNCH
#
# See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox

exec-once = $scrPath/resetxdgportal.sh # reset XDPH for screenshare
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
exec-once = dbus-update-activation-environment --systemd --all # for XDPH
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME
exec-once = /usr/lib/polkit-kde-authentication-agent-1
exec-once = waybar
exec-once = hypridle
exec-once = blueman-applet # systray app for BT
exec-once = nm-applet --indicator # systray app for Network/Wifi
exec-once = dunst
exec-once = wl-paste --type text --watch cliphist store # Stores only text data
exec-once = wl-paste --type image --watch cliphist store # Stores only image data

exec-once = swww init
exec-once = swww img ~/Pictures/Wallpapers/

# ENV
#
source = ~/.config/hypr/env.conf

misc {
  disable_hyprland_logo=true
}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 2
    gaps_out = 2
    border_size = 1
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    layout = dwindle
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 4

    # blur {
    #     enabled = true
    #     size = 15
    #     passes = 1
    # }

    # drop_shadow = yes
    # shadow_range = 4
    # shadow_render_power = 3
    # col.shadow = rgba(1a1a1aee)
}

# INPUTS
#

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = us,ru
    kb_variant =
    kb_model =
    kb_options = grp:win_space_toggle, grp:alt_shift_toggle
    kb_rules =

    follow_mouse = 1

    touchpad {
        natural_scroll = yes
	drag_lock = false
    }

    # sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
    # accel_profile = flat
    accel_profile=custom 1 0.0 1.0
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = on
    workspace_swipe_forever = true
    workspace_swipe_direction_lock = false
    # workspace_swipe_use_r = false
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
# device:epic-mouse-v1 {
#     sensitivity = -0.5
# }

# LAYOUTS
#
dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = yes # you probably want this
}

master {
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    new_is_master = true
}

# SOURCE
#
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# ANIMATIONS
#
source = ~/.config/hypr/animations.conf

# KEYBINDINGS
#
source = ~/.config/hypr/keybindings.conf

# WINDOWRULES
#
source = ~/.config/hypr/windowrules.conf

env.conf
# env
#
# some default env vars.
env = XDG_CURRENT_DESKTOP=Hyprland
env = XDG_SESSION_TYPE=wayland
env = XDG_SESSION_DESKTOP=Hyprland
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt5ct
env = XCURSOR_SIZE,24
env = MOZ_ENABLE_WAYLAND,1

# toolkit-specific scale
env = GDK_SCALE,2
env = XCURSOR_SIZE,32

# nvidia
# env = GBM_BACKEND,nvidia-drm
# env = LIBVA_DRIVER_NAME,nvidia
# env = VDPAU_DRIVER,nvidia
# env = NVD_BACKEND,direct
# env = NVD_GPU,0
# env = __NV_PRIME_RENDER_OFFLOAD,1
# env = DRI_PRIME,pci-0000_01_00_0
# env = __VK_LAYER_NV_optimus,NVIDIA_only
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = __GL_VRR_ALLOWED,1
env = WLR_NO_HARDWARE_CURSORS,1
env = WLR_DRM_NO_ATOMIC,1

scripts/resetxdgportal.sh
#!/usr/bin/env bash
sleep 1
killall -e xdg-desktop-portal-hyprland
killall -e xdg-desktop-portal-wlr
killall xdg-desktop-portal
/usr/lib/xdg-desktop-portal-hyprland &
sleep 2
/usr/lib/xdg-desktop-portal &

animations.conf
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

animations {
    enabled = yes

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

hypridle.conf
general {
    lock_cmd = pidof hyprlock || hyprlock       # avoid starting multiple hyprlock instances.
    before_sleep_cmd = loginctl lock-session    # lock before suspend.
    after_sleep_cmd = hyprctl dispatch dpms on  # to avoid having to press a key twice to turn on the display.
}

listener {
    timeout = 150                                # 2.5min.
    on-timeout = brightnessctl -s set 10         # set monitor backlight to minimum, avoid 0 on OLED monitor.
    on-resume = brightnessctl -r                 # monitor backlight restore.
}

# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
listener {
    timeout = 150                                          # 2.5min.
    on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
    on-resume = brightnessctl -rd rgb:kbd_backlight        # turn on keyboard backlight.
}

listener {
    timeout = 300                                 # 5min
    on-timeout = loginctl lock-session            # lock screen when timeout has passed
}

listener {
    timeout = 330                                 # 5.5min
    on-timeout = hyprctl dispatch dpms off        # screen off when timeout has passed
    on-resume = hyprctl dispatch dpms on          # screen on when activity is detected after timeout has fired.
}

listener {
    timeout = 1800                                # 30min
    on-timeout = systemctl suspend                # suspend pc
}

hyprlock.conf
background {
    monitor =
    path = /home/me/someImage.png   # only png supported for now
    color = rgba(25, 20, 20, 1.0)

    # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
    blur_passes = 0 # 0 disables blurring
    blur_size = 7
    noise = 0.0117
    contrast = 0.8916
    brightness = 0.8172
    vibrancy = 0.1696
    vibrancy_darkness = 0.0
}

label {
    monitor =
    text = Hi there, $USER
    color = rgba(200, 200, 200, 1.0)
    font_size = 25
    font_family = Noto Sans
    rotate = 0 # degrees, counter-clockwise

    position = 0, 80
    halign = center
    valign = center
}

input-field {
    monitor =
    size = 200, 50
    outline_thickness = 3
    dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
    dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
    dots_center = false
    dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
    outer_color = rgb(151515)
    inner_color = rgb(200, 200, 200)
    font_color = rgb(10, 10, 10)
    fade_on_empty = true
    fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
    placeholder_text = Input Password... # Text rendered in the input box when it's empty.
    hide_input = false
    rounding = -1 # -1 means complete rounding (circle/oval)
    check_color = rgb(204, 136, 34)
    fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
    fail_text = $FAIL ($ATTEMPTS) # can be set to empty
    fail_transition = 300 # transition time in ms between normal outer_color and fail_color
    capslock_color = -1
    numlock_color = -1
    bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
    invert_numlock = false # change color if numlock is off
    swap_font_color = false # see below

    position = 0, -20
    halign = center
    valign = center
}

keybindings.conf
# See https://wiki.hyprland.org/Configuring/Keywords/ for more

$mainMod = SUPER

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, alacritty
bind = $mainMod, C, killactive,
bind = $mainMod, delete, exit, # kill hyperland session
bind = $mainMod, E, exec, nautilus
bind = $mainMod, V, togglefloating,
bind = $mainMod, F, fullscreen,
bind = $mainMod, R, exec, wofi --show drun
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, L, exec, wlogout

# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod, comma, workspace, r-1
bind = $mainMod, period, workspace, r+1
bind = $mainMod SHIFT, comma, movetoworkspace, r-1
bind = $mainMod SHIFT, period, movetoworkspace, r+1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Volume and Media Control
bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bind = , XF86AudioMicMute, exec, pamixer --default-source -m
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPause, exec, playerctl play-pause
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous

# Screen brightness
bind = , XF86MonBrightnessUp, exec, brightnessctl s +5%
bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-

windowrules.conf
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more

# windowrulev2 = opacity 0.90 0.90,class:^(firefox)$
windowrulev2 = opacity 0.90 0.90,class:^(Brave-browser)$
windowrulev2 = opacity 0.80 0.80,class:^(Steam)$
windowrulev2 = opacity 0.80 0.80,class:^(steam)$
windowrulev2 = opacity 0.80 0.80,class:^(steamwebhelper)$
windowrulev2 = opacity 0.80 0.80,class:^(Spotify)$
windowrulev2 = opacity 0.80 0.80,class:^(Code)$
windowrulev2 = opacity 0.80 0.80,class:^(code-url-handler)$
# windowrulev2 = opacity 0.90 0.90,class:^(kitty)$
windowrulev2 = opacity 0.80 0.80,class:^(org.kde.dolphin)$
windowrulev2 = opacity 0.80 0.80,class:^(org.kde.ark)$
windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$
windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$

windowrulev2 = opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ #Clapper-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ #Flatseal-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ #Cartridges-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(com.obsproject.Studio)$ #Obs-Qt
windowrulev2 = opacity 0.80 0.80,class:^(gnome-boxes)$ #Boxes-Gtk
# windowrulev2 = opacity 0.80 0.80,class:^(discord)$ #Discord-Electron
windowrulev2 = opacity 0.80 0.80,class:^(WebCord)$ #WebCord-Electron
windowrulev2 = opacity 0.80 0.80,class:^(app.drey.Warp)$ #Warp-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ #ProtonUp-Qt
windowrulev2 = opacity 0.80 0.80,class:^(yad)$ #Protontricks-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(Signal)$ #Signal-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ #Upscaler-Gtk

windowrulev2 = opacity 0.80 0.70,class:^(pavucontrol)$
windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$
windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$
windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$
windowrulev2 = opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$

windowrulev2 = float,class:^(qt5ct)$
windowrulev2 = float,class:^(nwg-look)$
windowrulev2 = float,class:^(org.kde.ark)$
windowrulev2 = float,class:^(Signal)$ #Signal-Gtk
windowrulev2 = float,class:^(com.github.rafostar.Clapper)$ #Clapper-Gtk
windowrulev2 = float,class:^(app.drey.Warp)$ #Warp-Gtk
windowrulev2 = float,class:^(net.davidotek.pupgui2)$ #ProtonUp-Qt
windowrulev2 = float,class:^(yad)$ #Protontricks-Gtk
windowrulev2 = float,class:^(eog)$ #Imageviewer-Gtk
windowrulev2 = float,class:^(io.gitlab.theevilskeleton.Upscaler)$ #Upscaler-Gtk
windowrulev2 = float,class:^(pavucontrol)$
windowrulev2 = float,class:^(blueman-manager)$
windowrulev2 = float,class:^(nm-applet)$
windowrulev2 = float,class:^(nm-connection-editor)$
windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$
# windowrulev2 = float,center,class:^(org.gnome.Nautilus)$
# windowrulev2 = float, size:50%, class:^(org.gnome.Nautilus)$
# windowrulev2 = float,class:^(org.gnome.Nautilus)$
# windowrulev2 = center,class:^(org.gnome.Nautilus)$
# windowrulev2 = size:50%,class:^(org.gnome.Nautilus)$
# windowrulev2 = nomaxsize,class:^(org.gnome.Nautilus)$

Bug or Regression?
Bug
Description
Hi Hyprland! I guess it's Hyprland's issues. It happens about 5-10 times a month. Regardless of the commands running. I also thought it was from updates (sudo pacman -Syu), when I had to restore archlinux 3 times because of this problem. And all this is very harmful to my work. This bug appeared a couple of times before important calls. and right now, this bug has reappeared. Due to the fact that it has become very common, I was forced to write here. I understand that I could have written earlier, but I'm sorry, I was busy moving and working.
I tried searching the logs but didn't find anything special. I am ready to provide any log files upon request.
Cheers! ✨
How to reproduce
Just usual using.
My daily routine programs:

firefox, chrome, brave
tmux+lunarvim, alacritty
docker
auto-cpufreq
telegram
discord
dbeaver
insomnia, postman
bluetooth
usb mic with dell adapter

Crash reports, logs, images, videos
hyprlandCrashReport2358.txt
Thanks for @kazz for screencast of bug.
https://github.com/hyprwm/Hyprland/assets/31704887/3ca3ac19-1643-4bed-8d6b-b3a363805486

can you test on git?
Besides, this does not look like a kernel panic to me? You attached a crash report (sure, it crashes) but nothing else would suggest a kernel panic.
If it's frozen (as seen on the recording) then how did you get a crash report?
What is exactly the problem here? the title, description, and video don't match together

Hi @vaxerski! Sorry for disinformation. This crash report is not related for this bug. I've attached it, cause it was latest exist on system when some crash was happened earlier (not sure which one).

If it's frozen (as seen on the recording) then how did you get a crash report?

No crash report exist for this type of bug.

What is exactly the problem here? the title, description, and video don't match together

You right, this bug not similar for regular kernel panic error, where black screen with kernel panic error message.
Suddenly everything freezes on the last frame and the caps lock just blinking. The system does not respond to anything except holding the power off button for a long time. Nor mouse, nor keyboard doesn't respond.

can you test on git?

I'll try it bit later.
Cheers! :sparkles:

if everything freezes, then ssh into your frozen machine, do sudo gdb attach $(pidof Hyprland), get to the (gdb) prompt (gdb might ask a few questions about symbols, just say yes) and provide the output of bt -full

I also had this issue (v0.40.0) but this usually happened at shutdown, i don't exactly know what was the reason, but upgrade to the latest git version of Hyprland and kernel 6.9 solves this issue

Thank you @vaxerski! I need a time for that. Currently I have only one machine. I'll come back later with updates, using your instruction for debugging. If anyone has two machines and this bug, please help.
Hi @foi! Thank you for your feedback, it's really important for us. You right about shutdown problem. I also have met this bug several times at shutdown too.
Usually it happens on (IMHO):

shutdown (50%)
update (40%)
coding/working/surfing (10%)

It repeats at shutdown with latest hyprland and kernel 😵💫 but no so often as was with previous ones

Now it's quite better for me. No panic and no dance whole week. ¯\(ツ)/¯ :grinning:

@foi have you tried to connect via ssh?

@foi have you tried to connect via ssh?

I wil try it next time
But I suppose it will be unsuccessful

@letavocado do you have a nvidia GPU ?
I had the exact same issue on the exact same point of upgrades and istallations (reloading system manager configuration) for months.
Seems like it was related in fact to a corruption (or someting else, dunno) of nvidia after putting the computer to sleep and trying to reload system manager config.
I "fixed" it by switching to nvidia-open and crying for getting my GPU nuked everytime I wake my computer, but at least no more freezes.
I also disabled some security features in the kernel and never got a kernel panic again for now ; I had multiples a day even on fresh installation.
Here are my sussy kernel params to achieve "stability" : split_lock_detect=off ibt=off nvidia_drm.modeset=1 nvidia_drm.fbdev=1
Hope it helps !

Hi @NyanMaths! Thank you for feedback!
My boot params is loglevel=3 quiet nvidia_drm.modeset=1 nvidia_drm.fbdev=1 i915.enable_guc=3 i915.enable_fbc=1
Yes, I'm on green gpu, Nvidia GPU:
CPU: Intel(R) Core(TM) i9-10885H (16) @ 5.30 GHz
GPU 1: NVIDIA GeForce RTX 2060 Max-Q [Discrete]
GPU 2: Intel UHD Graphics @ 1.25 GHz [Integrated]

❯cat /etc/modprobe.d/nvidia.conf
options nvidia_drm modeset=1 fbdev=1

❯ cat /etc/modprobe.d/disable-nouveau.conf
blacklist nouveau
options nouveau modeset=0

❯ cat /etc/modprobe.d/nvidia-pm.conf
options nvidia "NVreg_UsePageAttributeTable=1"
options nvidia "NVreg_DynamicPowerManagement=0x02"
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp

You right, there is maybe some wake up problem after suspend related to Nvidia proprietary driver.
❯ sudo systemctl status nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service nvidia-persistenced.service nvidia-powerd.service

○ nvidia-suspend.service - NVIDIA system suspend actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend.service; enabled; preset: disabled)
     Active: inactive (dead)

○ nvidia-hibernate.service - NVIDIA system hibernate actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-hibernate.service; enabled; preset: disabled)
     Active: inactive (dead)

○ nvidia-resume.service - NVIDIA system resume actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-resume.service; enabled; preset: disabled)
     Active: inactive (dead)

● nvidia-persistenced.service - NVIDIA Persistence Daemon
     Loaded: loaded (/usr/lib/systemd/system/nvidia-persistenced.service; enabled; preset: disabled)
     Active: active (running) since Sat 2024-06-15 14:49:13 +05; 12min ago
    Process: 873 ExecStart=/usr/bin/nvidia-persistenced --user nvidia-persistenced (code=exited, status=0/SUCCESS)
   Main PID: 877 (nvidia-persiste)
      Tasks: 1 (limit: 38067)
     Memory: 984.0K (peak: 1.8M)
        CPU: 7ms
     CGroup: /system.slice/nvidia-persistenced.service
             └─877 /usr/bin/nvidia-persistenced --user nvidia-persistenced

Jun 15 14:49:13 dell-xps systemd[1]: Starting NVIDIA Persistence Daemon...
Jun 15 14:49:13 dell-xps nvidia-persistenced[877]: Started (877)
Jun 15 14:49:13 dell-xps systemd[1]: Started NVIDIA Persistence Daemon.

○ nvidia-powerd.service - nvidia-powerd service
     Loaded: loaded (/usr/lib/systemd/system/nvidia-powerd.service; disabled; preset: disabled)
     Active: inactive (dead)

I can't use nvidia-open cause it has problem with suspend. Idk, maybe it resolved, but this thread says no. Correct me please, if I'm wrong.
Cheers! ✨

My GPU got nuked no earlier than yesterday after waking up on nvidia-open-beta-dkms, so I would unfortunately tend to confirm your fear...
Nvidia is planning to make their open kernel driver default for the 560 release, maybe this will be fixed if they are so confident about this. I am deeply delusional

Hey @NyanMaths!  Hope in NVK.  Thank you for your feedback!

Update : seems like it works since the 555 beta, with minor issues like weird artifacts sometimes.
More details on this issue : https://github.com/NVIDIA/open-gpu-kernel-modules/issues/472
I re-enabled suspend, resume and hibernate services and it works like a charm for now with modeset, fbdev and NVreg_PreserveVideoMemoryAllocations enabled.

Oh really? Sounds good! Will test it very later.
Cheers! ✨

I have been testing nvidia-open for two/three weeks now and the only issues I faced are :

alacritty crashing when waking from sleep, not a big deal at least
performance issues on some games like genshin, but no more kernel logs spamming and it got better since 555.58

Not a single kernel panic the whole time even when reloading system manager configuration after waking, solid.
Even zink works flawlessly in my little test time.
My kernel cmdline is quiet split_lock_detect=off ibt=off modprobe.blacklist=nouveau nvidia_drm.modeset=1 nvidia_drm.fbdev=1 nvidia.NVreg_EnableGpuFirmware=0 nvidia.NVreg_PreserveVideoMemoryAllocations=1
My /etc/mkinitcpio.conf looks like this :
MODULES=(i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm)

BINARIES=()

FILES=()

HOOKS=(base udev autodetect modconf block filesystems kms fsck numlock)

And I use linux-zen if this can make a difference. In my experience, no, but who knows...
I think this issue can be closed as it is not related to Hyprland in the first place and let's hope nvidia finally fixes its poorly written proprietary kernelspace drivers or expand hardware support of nvidia-open.

Hey @NyanMaths! Thank you for your testing and feedback. I'm also not facing any issues from time when I opened this issues (lol). Only meet 1-2 sec freezes two time.
Hey @foi. What about your experience. I'll close if it okay on your side too.
Cheers! ✨

Hey @NyanMaths! Thank you for your testing and feedback. I'm also not facing any issues from time when I opened this issues (lol). Only meet 1-2 sec freezes two time.
Hey @foi. What about your experience? I'll close if it okay on your side too.
Cheers! ✨

Hello! I have no issues either; everything is OK now.

@letavocado Hi! I have no issues on the latest hyprland-git

So... you encounter that using open or proprietary kernel modules ? what was the faulty upgrade ?


Comparison with ZeroClipboard

Since ZeroCliboard is so popular, it might be worth listing the browser/OS configurations which clipboard.js doesn't support, but ZeroClipboard does.

I disagree, the whole point of this project is to not encourage Flash usage.

I might have been misunderstood. You said yourself that

ZeroClipboard [...] has better browser support

I also much abhor Flash usage (we use ZC in production, and have had our share of issues with Flash).
All I was looking for was a comparison with ZC.

Developers should do their homework when comparing different tools. Both projects list what browsers they support, so it's just a matter of comparing that to what your Analytics tell you.


Maintenance: Release version 1.1.0

Summary
Bump the versions and release version 1.1.0
Why is this needed?
Releases new version
Which area does this relate to?
No response
Solution
No response
Acknowledgment

[X] This request meets Lambda Powertools Tenets

Version 1.1.0 released


Minimal carbon pool model

Description
I've added a basic carbon pool to the soil module. It only includes 2 pools (the full model will probably include 5 pools), and a function that handles transfers between these two pools. This is all bundled together as part of a SoilCarbon class.
I was originally intending to implement an alternate equation form and a method to switch between the two, but decided that was a bit ambitious for a single pull request. Structurally there's a couple of things that I'm not completely happy with and would want to clear up before I moved onto something like that.

The constant dictionaries defined at the top of the script define a set of fitting parameters for the various equations, these are taken from fits to data carried out in the literature. I'm not sure if this is a good way to store this kind of information, but it didn't seem sensible either to define these fitting parameters as independant constants either. I'm also unsure whether treating these as constants is a sensible approach either as I could see us wanting to do sensitivity analysis with them down the line.
I wrote the code with no sanity checking for variables except when the class is initialised. My reasoning for this is that too common sanity checking would slow down execution, and that we probably don't want to simulation to halt entirely because a negative value has crept into one differential equation in one grid cell. Is this broadly sensible?

No hurry on reviewing this, I mainly wanted to get the pull request submitted before I finished for Christmas.
Fixes #99
Type of change

[x] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[ ] Bug fix (non-breaking change which fixes an issue)

Key checklist

[x] Make sure you've run the pre-commit checks: $ pre-commit run -a
[x] All tests pass: $ poetry run pytest

Further checks

[x] Code is commented, particularly in hard-to-understand areas
[x] Tests added that prove fix is effective or that feature works

I realise I forgot to answer your questions:

Seems sensible to me!
I would just add the sanity checks. In the grand scheme of things it shouldn't hurt performance much and it could potentially save you a lot of debugging pain further down the line.

On question 2, I think this overlaps with #135 - I've added a sketch of how this might work across modules to that discussion.

Codecov Report

Merging #134 (e0c1a2c) into develop (7115bc5) will increase coverage by 0.42%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop     #134      +/-   ##
===========================================
+ Coverage    94.06%   94.48%   +0.42%
===========================================
  Files           11       12       +1
  Lines          472      508      +36
===========================================
+ Hits           444      480      +36
  Misses          28       28

Impacted Files
Coverage Δ

virtual_rainforest/models/plants/__init__.py
100.00% <ø> (ø)

virtual_rainforest/models/soil/__init__.py
100.00% <ø> (ø)

virtual_rainforest/models/soil/model.py
94.73% <ø> (ø)

virtual_rainforest/__init__.py
100.00% <100.00%> (ø)

virtual_rainforest/models/soil/carbon.py
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@alexdewar I definitely agree that there is a value in testing a wider range of values for the functions. I hit a problem in doing so though, because I wasn't sure the best way to generate expected values in this case.
I generated the current expected return values of the functions using a calculator to ensure that I wasn't just assuming that the current implementation of the function is correct (which in a couple of cases it wasn't). Testing a broader set of parameter values means I would have to generate a lot more expected values, and if I do that by calculator would be pretty time consuming.
I was wondering whether I am safe to assume that the current implementation is fine once it has been tested for a few values, or if I should always be externally verifying values? If the later I was wondering if there is a smarter way to do this than manual calculation?

I was wondering whether I am safe to assume that the current implementation is fine once it has been tested for a few values, or if I should always be externally verifying values? If the later I was wondering if there is a smarter way to do this than manual calculation?

I had this discussion with @vgro before Christmas. With the plants module, some of the things I'm doing are re-implementations and so I can generate a test set of data points with independent implementations (or at least robust to implementation differences - they might both be wrong for some other reason). I think there is still value in using a wider range of test values generated from the same implementation - useful for detecting breaking changes in output values and probably also detecting surprising edge and corner cases?

@alexdewar I definitely agree that there is a value in testing a wider range of values for the functions. I hit a problem in doing so though, because I wasn't sure the best way to generate expected values in this case.
I generated the current expected return values of the functions using a calculator to ensure that I wasn't just assuming that the current implementation of the function is correct (which in a couple of cases it wasn't). Testing a broader set of parameter values means I would have to generate a lot more expected values, and if I do that by calculator would be pretty time consuming.
I was wondering whether I am safe to assume that the current implementation is fine once it has been tested for a few values, or if I should always be externally verifying values? If the later I was wondering if there is a smarter way to do this than manual calculation?

Tagging @dalonsoa because I think he'll be about to give better feedback about this (he's back on Monday).
I think the right thing to do is to test the smaller individual functions with ranges of values. Then you can just test that your higher-order functions are just calling those functions with the correct arguments etc.
As I said, I think what you've done is def a good start though. While it's harder to think about how to do this when it comes to computing values, the other thing you can check for is whether your methods raise exceptions or not depending on the input values, which should be easier. So you could do that for starters.

I was wondering whether I am safe to assume that the current implementation is fine once it has been tested for a few values, or if I should always be externally verifying values? If the later I was wondering if there is a smarter way to do this than manual calculation?

I had this discussion with @vgro before Christmas. With the plants module, some of the things I'm doing are re-implementations and so I can generate a test set of data points with independent implementations (or at least robust to implementation differences - they might both be wrong for some other reason). I think there is still value in using a wider range of test values generated from the same implementation - useful for detecting breaking changes in output values and probably also detecting surprising edge and corner cases?

Yeah, this isn't a bad idea provided you don't spend too long on reimplenting stuff. In the link I sent, I did some reimplementing of functionality.

It's a tricky thing to test functions over a range of possible input values that implement specific formulas because in those cases you are interested in checking that the specific numerical output is the correct one, and not just properties of the output (which is what hypothesis would do).
Alex's suggestion on mocking the low level functions when testing the higher level ones is a good one, as well as breaking down functions in as small logical bits as possible - eg. implementing one formula per function - but otherwise I think that manually picking a few sensible and edge cases is the only possible way to go here.

I think I've addressed most of your comments.
In terms of sanity checks, I've added them in a couple of cases where there are very clear bounds that wouldn't necessarily be obvious when be debugging. Other cases I've left to be handled by the bounds module down the line, as we probably want to constrain e.g. soil bulk density more tightly than just being strictly positive, but it wouldn't be sensible to bake a particular choice into the function
Anyway let me know your thoughts

Made the decision to switch to data classes rather than dot map as I could work out how to add parameter specific docstrings more easily with data classes. Happy for this to change down the line when we agree upon a consistent approach between modules for constants units etc

So I may be not understanding how dataclasses are used, but I've always seen them used to create an instance of the dataclass. So given:
@dataclass
class BindingWithPH:
    """From linear regression (Mayes et al. (2012))."""
    intercept: float = -0.186
    slope: float = -0.216

Then a function might work like this:
def calculate_binding_coefficient(pH: NDArray[np.float32], coef: BindingWithPH = BindingWithPH())

And then the code can use coef.slope, etc. You could then run that calculation with the default values or something else:
res = calculate_binding_coefficient(pH_array, BindingWithPH(slope=-0.23))

Here, we're using the attributes more like class attributes. The dataclass does expose those attributes but they seem to fundamentally not do what I expect. So for example:
In [40]: @dataclass
    ...: class BindingWithPH:
    ...:     """From linear regression (Mayes et al. (2012))."""
    ...:     intercept: float = -0.186
    ...:     slope: float = -0.216
    ...:

# create a normal instance

In [41]: inst  = BindingWithPH()
In [42]: inst
Out[42]: BindingWithPH(intercept=-0.186, slope=-0.216)

# and with a different slope
In [43]: inst  = BindingWithPH(slope=3)
In [44]: inst
Out[44]: BindingWithPH(intercept=-0.186, slope=3)

# The value _can_ be accessed directly from the class, not an instance
# as if it is a class attribute

In [45]: BindingWithPH.slope
Out[45]: -0.216

# And it can be changed too

In [46]: BindingWithPH.slope = 3
In [47]: BindingWithPH.slope
Out[47]: 3

# BUT that doesn't interact with the instance __init__, which keeps
# returning the original defaults.

In [48]: inst  = BindingWithPH()
In [49]: inst
Out[49]: BindingWithPH(intercept=-0.186, slope=-0.216)
In [50]: BindingWithPH.__init__
Out[50]: <function __main__.BindingWithPH.__init__(self, intercept: float = -0.186, slope: float = -0.216) -> None>

I'm not sure what the advantage of dataclass over a namedtuple is here - we're not using instances of it.
I'm also wary of how users change these values. I'm not sure, but at the moment I think you could do it by changing the "class attribute" value as above, but you then have absolutely no control over what other functions might be accessing that altered value. If an instance is created, with defaults or altered, then the user knows what version they are passing.
This all seems really familiar for some reason!

Yeah, I guess a namedtuple would be another way to go. Alternatively you could just have two separate constants defined at the module level.
I hear your concerns about the values being mutable, but that is kind of what you get with Python. Module-level constants are mutable too.

I think dataclasses are probably the way to go - see the discussion here #162 - and I agree about the mutable being Python for you. I have used frozen dataclasses over in pyrealm, which is probably just unnecessary paranoia. Well, actually, not paranoia because someone will do it, but stopping people changing key constants half way through an analysis should be a job for common sense, not code.

So the suggestion here @davidorme would be to keep the classes as they are but move them to a models/soil/constants.py script so that all model data classes for the module are stored in a single location? And then these would be imported in and supplied as a default value for functions that use them?

Yes - I think so. That's very close to what you have already and seems like a sensible way to organise things anyway. Something else might come of #162 but no alarm bells yet!


Questions and Possible Bugs

I noticed some strange behaviour. Not sure whether it's documented somewhere or not so I'm summarizing it here with few examples.

Is there any particular reason why strings are being highlighted without the quotation marks? (both Javascript and PHP)
Why numbers are not being highlighted. (PHP)
Numbers are not being highlighted and the decimal part is being treated as a property. (Javascript)

I'll look into these and fix them :)

Need help? I can look into it. But I was wondering if those strings without quot marks are intentional.

You're welcome to send a PR, sure :) I believe the quoted strings are intentional, but I'm fine changing them to include the quotes — makes more sense to me.

Allright. I'll try to do both PHP and JavaScript. See how that goes. Also, attaching another issue with strings:

This is merged now :)


Upgrade kubeclient and openshift_client gems.

move ssl comment
bump openshift_client version and adapt client code
bump kubeclient version and adapt client code
upgrade both cassettes and use method and path for uri request matching.

fyi @abonas @simon3z
@miq-bot add_label providers/containers, gem_changes

@moolitayer I like this PR.  Can you address the failing tests in Travis?

Needs to be rebased since https://github.com/ManageIQ/manageiq/pull/4217 was merged.

addressed comments, rubocop, remove redundant ssl_options variable.

updated cassettes.

updated commit messages of last two patches.

LGTM :+1: cc @chessbyte @blomquisg


Swappable dims order

Description
This PR supersedes #440 in favor of a better implementation that now relies on an dims.order property and a dims.ndisplay property. This can be treated like a transpose, enabling rapid switching between any configuration of 2D and 3D viewing as seen below:

Functionality is not yet extended to that shapes layer, but that can come in a followup PR.
Type of change

[x] New feature (non-breaking change which adds functionality)

How has this been tested?

[x] add examples/swap_dims.py

Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works

Incidentally, just looked at the linux failures, and indeed it's nd-shapes that is failing! I don't think that's a coincidence. =)

@jni I've looked over your comments - I completely agree with your points with the examples - that approach of throwing everything in there is legacy from when we lacked good unit tests. I'll clean-up the examples and put the same stuff into specific tests - but I'll probably do that in a separate PR. For now I'll just remove the extra stuff so as to not make the problem worse.
The comment though that really resonated was

I worry that the information in the dims object is getting replicated in lots of places, which increases the complexity of keeping them in sync. It might be worth considering adding a reference to the dims model in each layer.

I completely agree - and as I think about the 3D stuff that @pranathivemuri is working on and still to come it really makes me want each layer to have its own independent dims model - and then a global dims model that is responsible for coordinating them all and the qt sliders. This will allow us to very cool visualizations like combining 2D slicing and 3D rendering. It will also make things in this PR substantially cleaner I think. What are your thoughts on this @jni, @royerloic? I'm happy to give it a go.

I have made some improvements as suggested by @jni - but I am going to try making a new PR building off this one where each layer gets it's own dims model and then they are appropriately synchronized to the global dims model / sliders. I think it will work well and future proof us as we support more complex slicing and 3D features

@sofroniewn perhaps a stepping stone to that approach would be to reference the global dims object first, get that done and working, and then you can worry about individual dims models with syncing. What do you think?
I also think it's worth throwing shapes into this PR, and higher priority than multi-dims. The simple thing to do would be to hide shapes that are not co-planar with the axes you're viewing, as you are doing now with broadcast mode. Viewing "flat" shapes as lines could be left for another time.

@jni agreed on supporting shapes as being a higher priority - i'll work on adding those and hide non-planar ones.
I was thinking about how to have to global dims as a stepping stone, but unfortunately it won't help because there is a conversion that happens from the global dims to all those layer dims variables (because the global dims can be 4 say, but a layer only 2) - the only way to cleanly get around this is to allow each layer to have it's own dims and then synchronize them in the viewer model. I'm working on this bit now and I think it's going ok

@jni I've looked over your comments - I completely agree with your points with the examples - that approach of throwing everything in there is legacy from when we lacked good unit tests. I'll clean-up the examples and put the same stuff into specific tests - but I'll probably do that in a separate PR. For now I'll just remove the extra stuff so as to not make the problem worse.
The comment though that really resonated was

I worry that the information in the dims object is getting replicated in lots of places, which increases the complexity of keeping them in sync. It might be worth considering adding a reference to the dims model in each layer.

I completely agree - and as I think about the 3D stuff that @pranathivemuri is working on and still to come it really makes me want each layer to have its own independent dims model - and then a global dims model that is responsible for coordinating them all and the qt sliders. This will allow us to very cool visualizations like combining 2D slicing and 3D rendering. It will also make things in this PR substantially cleaner I think. What are your thoughts on this @jni, @royerloic? I'm happy to give it a go.

I don't think we need a full dims model per layer. This would unnecessarily blow up the complexity and change the global nature of the dims model. What makes more sense is that each layer has additional information that is specific to that layer. For example in the case of 3D viewing and showing a 2D slice, you simply have the global dims layer plus the two axis {0,1} that are sliced. The dims model 'point' has already enough information to know which slice to show. Each layer has flexibility in terms of how it uses the global dims information + layer specific info for selecting and rendering. the global dims model has a lot of info already, some of which is not always used (think point when 3d rendering) we should be carefull not to complexify without having thought hard about how we can do it with the current infrastructure.
We can talk about it...

@royerloic - I agree we want to avoid complexity and unnecessarily using classes, but I think re-using the dims model is warranted in this case.
The implementation currently on this PR is as you described:

global dims information + layer specific info for selecting and rendering

but that lead to at least 7 layer specific dims properties that needed to be added to the layer, for example layer.dims_order, layer.displayed,  layer.not_displayed,  layer.ndisplay, layer.range, layer.indices, layer.ndim. ALL of these properties already exist inside the dims model, and in the implementation in #451 we just have layer.dims which provides these properties provided, i.e. layer.dims.order, layer.dims.displayed, layer.dims.ndisplay, layer.dims.range, etc. To me this is much cleaner and it is much more clear how to synchronize the global dims model with these layer dims models than keeping track of and synchronizing all those properties individually.
At this point we've got both implemented approaches implemented for the Image layer on #450 and #451, so we can just look at them and compare (note the changes in the Base layer files too). I'll also note that we were able to drop a lot of np.clip commands in #451 too because now the layer dims model exactly matches that layer.
@jni what are your thoughts?

Let's chat about it on Thu, I need to better understand your concerns, and maybe better communicate what i have in mind -- assuming that I have a complete understanding of the problem. Quite an interesting topic...

I agree with @royerloic, this is probably a discussion best had in a high-bandwidth setting.

This is being closed in favour of #451 as discussed in the team meeting, where we concluded that it was simpler for each layer to have its own dims model rather than just forward on specific properties like is being done in this PR


Waiting for API to be available

Hi Guys
I think I have spent a lot of time trying to add cluster (RKE2 v.1.26) into RANCHER (Tried both 2.8 and 2.7.9) but I am getting same message (Waiting for API to be available) and I am not able to add cluster into Rancher.
Can someone help to understand the following:
What does this error mean, what is missing? on cluster or rancher?
What should troubleshooting steps?
Any suggestions will be appreciated.
Thank you.

Here is the list of all pods
NAMESPACE       NAME                                                        READY   STATUS      RESTARTS     AGE
cattle-system   pod/cattle-cluster-agent-6cdd7bcfb4-x6tr5                   1/1     Running     0            41m
kube-system     pod/cilium-78trs                                            1/1     Running     0            9h
kube-system     pod/cilium-j4r88                                            1/1     Running     0            9h
kube-system     pod/cilium-operator-6fc8f77994-kg2h5                        1/1     Running     0            9h
kube-system     pod/cilium-operator-6fc8f77994-l8zjb                        1/1     Running     0            9h
kube-system     pod/cilium-qvcjq                                            1/1     Running     0            9h
kube-system     pod/cloud-controller-manager-ecs1u                          1/1     Running     0            9h
kube-system     pod/cloud-controller-manager-ecs2u                          1/1     Running     0            9h
kube-system     pod/cloud-controller-manager-ecs3u                          1/1     Running     0            9h
kube-system     pod/etcd-ecs1u                                              1/1     Running     0            9h
kube-system     pod/etcd-ecs2u                                              1/1     Running     0            9h
kube-system     pod/etcd-ecs3u                                              1/1     Running     0            9h
kube-system     pod/helm-install-rke2-cilium-kgkkb                          0/1     Completed   0            9h
kube-system     pod/helm-install-rke2-coredns-65gh7                         0/1     Completed   0            9h
kube-system     pod/helm-install-rke2-ingress-nginx-4g69x                   0/1     Completed   0            9h
kube-system     pod/helm-install-rke2-metrics-server-tkt5v                  0/1     Completed   0            9h
kube-system     pod/helm-install-rke2-multus-wpvkz                          0/1     Completed   0            9h
kube-system     pod/helm-install-rke2-snapshot-controller-88ph7             0/1     Completed   1            9h
kube-system     pod/helm-install-rke2-snapshot-controller-crd-w6t28         0/1     Completed   0            9h
kube-system     pod/helm-install-rke2-snapshot-validation-webhook-bsml8     0/1     Completed   0            9h
kube-system     pod/kube-apiserver-ecs1u                                    1/1     Running     0            9h
kube-system     pod/kube-apiserver-ecs2u                                    1/1     Running     0            9h
kube-system     pod/kube-apiserver-ecs3u                                    1/1     Running     0            9h
kube-system     pod/kube-controller-manager-ecs1u                           1/1     Running     0            9h
kube-system     pod/kube-controller-manager-ecs2u                           1/1     Running     0            9h
kube-system     pod/kube-controller-manager-ecs3u                           1/1     Running     0            9h
kube-system     pod/kube-proxy-ecs1u                                        1/1     Running     0            9h
kube-system     pod/kube-proxy-ecs2u                                        1/1     Running     0            9h
kube-system     pod/kube-proxy-ecs3u                                        1/1     Running     0            9h
kube-system     pod/kube-scheduler-ecs1u                                    1/1     Running     0            9h
kube-system     pod/kube-scheduler-ecs2u                                    1/1     Running     0            9h
kube-system     pod/kube-scheduler-ecs3u                                    1/1     Running     0            9h
kube-system     pod/rke2-coredns-rke2-coredns-autoscaler-79f8d49fcc-4j8mj   1/1     Running     0            9h
kube-system     pod/rke2-coredns-rke2-coredns-dd55f557c-2pjxg               1/1     Running     0            9h
kube-system     pod/rke2-coredns-rke2-coredns-dd55f557c-7zrh9               1/1     Running     0            9h
kube-system     pod/rke2-ingress-nginx-controller-68ckc                     1/1     Running     0            9h
kube-system     pod/rke2-ingress-nginx-controller-k6j94                     1/1     Running     0            9h
kube-system     pod/rke2-ingress-nginx-controller-lkj2r                     1/1     Running     0            9h
kube-system     pod/rke2-metrics-server-ffc646896-zrlkp                     1/1     Running     0            9h
kube-system     pod/rke2-multus-ds-ngmch                                    1/1     Running     2 (9h ago)   9h
kube-system     pod/rke2-multus-ds-nn8dw                                    1/1     Running     2 (9h ago)   9h
kube-system     pod/rke2-multus-ds-tmf6c                                    1/1     Running     2 (9h ago)   9h
kube-system     pod/rke2-snapshot-controller-b477fddb-xmqnr                 1/1     Running     0            9h
kube-system     pod/rke2-snapshot-validation-webhook-7b4594d659-gvqc2       1/1     Running     0            9h

I see errors on Rancher pod:
2024/01/23 03:45:27 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
W0123 03:47:03.632421      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 Cluster is deprecated; use cluster.x-k8s.io/v1beta1 Cluster
W0123 03:47:08.468468      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 MachineHealthCheck is deprecated; use cluster.x-k8s.io/v1beta1 MachineHealthCheck
2024/01/23 03:47:12 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 03:47:12 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
2024/01/23 03:49:37 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 03:49:37 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
2024/01/23 03:50:17 [ERROR] Error during subscribe websocket: close sent
W0123 03:50:35.459376      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 MachineSet is deprecated; use cluster.x-k8s.io/v1beta1 MachineSet
2024/01/23 03:51:42 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 03:51:42 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
W0123 03:52:16.199922      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 Machine is deprecated; use cluster.x-k8s.io/v1beta1 Machine
W0123 03:52:26.633860      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 Cluster is deprecated; use cluster.x-k8s.io/v1beta1 Cluster
2024/01/23 03:53:47 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 03:53:47 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
W0123 03:53:56.020743      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 MachineDeployment is deprecated; use cluster.x-k8s.io/v1beta1 MachineDeployment
W0123 03:55:44.461156      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 MachineSet is deprecated; use cluster.x-k8s.io/v1beta1 MachineSet
2024/01/23 03:55:52 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 03:55:52 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
W0123 03:56:27.471437      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 MachineHealthCheck is deprecated; use cluster.x-k8s.io/v1beta1 MachineHealthCheck
2024/01/23 03:57:24 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 03:57:24 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
W0123 03:57:27.201846      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 Machine is deprecated; use cluster.x-k8s.io/v1beta1 Machine
W0123 03:57:39.635823      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 Cluster is deprecated; use cluster.x-k8s.io/v1beta1 Cluster
2024/01/23 04:00:02 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 04:00:02 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
W0123 04:00:15.022460      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 MachineDeployment is deprecated; use cluster.x-k8s.io/v1beta1 MachineDeployment
2024/01/23 04:02:07 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 04:02:07 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
W0123 04:03:13.202932      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 Machine is deprecated; use cluster.x-k8s.io/v1beta1 Machine
W0123 04:03:15.472708      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 MachineHealthCheck is deprecated; use cluster.x-k8s.io/v1beta1 MachineHealthCheck
2024/01/23 04:04:12 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 04:04:12 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled
W0123 04:05:41.462299      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 MachineSet is deprecated; use cluster.x-k8s.io/v1beta1 MachineSet
W0123 04:05:53.637413      32 warnings.go:80] cluster.x-k8s.io/v1alpha3 Cluster is deprecated; use cluster.x-k8s.io/v1beta1 Cluster
2024/01/23 04:06:17 [INFO] Stopping cluster agent for c-m-npmvpvvm
2024/01/23 04:06:17 [ERROR] failed to start cluster controllers c-m-npmvpvvm: context canceled

Looks like this happens only when we add PROXY (which I need) to RANCHER DOCKER container, can someone suggest best way for using proxy in docker container?

rancher server :v2.8.1

kubectl apply -f cattle-cluster-agent no error:
 rancher-agent]# kubectl get pod -n cattle-system
NAME                                   READY   STATUS    RESTARTS   AGE
cattle-cluster-agent-d8d6c7c7c-p86fz   1/1     Running   0          10s
[root@rke-master01 rancher-agent]# kubectl logs  -n cattle-system cattle-cluster-agent-d8d6c7c7c-p86fz
INFO: Environment: CATTLE_ADDRESS=<IP_ADDRESS> CATTLE_CA_CHECKSUM=d818528e6c91a42ed9573c1cbe4b6e3df067d3ebca8b57efccb8e463306e3760 CATTLE_CLUSTER=true CATTLE_CLUSTER_AGENT_PORT=tcp://<IP_ADDRESS>:80 CATTLE_CLUSTER_AGENT_PORT_443_TCP=tcp://<IP_ADDRESS>:443 CATTLE_CLUSTER_AGENT_PORT_443_TCP_ADDR=<IP_ADDRESS> CATTLE_CLUSTER_AGENT_PORT_443_TCP_PORT=443 CATTLE_CLUSTER_AGENT_PORT_443_TCP_PROTO=tcp CATTLE_CLUSTER_AGENT_PORT_80_TCP=tcp://<IP_ADDRESS>:80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_ADDR=<IP_ADDRESS> CATTLE_CLUSTER_AGENT_PORT_80_TCP_PORT=80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_PROTO=tcp CATTLE_CLUSTER_AGENT_SERVICE_HOST=<IP_ADDRESS> CATTLE_CLUSTER_AGENT_SERVICE_PORT=80 CATTLE_CLUSTER_AGENT_SERVICE_PORT_HTTP=80 CATTLE_CLUSTER_AGENT_SERVICE_PORT_HTTPS_INTERNAL=443 CATTLE_CLUSTER_REGISTRY= CATTLE_INGRESS_IP_DOMAIN=sslip.io CATTLE_INSTALL_UUID=26c8f3d4-ad4d-4412-87e6-2f4ecb3ce63c CATTLE_INTERNAL_ADDRESS= CATTLE_IS_RKE=false CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=cattle-cluster-agent-d8d6c7c7c-p86fz CATTLE_RANCHER_WEBHOOK_VERSION=103.0.1+up0.4.2 CATTLE_SERVER=https://rancher02.demo.com CATTLE_SERVER_VERSION=v2.8.1
INFO: Using resolv.conf: search cattle-system.svc.cluster.local svc.cluster.local cluster.local nameserver <IP_ADDRESS> options ndots:5
INFO: https://rancher02.demo.com/ping is accessible
INFO: rancher02.demo.com resolves to <IP_ADDRESS>
INFO: Value from https://rancher02.demo.com/v3/settings/cacerts is an x509 certificate
time="2024-01-30T05:33:30Z" level=info msg="Listening on /tmp/log.sock"
time="2024-01-30T05:33:30Z" level=info msg="Rancher agent version v2.8.1 is starting"
time="2024-01-30T05:33:30Z" level=info msg="EnsureSecretForServiceAccount: waiting for secret [cattle-token-zhtks] to be populated with token"
time="2024-01-30T05:33:30Z" level=info msg="Connecting to wss://rancher02.demo.com/v3/connect/register with token starting with krpt9dn9z5hhd7v68z7kkrtdhk7"
time="2024-01-30T05:33:30Z" level=info msg="Connecting to proxy" url="wss://rancher02.demo.com/v3/connect/register"


Lock keeps executor when run in declarative pipeline in SCM

We have some JenkinsFiles in SCM that all contain declarative pipelines. These all have the same basic setup:
pipeline {
	agent any

	options {
		lock(resource: "lock")
	}

	...
}

All build of these jobs are correctly blocked. However, the locking occurs within an executor. The reason is probably that the executor is already needed to check out the pipeline itself. The result is that all slots are quickly filled by builds that are waiting on the lock.
Is it possible to change this plugin to "unclaim" the executor so the build goes back into the pool, and the executor can be used for other builds?

I don't think there is anything that could be done in this plugin. You should be defaulting to agent none and allocate node (agent) only when you need it.
Input step behaves similarly when ran with agent any

I'm with @skorhone here. AFAIK you can nest steps in declarative, so you can lock an outer step with agent none and allocate the node only in the inner step.


integrationtest/TestProcessCollector: Validate json output

integrationtest/TestProcessCollector: Validate json output
Uses the json output in order to validate as much information as possible from the snapshot process gadget
Bases on #1083 . Will rebase after it is merged

Bases on https://github.com/inspektor-gadget/inspektor-gadget/pull/1083 . Will rebase after it is merged

nit: you can set the target branch of this PR to the branch you used for #1083 and when that is merged this PR will update the target branch to main automatically.

Bases on #1083 . Will rebase after it is merged

nit: you can set the target branch of this PR to the branch you used for #1083 and when that is merged this PR will update the target branch to main automatically.

Good to know. Will be very handy in the future :)


Feature: isType assertition

I didn't find a way to assert the type of a specific value (string, number, boolean, ...)
My use case would be to check that all K8s container env values have type string, otherwise it causes error like "cannot convert int64 to string".
Something like:
- isType:
    path: spec.template.spec.containers[0].env[value]
    type: string

Hello @rquinio1A, @d3adb5,
Thanks for the feedback and the initial PR.
The isType assertion is a valid addition to the asserts.
Will try to provide feedback on PR as soon a possible.
Greetings,
@quintush


After the 85 version of Google browser，window can‘t monitor blur of alert

Me too

Me Three

Same here

+1

+1

This seems to be fixed in the latest version 89.0.x

crbug.com/1137801 is the relevant issue.


Don't run experimental tests on stable branches

As seen in https://cirrus-ci.com/task/6220526698102784:
We're attempting to run web tests on stable branches (flutter build web -v in dev\integration_tests\web), and they're failing with:
Experimental feature web is not supported on stable branches
#0      throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
#1      FlutterCommand.validateCommand (package:flutter_tools/src/runner/flutter_command.dart:569:7)
<asynchronous suspension>
#2      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:462:11)
<asynchronous suspension>
#3      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:383:33)
<asynchronous suspension>
#4      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:29)
<asynchronous suspension>
#5      _rootRun (dart:async/zone.dart:1124:13)
#6      _CustomZone.run (dart:async/zone.dart:1021:19)
#7      _runZoned (dart:async/zone.dart:1516:10)
#8      runZoned (dart:async/zone.dart:1463:12)
#9      AppContext.run (package:flutter_tools/src/base/context.dart:152:18)
<asynchronous suspension>
#10     FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:375:20)
#11     CommandRunner.runCommand (package:args/command_runner.dart:197:27)
<asynchronous suspension>
#12     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:396:21)

@jonahwilliams @digiter

Closing as obsolete


mixed space and tab in OpenNI/Platform/Win32/CreateRedist/*.py

there are mixed use of spaces and tabs in OpenNI/Platform/Win32/CreateRedist/*.py, rendering them not usable at all without fixing manually.
i didn't check the other scripts, but they are likely suffering the same problem too.

Can you please paste the exact error?
What's the python version you are using?
I cannot reproduce it...

search for space and/or tabs, you will find them in the indentation.

All fixed in the latest version.
Thanks!
Ziv.


Increase kFileSizeLimit for dbg builds in stirling wrapper size test

Summary: Raises the stirling size limit for dbg builds by 5 MiB (to 300mb) to accommodate upcoming changes and additions, including mongodb parsing/stitching and StitchFrames interface changes (#1716).
Type of change: /kind cleanup
Test Plan: Existing targets

I'd like to hear from @pixie-io/maintainers on the context of this test, but increasing it by 5 MiB sounds reasonable.

I think @oazizi000 or @etep should have more context here. I believe this is mainly to guard against accidentally causing a binary size bloat for stirling/PEM.


Add rust crate cookiecutter

Current dependencies on/for this PR:

main

PR #8

PR #9   👈

This comment was auto-generated by Graphite.


Avoid using TF file system before TF is initialized with plugins (avoid circular dependency)

While playing with modular file systems I noticed that
if modular file systems is enabled through bazel with linkage inclusion,
tensorflow will not be able to be imported:
>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/__init__.py", line 434, in <module>
    _ll.load_library(_main_dir)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/framework/load_library.py", line 143, in load_library
    if file_io.file_exists(library_location):
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/lib/io/file_io.py", line 250, in file_exists
    return file_exists_v2(filename)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/lib/io/file_io.py", line 268, in file_exists_v2
    _pywrap_file_io.FileExists(compat.path_to_bytes(path))
tensorflow.python.framework.errors_impl.UnimplementedError: File system scheme '[local]' not implemented (file: '/usr/local/lib/python3.8/dist-packages/tensorflow/core/kernels')

The reason is that, at the very beginning of tensorflow, tf will try to load libraries in .so file (see tensorflow/__init__.py).
However, at this time the plugins has not been initialized yet, so TF's own file_io.file_exists is not working yet. But as tf.load_library used file_io.file_exists, this causes a circular dependency.
This PR replaces file_io.file_exists with os.path.exists in or before tf.load_library.
This will not impact exisitng behavior: since tf.load_library relies on dlopen (and LoadLibrary on Windows), a non-native file system (e.g., s3/gcs/etc) will not work with tf.load_library anyway. As such there is no need to use gcs/s3 compatible file_io.file_exists.
This PR is part of the effort to enable modular file system from external repos (e.g., tensorflow-io).
Signed-off-by: Yong Tang<EMAIL_ADDRESS>

I think plan here was to always link the local filesystem to the pip package. But let's take this one for now, to not have you blocked while we work on implementing Windows and doing the full switch.

Thanks @mihaimaruseac a lot for the help! 👍 ❤


Resolve animation nodes correctly and uniquify sibling node names

Fixes #https://github.com/playcanvas/playcanvas-viewer/issues/135
We've had a bug in the gltf loader which prepends the name of the first node in the file to the animation path. This results in totally incorrect animation paths when the root node is not first in the list.
We are also unable to resolve paths in the tree when sibling nodes have the same name.
This PR does the following:

directly build the path from the node, including root name
uniquify sibling node names
attempt tree traversal to resolve node names, otherwise fall back to previous methods.

This PR appears to resolve a number of existing problem gltf files.

Also appears to fix https://github.com/playcanvas/playcanvas-viewer/issues/133


Added DBM metrics

Description:

Added metrics:

postgresql.rows
postgresql.rows_deleted
postgresql.rows_fetched
postgresql.rows_updated
postgresql.rows_inserted
postgresql.queries.total_exec_time
postgresql.live_rows
postgresql.operations:
postgresql.buffer_hit
Link to tracking Issue:

Testing:
Documentation:

Adding tests is quite straight forward. Write the mock counterparts of methods for the postgresql client and then populate the expected.yaml files for respective tests.

Done with the conflicts.


%5C instead of / when generating a manifest

Hi, I am not sure if that's wrong but instead of getting "/" in my paths I get "%5C". For example I get a path generated like this: "css%5Cmain.css" instead of "css/main.css".
I am running gulp in windows.

@bboydflo Can you try updating? The NPM package was updated a few minutes ago and Windows path handling was one of the changes.

@gronke thanks, that worked! Many thangs for the plugin! It is very useful +1:

Hi, unfortunately after updating to the latest version, the same error appears to happen again. I am running gulp in windows.


fix: README.md Sponsors section updated

Closes #413

I have read the CLA Document and I hereby sign the CLA

Huge thanks @ppborah
Everything looks great.
Approved.


Error Parsing SystemVerilog

Steps to reproduce the issue
Below it is the transcript from my command line, just try to synth the dff and the register based in the dff, described using SV .
Expected behavior
Please describe the behavior you would have expected from the tool.
the following should be observed:
yosys
/----------------------------------------------------------------------------
|                                                                            |
|  yosys -- Yosys Open SYnthesis Suite                                       |
|                                                                            |
|  Copyright (C) 2012 - 2018  Clifford Wolf<EMAIL_ADDRESS>         |
|                                                                            |
|  Permission to use, copy, modify, and/or distribute this software for any  |
|  purpose with or without fee is hereby granted, provided that the above    |
|  copyright notice and this permission notice appear in all copies.         |
|                                                                            |
|  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES  |
|  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF          |
|  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR   |
|  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    |
|  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN     |
|  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   |
|  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.            |
|                                                                            |
----------------------------------------------------------------------------/
Yosys 0.7+663 (git sha1 799c4248, clang 6.0.1-svn334776-1~exp1~20180830180435.102 -fPIC -Os)
yosys> read_verilog -sv ../src/sv/dff.sv

Executing Verilog-2005 frontend.
Parsing SystemVerilog input from ../src/sv/dff.sv' to AST representation. Generating RTLIL representation for module \dff'.
Successfully finished Verilog frontend.

yosys> read_verilog -sv ../src/sv/register.sv

Executing Verilog-2005 frontend.
Parsing SystemVerilog input from `../src/sv/register.sv' to AST representation.
../src/sv/register.sv:4: ERROR: syntax error
files.zip

Actual behavior
It should merely synthesize the file. Despite I don't expect the tool to support the entirety of SystemVerilog fully, however, I do expect it to be able to parse any SV file.

FWIW the workaround is probably this:
parameter XLEN = 4;

ok, but that would break the code everywhere else, wouldn't?
And what to do when we have like two or more parameters, that are separated by ',' ??
parameter XLEN=4,
parameter YADAYADA = 12

Omitting the parameter keyword in verilog-2001 style param decls in SV mode is now supported in eb452ff.

Despite I don't expect the tool to support the entirety of SystemVerilog fully, however, I do expect it to be able to parse any SV file.

Even parsing the entirety of SV is not the aim for read_verilog -sv.


Elastic Search: Add Basic Auth

Is your feature request related to a problem? Please describe.
There is no authentication function provided at the moment.

Created feature branch feature/elastic-search-auth
Code: https://github.com/Cognigy/Extensions/tree/feature/elastic-search-auth/extensions/elastic-search


Fill in the Blank with Placeholder Text

Challenge Fill in the Blank with Placeholder Text has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

Hello World

CatPhotoApp

Hello Paragraph

Issue does not describe a problem. Check with the Help Chat if you need help and file a bug with problem description and repro steps if they confirm you're experiencing a bug. Thanks and happy coding!


how to install cygwin

i don't know how to install cygwin

See https://www.cygwin.com/install.html.

which one to choose


Custom details visible when clicked on the incident

If the custom details are defined in analytic rules, they are visible now on incident, below the comments without clicking on View full details button. Is this a new UI feature? Can we disable it?
To reproduce:
1. Have some custom details in analytic rule
2. Create an incident using analytic rule
3. Click on the incident
4. All custom details will be visible below the comments section.(As shown in the screenshot below)

@shikhin-metron , this is a new capability to provide better visibility for the details mapped in the analytic rules. With this addition, users will no longer need to go into the full incident view in order to find custom details.
Note: Closing this for now as it's not a product issue.

@shikhin-metron , this is a new capability to provide better visibility for the details mapped in the analytic rules. With this addition, users will no longer need to go into the full incident view in order to find custom details.
Note: Closing this for now as it's not a product issue.

alright thanks. Was not sure if it was a new feature since could not find it anywhere on the microsoft documents on internet.


update importlib/test_importlib

I have no idea whats going on its failure.

Directory tree in RustPython (as it stands right now):
Lib/importlib/
├── __init__.py
├── _bootstrap.py
├── _bootstrap_external.py
├── abc.py
├── machinery.py
├── metadata.py
├── resources.py
└── util.py

Directory tree in CPython 3.10:
Lib/importlib/
├── metadata/
│   ├── __init__.py
│   ├── _adapters.py
│   ├── _collections.py
│   ├── _functools.py
│   ├── _itertools.py
│   ├── _meta.py
│   └── _text.py
├── __init__.py
├── _abc.py
├── _adapters.py
├── _bootstrap.py
├── _bootstrap_external.py
├── _common.py
├── abc.py
├── machinery.py
├── readers.py
├── resources.py
└── util.py

I am sorry, it was my mistake to miss new files in commit. The error is very unexpected:
Traceback (most recent call last):
  File "/Users/user/Projects/RustPython/vm/pylib-crate/Lib/unittest/loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "/Users/user/Projects/RustPython/vm/pylib-crate/Lib/unittest/loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "_frozen_importlib", line 1129, in __import__
  File "_frozen_importlib", line 1050, in _gcd_import
  File "_frozen_importlib", line 1027, in _find_and_load
  File "_frozen_importlib", line 1027, in _find_and_load
  File "_frozen_importlib", line 1006, in _find_and_load_unlocked
  File "_frozen_importlib", line 703, in _load_unlocked
  File "_frozen_importlib", line 701, in _load_unlocked
  File "_frozen_importlib", line 694, in _load_unlocked
  File "_frozen_importlib", line 688, in _load_unlocked
  File "_frozen_importlib_external", line 879, in exec_module
  File "_frozen_importlib_external", line 1017, in get_code
  File "_frozen_importlib_external", line 948, in source_to_code
  File "_frozen_importlib", line 241, in _call_with_frames_removed
  File "/Users/user/Projects/RustPython/vm/pylib-crate/Lib/test/test_importlib/test_util.py", line 1
    from . import util
     ^
SyntaxError: Got unexpected token  at line 1 column 2
from . import util
 ^

Thank you, that explains the diff. It means we don't support bom for files.

CPython has known about this issue for quite some time.


Drawing CCZ now consistent

Summary
Fixes #3968 .
Details and comments
The CCZ gate was previously drawn as a double controlled box gate. It has been changed to be drawn as follows:

Additionally the 'mpl' version of CZ  gate was drawn as a controlled box gate. It has been updated to be drawn as below:

Thanks a lot! Good work! From what I see in the code (did not run it yet), this example might not work. Probably a more general approach is needed...
qr = QuantumRegister(4, 'q')
circuit = QuantumCircuit(qr)
circuit.append(ZGate().control(3), [qr[0], qr[1], qr[2], qr[3]])
circuit.draw('...')

Thanks a lot! Good work! From what I see in the code (did not run it yet), this example might not work. Probably a more general approach is needed...
qr = QuantumRegister(4, 'q')
circuit = QuantumCircuit(qr)
circuit.append(ZGate().control(3), [qr[0], qr[1], qr[2], qr[3]])
circuit.draw('...')

Sorry my bad. Clicked the wrong button.

Thanks a lot! Good work! From what I see in the code (did not run it yet), this example might not work. Probably a more general approach is needed...
qr = QuantumRegister(4, 'q')
circuit = QuantumCircuit(qr)
circuit.append(ZGate().control(3), [qr[0], qr[1], qr[2], qr[3]])
circuit.draw('...')

Good point. I'm on it.

Have tried to make the controlled-z more general. The gates are now drawn as follows:

I suppose this should be sufficient.

I made some small changes in the text drawer. Thanks alot for your contribution!


Allow publishing on GitHub.com

Like https://github.com/pixiebrix/eslint-config-pixiebrix/commit/0ccb477dde429c9aa72a387f99316e246535ba67
This package hasn't been published in almost a year, let's make it easier to do it

The publishing worked, but the branch protections prevented this from working. We had talked about this for the before, I think, webext-messenger isn't a Pixiebrix product so it doesn't need this kind of protection. The extension itself already has the appropriate branch protections.


Create URL shortener

Having long URLs with all the app ids in the query looks odd to share
Firebase Dynamic Links get deprecated and we need a replacement for the AppVersionsSlackSlashCommand
Add a sharing button somewhere to the UI
Make it secure so that only appvers.io domain are allowed to be shorten...

We could use Vercel KV (key value) storage for that 🤔


When function

Describe the feature
I want to add conditional query and It would be nice if we could have a .When() function which get a bool as first argument and the rest can be same as .Where() which the first argument indicates if the ORM should add that specific query or not.
Motivation
I want to add conditional query, Imagine I want to add a .where() clause which will take place only if there is a specific parameter like Active present in the request query params.
active, exists := QueryParams["active"]
db.Where("name = ?", name).When(exists, "active = ?", active).Where("something_else = ?", "random").First(&User)

Related Issues
--

I am not particularly keen on adding a new API; rather, I would like to implement 'When' support based on the current Scopes format.
Example:
Let's say you want to dynamically apply a filter based on a condition using GORM's Scopes. Here's a simple example to illustrate how this can be achieved:
// UserActiveScope applies a filter dynamically based on the 'active' condition
func UserActiveScope(active bool) func(db *gorm.DB) *gorm.DB {
    return func(db *gorm.DB) *gorm.DB {
        return db.Scopes(When(active, ActiveUserFilter))
    }
}

// ActiveUserFilter defines the filter to be applied when the user is active
func ActiveUserFilter(db *gorm.DB) *gorm.DB {
    return db.Where("active = ?", true)
}

// When determines whether to apply the given scope based on the condition
func When(condition bool, applyScope func(*gorm.DB) *gorm.DB) func(*gorm.DB) *gorm.DB {
    return func(db *gorm.DB) *gorm.DB {
        if condition {
            return applyScope(db)
        }
        return db
    }
}

In this example, UserActiveScope is a Scope that dynamically applies the ActiveUserFilter based on the passed active boolean value. The function When is used to decide whether to apply this filter. If active is true, then the ActiveUserFilter is applied to the query; otherwise, the query remains unchanged. This way, you can flexibly control the query conditions without the need to introduce a new API.


Data sensors

2020 palisade with sunnyhaibin none personal keeps getting data sensor issue after install. Won’t engage it also says unable to detect car closes car is 2020 palisade.

Hi, this issue should be fixed in the latest release of sunnypilot. Please install the below branches:

0.8.12-prod-full-hkg
0.8.12-prod-personal-hkg


🐛 Sub-optimal computation of exact mapper, heuristic performs better than exact mapper

mqt.qmap version
mqt-qmap 2.1.1 via pip
OS
Ubuntu
Python version
No response
C++ compiler
No response
Additional environment information
No response
Description
See MEW below:
from qiskit import QuantumCircuit
from mqt import qmap

circ = QuantumCircuit(4)
circ.cx(1,0)
circ.cx(0,1)
circ.cx(2,1)
circ.cx(1,2)
circ.cx(3,2)

arch = qmap.Architecture(
    5,
    {
        (1, 0),
        (2, 0),
        (2, 1),
        (4, 2),
        (3, 2),
        (3, 4),
    },
)

qc_mapped_exact, res = qmap.compile(circ, arch, method="exact", post_mapping_optimizations=False)
qc_mapped_heu, res = qmap.compile(circ, arch, method="heuristic", post_mapping_optimizations=False)

print(f"Exact: {qc_mapped_exact.count_ops()}") # gives 12 addtional H - sub-optimal but correct
print(f"Heuristic: {qc_mapped_heu.count_ops()}") # gives 8 addtional H - correct + optimal

Expected behavior

I would assume that the heuristic approach, in contrast to the exact approach, is not better in terms of added number of gates
The solution of the exact mapper is not the minimal number of addtional H gates

How to Reproduce

Run MWE above
MWE can be computed via pen&paper

Thanks for bringing this up and taking the time to create the minimal reproducer. That certainly looks like a bug and I'll look into it. I'll come back to you once I found something.

Just released 2.1.2 with a fix for the issue above. Should be on PyPI later today.
Thanks again for bringing this up and coming up with such a small example. Made it fairly easy to dig to the ground of the issue.


[Bug] on horizonatally resizing of modal, the dimensions of the widgets get messed up

https://www.loom.com/share/c3ca8283dcea477b94ae3547ad518ef7

UPDATE_WIDGET_DIMENSION is already happening while resizing modal.
We need to call PROCESS_AUTO_LAYOUT_DIMENSION_UPDATES once the modal resizing is done.


Sushi getApy

This is good to go now. Was working through a discrepancy between the reported APY and sushi's APY. Sushi just fixed their calculation in this commit:
https://github.com/sushiswap/sushiswap-interface/commit/1b130048a62263151af5fe8299c369bc360d6847#diff-2188465a0fd5c4dbec79ba94ef292206a1d9bcb63a54f71ccb93398c7eb90c38


More than one defaulting webhook controller won't work in the same binary with HA enabled

Expected Behavior
I can set more than one defaulting webhook controller in the same binary with leader election (HA) enabled. Same for configmaps and validation webhook.
Actual Behavior
If more than one defaulting webhook controllers are set in the same binary with leader election (HA) enabled, only one of the controllers would reconcile as expected.
Steps to Reproduce the Problem

In knative serving webhook main.go, set up another defaulting.NewAdmissionController for Istio MutatingWebhookConfiguration
Deploy knative serving and the Istio MutatingWebhookConfiguration.
Check Istio MutatingWebhookConfiguration and the serving MutatingWebhookConfiguration, you will fine that only one of them gets reconciled.

Additional Info
This is because for defaulting webhook controllers, they share the same lease. The lease name is defaultingwebhook: https://github.com/knative/pkg/blob/master/webhook/resourcesemantics/defaulting/controller.go#L77. However when setting up leader election, each controller uses different resource lock ID: https://github.com/knative/pkg/blob/master/leaderelection/context.go#L114. So only one of them will actually got set up successfully.
In Knative serving autoscaler, KPA controller and metrics controller share the same lease as well. But they have the same resource lock ID: https://github.com/knative/serving/blob/master/cmd/autoscaler/main.go#L269. The callbacks of those two controllers will be triggered when starting leading the lease.

Maybe the simplest way to fix is to use the name of MutatingWebhookConfiguration for the names of reconcile queue and the lease as well, which is a parameter of defaulting.NewAdmissionController. Same for validation and configmaps webhook controllers.
cc @mattmoor

Maybe the simplest way to fix is to use the name of MutatingWebhookConfiguration for the names of reconcile queue and the lease as well, which is a parameter of defaulting.NewAdmissionController. Same for validation and configmaps webhook controllers.
cc @mattmoor

set up another defaulting.NewAdmissionController for Istio

Don't do that. 😜
In mink I'm running a defaulting webhook for all of serving, eventing, and tekton as a single endpoint (I used to run a lot more!).  Pass all the types to a single defaulting webhook.
Is there a legitimate reason to be running multiple defaulting webhooks vs. a single with all the types...?

set up another defaulting.NewAdmissionController for Istio

Don't do that. 😜
In mink I'm running a defaulting webhook for all of serving, eventing, and tekton as a single endpoint (I used to run a lot more!).  Pass all the types to a single defaulting webhook.
Is there a legitimate reason to be running multiple defaulting webhooks vs. a single with all the types...?

Is there a legitimate reason to be running multiple defaulting webhooks vs. a single with all the types...?

I don't see one. Currently in our downstream branch we just copy both the MutatingWebhookConfiguration in serving repo and net-istio repo. I guess it is for easy sync with upstream.
If using single defaulting webhook is the right way to go, I'll do that. Thanks.

Is there a legitimate reason to be running multiple defaulting webhooks vs. a single with all the types...?

I don't see one. Currently in our downstream branch we just copy both the MutatingWebhookConfiguration in serving repo and net-istio repo. I guess it is for easy sync with upstream.
If using single defaulting webhook is the right way to go, I'll do that. Thanks.

Yeah, that's the way things were intended to work: https://github.com/mattmoor/mink/blob/f6f4dc092ce14818642cacf87ce26ac892d5a392/cmd/webhook/defaulting.go#L57
LMK if you need any pointers / help.

Yeah, that's the way things were intended to work: https://github.com/mattmoor/mink/blob/f6f4dc092ce14818642cacf87ce26ac892d5a392/cmd/webhook/defaulting.go#L57
LMK if you need any pointers / help.

It turned out that https://github.com/knative-sandbox/net-istio/blob/master/config/500-mutating-webhook.yaml has a matchExpression while https://github.com/knative/serving/blob/master/config/core/webhooks/defaulting.yaml doesn't. Can't simply merge them.

It turned out that https://github.com/knative-sandbox/net-istio/blob/master/config/500-mutating-webhook.yaml has a matchExpression while https://github.com/knative/serving/blob/master/config/core/webhooks/defaulting.yaml doesn't. Can't simply merge them.

Is 'the webhook may not be running on cluster but needs to negotiate with other clusters for ownership' a good reason?
In an advanced case where the user does not want their on-cluster control plane availability to be tied to their own data plane, I could see having multiple webhooks (some with different failure domains) that would all need to negotiate.

Is 'the webhook may not be running on cluster but needs to negotiate with other clusters for ownership' a good reason?
In an advanced case where the user does not want their on-cluster control plane availability to be tied to their own data plane, I could see having multiple webhooks (some with different failure domains) that would all need to negotiate.

Talked with @mattmoor in slack, there are a few solutions:

Make multiple defaulting webhooks work with HA. Defaulting webhook is not designed to support multiple instances. However I'm not sure why (we didn't talk about it). @mattmoor could you explain?
Add the filtering logic in https://github.com/knative-sandbox/net-istio/blob/master/pkg/defaults/deployment_defaults.go#L60 instead of depending on matchExpression. But it will become control plane of all deployments, including knative deployments.
Implement a new webhook controller like the defaulting webhook and use it for those MutatingWebhookConfiguration who have the same matchExpression.
Change the defaulting webhooks to support multiple admissionReviewVersions. Is it doable?

Talked with @mattmoor in slack, there are a few solutions:

Make multiple defaulting webhooks work with HA. Defaulting webhook is not designed to support multiple instances. However I'm not sure why (we didn't talk about it). @mattmoor could you explain?
Add the filtering logic in https://github.com/knative-sandbox/net-istio/blob/master/pkg/defaults/deployment_defaults.go#L60 instead of depending on matchExpression. But it will become control plane of all deployments, including knative deployments.
Implement a new webhook controller like the defaulting webhook and use it for those MutatingWebhookConfiguration who have the same matchExpression.
Change the defaulting webhooks to support multiple admissionReviewVersions. Is it doable?

General observations/context I have:

Kubernetes lets you have multiple webhook entries in the validating/mutating resource

Our webhook tooling only supports a single webhook entry per resource
There's not explanation why i) is the way it is since it's been like this forever (initial serving commit)

@markusthoemmes's recent PR https://github.com/knative/pkg/pull/1949 preserves webhook properties that we don't set (ie. object selectors)
Two webhook controllers of the same class (ie. defaulting, validation, config, cert, psbinding) can't co-exist because they compete for the same lease.

Controllers don't have this problem because they generally have unique names (component + work queue)

We also have a bug where after the CRDs are created but before the webhook computes/applies rules invalid resources can be created

Comments on the Solutions:

Make multiple defaulting webhooks work with HA. Defaulting webhook is not designed to support multiple instances. However I'm not sure why (we didn't talk about it). @mattmoor could you explain?

I interpret this as there should only be a single registered webhook that uses apis.Defaultable to default a type.

Add the filtering logic in https://github.com/knative-sandbox/net-istio/blob/master/pkg/defaults/deployment_defaults.go#L60 instead of depending on matchExpression. But it will become control plane of all deployments, including knative deployments

I'm not a fan of this - is the goal to avoid deploying two webhook?

Implement a new webhook controller like the defaulting webhook and use it for those MutatingWebhookConfiguration who have the same matchExpression.

I sorta mentioned this here: https://github.com/knative/pkg/issues/1140#issuecomment-598850652
This could work with multiple webhook registrations per resource. With Markus's change certain selectors won't be reconciled away.
Related to my third point should we continue to have this inconsistency between webhooks and controllers. This would imply that you need to compose webhooks like matt does here: https://github.com/knative/pkg/issues/1979#issuecomment-755526782 vs the traditional way of composing controllers

Change the defaulting webhooks to support multiple admissionReviewVersions. Is it doable?

Not sure what you mean - these admission versions are just the webhook envelope between the k8s api server <=> webhook. They're currently v1 & v1beta1


Remove allowSyntheticDefaultImports

From base tsconfig.
From react-dnd's tsconfig.

Also fix up the one import (of React) that relies on
allowSyntheticDefaultImports.
Fixes #1628

@sandersn hoist-non-react-statics is the last bit here, I'll publish my fork next. This fix will be published tonight.


Add EqualX

EqualX is a GUI LaTeX editor. It creates $HOME/.equalx. Relevant issue referenced.

Thanks!


Basic Javascript: Use the parseInt Function link broken

When clicking on the "Get a hint" button it takes you to a stub that has been archived by the owner. I would like to create a guide for this problem if possible, but am a beginner and don't know how to create a new stub.
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/use-the-parseint-function

Browser Name: Google Chrome
Browser Version: Version 72.0.3626.121
Operating System: Mac OS High Sierra

Hi @SuperSafie
Thanks for noticing this.  However, it has already been fixed on our master branch, but has not been moved to production.
You can check the beta site which is a mirror of the current master branch, to see that the link works.
We are in the process of moving many fixes to production in the near future.
I am closing this issue for now.
Thank you.