Jim Klimov
2022-Nov-30 08:05 UTC
[Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade
FWIW, just checked: `git grep nut-client` does not return anything related to systemd, so that typo gotta be Fedora's invention ;) In-source there is only nut-common.tmpfiles handling. Jim On Wed, Nov 30, 2022 at 8:20 AM Simon Wilson via Nut-upsuser < nut-upsuser at alioth-lists.debian.net> wrote:> ----- Message from Bill Gee <bgee at campercaver.net> --------- > Date: Tue, 29 Nov 2022 19:25:19 -0600 > From: Bill Gee <bgee at campercaver.net> > Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade > To: Jim Klimov <jimklimov+nut at gmail.com> > Cc: Arnaud Quette via Nut-upsuser < > nut-upsuser at alioth-lists.debian.net> > > > > I got it to run, but what a mess ... > > > > Yes, I am running systemctl daemon-reload and systemctl restart > > nut-server after each change I make. > > > > Hi Bill, > > Drivers and upsd share defaults (see 'man nutupsdrv'). > > Your original error message ("writepid: fopen > /var/run/usbhid-ups-cyberpower.pid: Permission denied") would seem to > indicate, same as the Red Hat bug, that your driver's default pid path > is /var/run. > > The driver by default uses STATEPATH (which can be over-ridden in > upsd.conf) to store pid files. The driver .service file is supposed to > make sure that path exists by running the ExecStartPre line, which > gets its instructions from the referenced ".conf" file from > /usr/lib/tmpfiles.d. The .service file then calls 'upsdrvctl start' to > start your usbhid-ups driver, as defined in ups.conf. Those all need > to align... > > 2 x questions: > > 1. Without its comments, what are the active lines (as installed, > without any changes) in /usr/lib/systemd/system/nut-driver at .service > (or wherever that service file is located on your system)? > 2. in your upsd.conf (also as installed, without any changes), what is > the commented out STATEPATH you later mention uncommenting? > > > I created /usr/lib/tmpfiles.d/nut-client.conf The owner is > > root:root and permissions are 0644. The contents are > > > > # State file (e.g. upsd to driver) and pidfile location for NUT: > > D /var/run/nut 0770 root nut - - > > X /var/run/nut > > > > I uncommented the STATEPATH line in /etc/ups/upsd.conf. > > > > I created a directory /var/state/ups, set to 777 permissions. > > Changed the STATEPATH line in upsd.conf. No success. > > > > I looked at /usr/lib/systemd/system/nut-driver at .service but could > > not see any changes to be made. The bug report at RedHat mentions > > that a file identified in ExecStartPre does not exist, but I could > > not duplicate. > > > > I tried running this as root: > > > > NUT_STATEPATH=/var/state/ups NUT_ALTPIDPATH=/var/state/ups > > /usr/sbin/usbhid-ups -u nut -g nut -s cyberpower -x port=auto > > > > And it works. I tried it with only one or the other of the two > > environment variables, but did not work. It has to have both. > > > > ==============> > Bill Gee > > > > > > On 11/29/22 17:43, Jim Klimov wrote: > >> As recently noted in the lists, this was tracked > >> down to a Fedora 37 packaging bug: > >> https://bugzilla.redhat.com/show_bug.cgi > >> <https://bugzilla.redhat.com/show_bug.cgi>?id=2127269 > >> > >> > The nut user does not have write permissions at /run. > >> Note that /run is linked as /var/run and the nut user DOES have write > >> permissions there. > >> > >> These two statements do not fit together :) Permissions on symlink > >> do not matter, only the ultimate object's rights do (root-owned > >> /run). The packaging error is that (/var)/run/nut should have been > >> used for drivers and upsd, or /var/state/ups as it should also > >> exist and be accessible to these. For a quick fix you can set > >> Environment=NUT_ALTPIDPATH=/var/state/ups for their systemd units > >> or respective custom drop-in files. > >> > >> Jim > >> > >> On Tue, Nov 29, 2022, 14:06 Bill Gee <bgee at campercaver.net > >> <mailto:bgee at campercaver.net>> wrote: > >> > >> Yesterday I upgraded one of my systems from Fedora 36 to Fedora > >> 37. NUT > >> was upgraded to version 2.8.0. It no longer runs. > >> > >> At first I thought it was because of the XFCE Power Manager program. > >> That program finds the UPS with no problem. I thought maybe the two > >> programs were competing for the UPS port. I shut down the XFCE power > >> manager, but that did not help NUT. > >> > >> Based on the diagnostics given below, I think this is a permissions > >> problem at /run. The nut user does not have write permissions at > /run. > >> Note that /run is linked as /var/run and the nut user DOES have write > >> permissions there. > >> > >> How can I correct this? > >> > >> ======================================> >> [root at mythtv ups]# systemctl status nut-server > >> nut-server.service - Network UPS Tools - power devices information > >> server > >> Loaded: loaded (/usr/lib/systemd/system/nut-server.service; > >> enabled; preset: disabled) > >> Active: active (running) since Tue 2022-11-29 06:18:13 CST; > >> 19min ago > >> Main PID: 11908 (upsd) > >> Tasks: 1 (limit: 9482) > >> Memory: 736.0K > >> CPU: 27ms > >> CGroup: /system.slice/nut-server.service > >> ??11908 /usr/sbin/upsd -F > >> > >> Nov 29 06:18:13 mythtv.billgee.local upsd[11908]: Can't connect to > UPS > >> [cyberpower] (usbhid-ups-cyberpower): No such fi> > >> Nov 29 06:18:13 mythtv.billgee.local nut-server[11908]: Can't > >> connect to > >> UPS [cyberpower] (usbhid-ups-cyberpower): No s> > >> Nov 29 06:18:13 mythtv.billgee.local nut-server[11908]: Running as > >> foreground process, not saving a PID file > >> Nov 29 06:18:13 mythtv.billgee.local upsd[11908]: Running as > foreground > >> process, not saving a PID file > >> Nov 29 06:23:13 mythtv.billgee.local nut-server[11908]: Can't > >> connect to > >> UPS [cyberpower] (usbhid-ups-cyberpower): No such file or directory> > >> Nov 29 06:23:13 mythtv.billgee.local upsd[11908]: Can't connect to > UPS > >> [cyberpower] (usbhid-ups-cyberpower): No such file or directory> > >> > >> [root at mythtv ups]# usbhid-ups -a cyberpower > >> Network UPS Tools - Generic HID driver 0.47 (2.8.0) > >> USB communication driver (libusb 1.0) 0.43 > >> writepid: fopen /var/run/usbhid-ups-cyberpower.pid: Permission denied > >> Using subdriver: CyberPower HID 0.6 > >> cps_adjust_battery_scale: battery readings will be scaled by 2/3 > >> > >> Fatal error: unable to create listener socket > >> > >> bind /var/run/usbhid-ups-cyberpower failed: Permission denied > >> > >> Exiting. > >> > >> [root at mythtv ups]# ll /var/run/usb* > >> ls: cannot access '/var/run/usb*': No such file or directory > >> > >> [root at mythtv ups]# ll -d /var/run > >> lrwxrwxrwx. 1 root root 6 Aug 31 2014 /var/run -> ../run > >> > >> [root at mythtv ups]# ll -d /run > >> drwxr-xr-x 55 root root 1500 Nov 28 08:22 /run > >> > >> [root at mythtv ups]# tail /etc/ups/ups.conf > >> [cyberpower] > >> driver=usbhid-ups > >> desc="CyberPower CP1500" > >> port=auto > >> vendorid=0764 > >> =================================================> >> > >> > >> Thanks! > >> -- ==============> >> Bill Gee > >> > >> _______________________________________________ > >> Nut-upsuser mailing list > >> Nut-upsuser at alioth-lists.debian.net > >> <mailto:Nut-upsuser at alioth-lists.debian.net> > >> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser > >> < > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser> > >> > > > > _______________________________________________ > > Nut-upsuser mailing list > > Nut-upsuser at alioth-lists.debian.net > > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser > > > ----- End message from Bill Gee <bgee at campercaver.net> ----- > > > > -- > Simon Wilson > M: 0400 12 11 16 > > > _______________________________________________ > Nut-upsuser mailing list > Nut-upsuser at alioth-lists.debian.net > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://alioth-lists.debian.net/pipermail/nut-upsuser/attachments/20221130/95e9381a/attachment-0001.htm>
Simon Wilson
2022-Nov-30 10:15 UTC
[Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade
----- Message from Jim Klimov <jimklimov+nut at gmail.com> --------- ? ?Date: Wed, 30 Nov 2022 09:05:33 +0100 ? ?From: Jim Klimov <jimklimov+nut at gmail.com> Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade ? ? ?To: simon at simonandkate.net ? ? ?Cc: nut-upsuser at alioth-lists.debian.net> FWIW, just checked: `git grep nut-client` does not return anything > related to systemd, so that typo gotta be Fedora's invention ;) > ? > In-source there is only nut-common.tmpfiles handling. > ? > Jim > ?Based on: https://bugzilla.redhat.com/show_bug.cgi?id=2127269 https://bugzilla.redhat.com/show_bug.cgi?id=2143442 https://bugzilla.redhat.com/show_bug.cgi?id=2143833 https://bugzilla.redhat.com/show_bug.cgi?id=2148706 I'd say that these are known issues :-D Interestingly... RH/Fedora 2.7.4 packages don't have these issues - they bring in nut-client.tmpfiles as nut-run.conf, which is then correctly called from ExecStartPre, which sets /run/nut with correct permissions. %piddir% is set to /run/nut, which is used in STATEPATH, and everything is happy. For the Fedora/RH 2.8.0 packages: From https://src.fedoraproject.org/rpms/nut/: Versions 2.8.0-4 and earlier: - pull in 'nut-client-tmpfiles' as SOURCE3 - write driver service file ExecStartPre to look for it... - ...but don't actually install it (commented out line to use it in nut.spec)... - ...and end up with the 'standard' nut-common.conf file but a service file looking for something else - appear to have broken STATEPATH / pid path? (although this is not broken on my 2.8.0-1.el8) Versions 2.8.0-5 and later: - pull in 'nut-client-tmpfiles' as SOURCE3 - write driver service file ExecStartPre to look for it... - ...but don't actually install it (commented out line to use it in nut.spec)... - ...and end up with the 'standard' nut-common.conf file but a service file looking for something else - appear to have FIXED the broken STATEPATH / pid path All in all it looks like the Fedora/RH 2.8.0 packages are not going to run as expected "out of the box"...> > On Wed, Nov 30, 2022 at 8:20 AM Simon Wilson via Nut-upsuser > <nut-upsuser at alioth-lists.debian.net> wrote: > >> ----- Message from Bill Gee <bgee at campercaver.net> --------- >> ? ? Date: Tue, 29 Nov 2022 19:25:19 -0600 >> ? ? From: Bill Gee <bgee at campercaver.net> >> Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade >> ? ? ? To: Jim Klimov <jimklimov+nut at gmail.com[1]> >> ? ? ? Cc: Arnaud Quette via Nut-upsuser >> <nut-upsuser at alioth-lists.debian.net> >> >>> I got it to run, but what a mess ... >>> >>> Yes, I am running systemctl daemon-reload and systemctl restart? >>> nut-server after each change I make. >>> >> >> Hi Bill, >> >> Drivers and upsd share defaults (see 'man nutupsdrv'). >> >> Your original error message ("writepid: fopen? >> /var/run/usbhid-ups-cyberpower.pid: Permission denied") would seem to? >> indicate, same as the Red Hat bug, that your driver's default pid path? >> is /var/run. >> >> The driver by default uses STATEPATH (which can be over-ridden in? >> upsd.conf) to store pid files. The driver .service file is supposed to? >> make sure that path exists by running the ExecStartPre line, which? >> gets its instructions from the referenced ".conf" file from? >> /usr/lib/tmpfiles.d. The .service file then calls 'upsdrvctl start' to? >> start your usbhid-ups driver, as defined in ups.conf. Those all need? >> to align... >> >> 2 x questions: >> >> 1. Without its comments, what are the active lines (as installed,? >> without any changes) in /usr/lib/systemd/system/nut-driver at .service? >> (or wherever that service file is located on your system)? >> 2. in your upsd.conf (also as installed, without any changes), what is? >> the commented out STATEPATH you later mention uncommenting? >> >>> I created /usr/lib/tmpfiles.d/nut-client.conf? ?The owner is? >>> root:root and permissions are 0644.? The contents are >>> >>> # State file (e.g. upsd to driver) and pidfile location for NUT: >>> D /var/run/nut 0770 root nut - - >>> X /var/run/nut >>> >>> I uncommented the STATEPATH line in /etc/ups/upsd.conf. >>> >>> I created a directory /var/state/ups, set to 777 permissions.? ? >>> Changed the STATEPATH line in upsd.conf.? No success. >>> >>> I looked at /usr/lib/systemd/system/nut-driver at .service but could? >>> not see any changes to be made.? The bug report at RedHat mentions? >>> that a file identified in ExecStartPre does not exist, but I could? >>> not duplicate. >>> >>> I tried running this as root: >>> >>> NUT_STATEPATH=/var/state/ups NUT_ALTPIDPATH=/var/state/ups? >>> /usr/sbin/usbhid-ups -u nut -g nut -s cyberpower -x port=auto >>> >>> And it works.? I tried it with only one or the other of the two? >>> environment variables, but did not work.? It has to have both. >>> >>> ==============>>> Bill Gee >>> >>> >>> On 11/29/22 17:43, Jim Klimov wrote: >>>> As recently noted in the lists, this was tracked >>>> down to a Fedora 37 packaging bug:? >>>> https://bugzilla.redhat.com/show_bug.cgi? >>>> <https://bugzilla.redhat.com/show_bug.cgi>?id=2127269 >>>> >>>> > The nut user does not have write permissions at /run. >>>> Note that /run is linked as /var/run and the nut user DOES have write >>>> permissions there. >>>> >>>> These two statements do not fit together :) Permissions on symlink? >>>> do not matter, only the ultimate object's rights do (root-owned? >>>> /run). The packaging error is that (/var)/run/nut should have been? >>>> used for drivers and upsd, or /var/state/ups as it should also? >>>> exist and be accessible to these. For a quick fix you can set? >>>> Environment=NUT_ALTPIDPATH=/var/state/ups for their systemd units? >>>> or respective custom drop-in files. >>>> >>>> Jim >>>> >>>> On Tue, Nov 29, 2022, 14:06 Bill Gee <bgee at campercaver.net? >>>> <mailto:bgee at campercaver.net>> wrote: >>>> >>>> ? ? Yesterday I upgraded one of my systems from Fedora 36 to Fedora? >>>> 37.? ? ?NUT >>>> ? ? was upgraded to version 2.8.0.? It no longer runs. >>>> >>>> ? ? At first I thought it was because of the XFCE Power Manager program. >>>> ? ? That program finds the UPS with no problem.? I thought maybe the two >>>> ? ? programs were competing for the UPS port.? I shut down the XFCE power >>>> ? ? manager, but that did not help NUT. >>>> >>>> ? ? Based on the diagnostics given below, I think this is a permissions >>>> ? ? problem at /run.? The nut user does not have write >>>> permissions at /run. >>>> ? ? Note that /run is linked as /var/run and the nut user DOES have write >>>> ? ? permissions there. >>>> >>>> ? ? How can I correct this? >>>> >>>> ? ? ======================================>>>> ? ? [root at mythtv ups]# systemctl status nut-server >>>> ? ? nut-server.service - Network UPS Tools - power devices information >>>> ? ? server >>>> ? ? ?? ? ? Loaded: loaded (/usr/lib/systemd/system/nut-server.service; >>>> ? ? enabled; preset: disabled) >>>> ? ? ?? ? ? Active: active (running) since Tue 2022-11-29 06:18:13 CST; >>>> ? ? 19min ago >>>> ? ? ?? ? Main PID: 11908 (upsd) >>>> ? ? ?? ? ? ?Tasks: 1 (limit: 9482) >>>> ? ? ?? ? ? Memory: 736.0K >>>> ? ? ?? ? ? ? ?CPU: 27ms >>>> ? ? ?? ? ? CGroup: /system.slice/nut-server.service >>>> ? ? ?? ? ? ? ? ? ? ??11908 /usr/sbin/upsd -F >>>> >>>> ? ? Nov 29 06:18:13 mythtv.billgee.local upsd[11908]: Can't connect to UPS >>>> ? ? [cyberpower] (usbhid-ups-cyberpower): No such fi> >>>> ? ? Nov 29 06:18:13 mythtv.billgee.local nut-server[11908]: Can't >>>> ? ? connect to >>>> ? ? UPS [cyberpower] (usbhid-ups-cyberpower): No s> >>>> ? ? Nov 29 06:18:13 mythtv.billgee.local nut-server[11908]: Running as >>>> ? ? foreground process, not saving a PID file >>>> ? ? Nov 29 06:18:13 mythtv.billgee.local upsd[11908]: Running as >>>> foreground >>>> ? ? process, not saving a PID file >>>> ? ? Nov 29 06:23:13 mythtv.billgee.local nut-server[11908]: Can't >>>> ? ? connect to >>>> ? ? UPS [cyberpower] (usbhid-ups-cyberpower): No such file or directory> >>>> ? ? Nov 29 06:23:13 mythtv.billgee.local upsd[11908]: Can't connect to UPS >>>> ? ? [cyberpower] (usbhid-ups-cyberpower): No such file or directory> >>>> >>>> ? ? [root at mythtv ups]# usbhid-ups -a cyberpower >>>> ? ? Network UPS Tools - Generic HID driver 0.47 (2.8.0) >>>> ? ? USB communication driver (libusb 1.0) 0.43 >>>> ? ? writepid: fopen /var/run/usbhid-ups-cyberpower.pid: Permission denied >>>> ? ? Using subdriver: CyberPower HID 0.6 >>>> ? ? cps_adjust_battery_scale: battery readings will be scaled by 2/3 >>>> >>>> ? ? Fatal error: unable to create listener socket >>>> >>>> ? ? bind /var/run/usbhid-ups-cyberpower failed: Permission denied >>>> >>>> ? ? Exiting. >>>> >>>> ? ? [root at mythtv ups]# ll /var/run/usb* >>>> ? ? ls: cannot access '/var/run/usb*': No such file or directory >>>> >>>> ? ? [root at mythtv ups]# ll -d /var/run >>>> ? ? lrwxrwxrwx. 1 root root 6 Aug 31? 2014 /var/run -> ../run >>>> >>>> ? ? [root at mythtv ups]# ll -d /run >>>> ? ? drwxr-xr-x 55 root root 1500 Nov 28 08:22 /run >>>> >>>> ? ? [root at mythtv ups]# tail /etc/ups/ups.conf >>>> ? ? [cyberpower] >>>> ? ? ?? ? ? ? ?driver=usbhid-ups >>>> ? ? ?? ? ? ? ?desc="CyberPower CP1500" >>>> ? ? ?? ? ? ? ?port=auto >>>> ? ? ?? ? ? ? ?vendorid=0764 >>>> ? ? =================================================>>>> >>>> >>>> ? ? Thanks! >>>> ? ? --? ? ?==============>>>> ? ? Bill Gee >>>> >>>> ? ? _______________________________________________ >>>> ? ? Nut-upsuser mailing list >>>> ? ? Nut-upsuser at alioth-lists.debian.net >>>> ? ? <mailto:Nut-upsuser at alioth-lists.debian.net> >>>> ? ? https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser >>>> ? ? <https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser> >>>> >>> >>> _______________________________________________ >>> Nut-upsuser mailing list >>> Nut-upsuser at alioth-lists.debian.net >>> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser >> >> ----- End message from Bill Gee <bgee at campercaver.net> ----- >> >> -- >> Simon Wilson >> M: 0400 12 11 16 >> >> _______________________________________________ >> Nut-upsuser mailing list >> Nut-upsuser at alioth-lists.debian.net >> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser----- End message from Jim Klimov <jimklimov+nut at gmail.com> ----- Links: ------ [1] mailto:jimklimov%2Bnut at gmail.com -- Simon Wilson M: 0400 12 11 16