Bug 1218370 - failing to start pppoe after snapshot 20231221
Summary: failing to start pppoe after snapshot 20231221
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Network (show other bugs)
Version: Current
Hardware: x86-64 openSUSE Tumbleweed
: P5 - None : Major (vote)
Target Milestone: ---
Assignee: Reinhard Max
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-23 06:21 UTC by Philippe Condé
Modified: 2024-01-12 07:26 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
ouput journalctl pppoe timeout and restart (11.40 KB, text/plain)
2023-12-23 06:21 UTC, Philippe Condé
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Philippe Condé 2023-12-23 06:21:08 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?
Comment 1 Philippe Condé 2023-12-23 07:25:26 UTC
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
Comment 2 Philippe Condé 2023-12-23 09:20:59 UTC
I downloaded ppp version 2.4.9 from tumbleweed history and did a force install of this rpm. This solves the problem after reboot.
Comment 3 Reinhard Max 2023-12-28 10:36:56 UTC
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.
Comment 4 Reinhard Max 2023-12-28 10:46:05 UTC
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.
Comment 5 Reinhard Max 2024-01-09 15:41:35 UTC
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.
Comment 6 Philippe Condé 2024-01-09 21:54:28 UTC
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
Comment 7 Reinhard Max 2024-01-11 14:49:14 UTC
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.
Comment 8 Philippe Condé 2024-01-11 20:57:06 UTC
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
Comment 9 Reinhard Max 2024-01-12 07:26:04 UTC
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