Bugzilla – Bug 1218370
failing to start pppoe after snapshot 20231221
Last modified: 2024-01-12 07:26:04 UTC
Created attachment 871541 [details] ouput journalctl pppoe timeout and restart I use a pppoe connection started with systemd and ppp@.service I have a config file in /etc/ppp/peers which define some parameters and set the MTU to 1492. This worked since years but after installing today the last snapshots up to 20231221 I cannot start the connection and I receive this error Dec 22 22:17:45 hpprol2 systemd[1]: Created slice Slice /system/ppp. Dec 22 22:17:57 hpprol2 systemd[1]: Starting PPP link to proximus... Dec 22 22:17:58 hpprol2 pppd[1440]: /usr/sbin/pppd: /usr/lib64/pppd/2.5.0/rp-pppoe.so: cannot open shared object file: No such file or directory Dec 22 22:17:58 hpprol2 pppd[1440]: /usr/sbin/pppd: Couldn't load plugin rp-pppoe.so Dec 22 22:17:58 hpprol2 pppd[1440]: /usr/lib64/pppd/2.5.0/rp-pppoe.so: cannot open shared object file: No such file or directory Dec 22 22:17:58 hpprol2 pppd[1440]: Couldn't load plugin rp-pppoe.so Dec 22 22:17:58 hpprol2 systemd[1]: ppp@proximus.service: Control process exited, code=exited, status=2/INVALIDARGUMENT Dec 22 22:17:58 hpprol2 systemd[1]: ppp@proximus.service: Failed with result 'exit-code'. Dec 22 22:17:58 hpprol2 systemd[1]: Failed to start PPP link to proximus. Dec 22 22:18:08 hpprol2 systemd[1]: ppp@proximus.service: Scheduled restart job, restart counter is at 1. Dec 22 22:18:08 hpprol2 systemd[1]: Starting PPP link to proximus.. I see that there is no more a rp-pppoe.so library in /usr/lib64/pppd/2.5.0. only a pppoe.so library I think that something changed but that ppp@.service has not been updated accordingly I did a hard link between this library and rp-pppoe.so via command "ln pppoe.so rp-ppoe.so" This allow to start the pppoe connection but it timeouts after 1 minute. I link here the output of journalctl errors found: Failed to create /etc/ppp/run/ppp_resolv.conf.ppp0: No such file or directory Warning: couldn't open ppp database /var/run/pppd/pppd2.tdb How to restore/update this pppoe connection?
Ass far as I see there is an update for ppp from 2.4.9 to 2.5.0 in snapshot 20231221, with this remark in the changelog " Update to version 2.5.0. This release is a major release of pppd which contains breaking changes for third-party plugins, a complete revamp of the build-system and that allows for flexibility of configuring features as needed." I can maybe reinstall version 2.4.9 and lock it, but I think that I need a solution for he version 2.5.0
I downloaded ppp version 2.4.9 from tumbleweed history and did a force install of this rpm. This solves the problem after reboot.
The "rp-pppoe" plugin got renamed to "pppoe", so you need to adapt your configuration files accordingly. This change happened in version 2.4.9 already, but it contained a compatibility symlink, so that old configurations still worked. This link got removed in 2.5.0. But I just noticed that one of the default configuration files (/etc/ppp/peers/pppoe) also still references rp-pppoe and will correct that.
Oh, it looks like more fixes are needed, but that will have to wait until after my vacation. Please stick with 2.4.9 for the time being.
I found more path definitions in the ppp package that need correction or synchronisation between the different tools that access them. Working on it. But I wonder where you got that ppp@.service file from and what it looks like. The ppp package itself used to contain modem@.service, but that's gone in 2.5.0 and there is a wickedd-pppd@.service in the wicket packages, but I haven't found a ppp@.service file in any ppp related package on openSUSE that I am aware of.
The ppp@.service was available when I defined my connection. In my notes from 2019 if have this example: [Unit] Description=PPP link to %I Documentation=man:pppd(8) After=network-pre.target network.service SuSEfirewall2_init.service Before=network.target multi-user.target shutdown.target SuSEfirewall2.service [Service] Type=forking PIDFile=/run/ppp-%I.pid ExecStart=/usr/sbin/pppd call %I linkname %I updetach nolog ExecReload=/usr/bin/kill -s HUP $MAINPID Restart=always RestartSec=10 SuccessExitStatus=1 RestartPreventExitStatus=3 4 5 [Install] WantedBy=network-online.target multi-user.target This was the original file but the current has some modification because I had a start delay in 2022 and SuSEfirewall2 is gone. [Unit] Description=PPP link to %I Documentation=man:pppd(8) After=network-pre.target network.service #Before=network.target multi-user.target shutdown.target [Service] Type=forking PIDFile=/run/ppp-%I.pid ExecStart=/usr/sbin/pppd call %I linkname %I updetach nolog ExecReload=/usr/bin/kill -s HUP $MAINPID Restart=always RestartSec=10 SuccessExitStatus=1 RestartPreventExitStatus=3 4 5 [Install] WantedBy=network-online.target multi-user.target With ppp version 2.4.9. this work perfectly with this config file in /etc/ppp/peers # load plugin for PPPoE plugin rp-pppoe.so # # Ethernet interface to use eno3 # # set user user USER@provider # # set lower mtu/mru for PPPoE mtu 1492 mru 1492 # # automatically set the PPP connection as your default route (for IPv4 only) defaultroute replacedefaultroute # # obtain DNS entries usepeerdns # # never die idle 0 maxfail 0 persist passive # PCE 20220526.sn # switch off all compressions (this is a must) nopcomp # this is recommended novjccomp noccp # PCE 20220526.en # # renames the PPP connection from an automatically generated name (dzf= ppp0) #ifname pppoe-proximus # #enable IPv6 support # +ipv6 # #use your IPv4 address as the local identifier for IPv6CP #ipv6cp-use-ipaddr noipv6 Regards Philippe
Please try the latest state of the ppp package from the devel project: https://build.opensuse.org/package/show/network/ppp It should work with your setup after making the following two changes to your service file: 1. Change "plugin rp-pppoe.so" to "plugin pppoe.so". 2. Change "PIDFile=/run/ppp-%I.pid" to "PIDFile=/run/ppp/ppp-%I.pid". And optionally: Given that pppd now also supports systemd notifications you could take advantage of this by setting "Type=notify" and replacing "updetach" by "up_sdnotify" in the "ExecStart=" line.
Hello, I installed and tested your ppp version and the connection works perfectly. I changed also the Type and the execstart in the service file without problems. Many thanks for your help. Philippe
Thanks for the feedback, Phelippe! BTW, the /run/ppp base directory might change once more with version 2.5.1 (e.g. to /run/pppd), depending on what upstream settles on. https://github.com/ppp-project/ppp/issues/414