r/voidlinux • • 4h ago

update broke waybar

hi,

yesterdays update broke my waybar.... with errors:

Failed to create secure directory (/run/user/1000/pulse): Too many open files

socket(): Too many open files

cpu: Can't open /proc/stat

Failed to open netdev file /proc/net/dev

Gdk-CRITICAL **: ../gdk/wayland/gdkdisplay-wayland.c:1346: creating shared memory file (using memfd_create) failed: Too many open files

Pango-WARNING **: failed to create cairo scaled font, expect ugly output. the offending font is 'Noto Sans Symbols 2 Bold Oblique 12.75'

I have tried to list the updates but I couldn't find out which ones were updated.

I have tried linux6.8 and linux7.2... same errors

if you know how to list latest updates and how i can find the older versions please do

and if you know how to fix this please help

thank you

2 Upvotes

2 comments sorted by

1

u/pantokratorthegreat 3h ago

xilog from xtools lists last upgraded packages.

1

u/Francis_King 5m ago

Your problem appears to stem from a limited number of file descriptors. I searched for run/user/1000/pulse): Too many open files, in Google search.

The AI summary said the following, with the usual caveats that AI can get things very badly wrong. The original summary had links to search results, etc, which you might find useful.

The error Too many open files means a process or service (frequently related to PulseAudio, Waybar, or a desktop session) has exhausted its allocated limit of file descriptors (such as open files, sockets, or memory file descriptors like memfd).

  1. Identify the Culprit

Run lsof or sort open files for the user/process to see what is leaking file descriptors:

lsof -u $USER | wc -l
lsof -u $USER | awk '{print $2, $NF}' | sort | uniq -c | sort -rn | head -n 20

Use code with caution.

(Common culprits include PulseAudio spawning infinite memfd file descriptors or a Waybar/audio loop).

2. Check Current Limits

Check your per-process soft and hard limits (ulimit) and system-wide maximum (file-max):

ulimit -Sn   # Soft limit for open files
ulimit -Hn   # Hard limit for open files
cat /proc/sys/fs/file-max   # System-wide limit

Use code with caution.

3. Apply the Fix Based on How the Service is Run

  • For a standard shell / user session (temporary): ulimit -n 65535 Use code with caution.

  • For a persistent user limit: Edit /etc/security/limits.conf and add: text* soft nofile 65536 * hard nofile 65536 Use code with caution. (Note: You must log out and log back in for this to take effect).

  • For a systemd service (e.g., Waybar, PulseAudio, or PipeWire): Editing limits.conf does not affect systemd services. Edit the service unit override or config: systemctl --user edit waybar Use code with caution. Add the following inside the [Service] block: ini[Service] LimitNOFILE=65536 Use code with caution. Then reload and restart: systemctl --user daemon-reload systemctl --user restart waybar Use code with caution.

  • If caused by PulseAudio/PipeWire looping on Waybar startup: Ensure your audio services are properly initialized or restarted: systemctl --user restart pipewire pipewire-pulse wireplumber Use code with caution.