Race condition on pppoe on boot

Bug #1806735 reported by Nigel Hathaway
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
rp-pppoe (Ubuntu)
New
Undecided
Unassigned

Bug Description

From the syslog during boot:

Dec 4 16:38:15 jeeves pppd[1447]: Plugin rp-pppoe.so loaded.
Dec 4 16:38:15 jeeves ifup[469]: Plugin rp-pppoe.so loaded.
Dec 4 16:38:15 jeeves kernel: [ 19.088373] PPP generic driver version 2.4.2
Dec 4 16:38:15 jeeves pppd[1452]: pppd 2.4.7 started by root, uid 0
Dec 4 16:38:15 jeeves ifup[469]: Cannot find device "ppp0"
Dec 4 16:38:15 jeeves kernel: [ 19.164193] NET: Registered protocol family 24
Dec 4 16:38:15 jeeves ifup[469]: Failed to bring up dsl-provider.
Dec 4 16:38:15 jeeves pppd[1452]: PPP session is 914
Dec 4 16:38:15 jeeves pppd[1452]: Connected to a0:f3:e4:34:64:25 via interface vlan4
Dec 4 16:38:15 jeeves pppd[1452]: Using interface ppp0
Dec 4 16:38:15 jeeves pppd[1452]: Connect: ppp0 <--> vlan4
Dec 4 16:38:15 jeeves systemd-udevd[1504]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Dec 4 16:38:15 jeeves systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Dec 4 16:38:15 jeeves pppd[1452]: Terminating on signal 15
Dec 4 16:38:15 jeeves pppd[1452]: Connection terminated.
Dec 4 16:38:15 jeeves pppd[1452]: Sent PADT
Dec 4 16:38:15 jeeves pppd[1452]: Exit.
Dec 4 16:38:15 jeeves systemd[1]: networking.service: Failed with result 'exit-code'.
Dec 4 16:38:15 jeeves systemd[1]: Failed to start Raise network interfaces.

You can see that it gives up on ppp0 being ready before giving it a chance to actually be ready

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: pppoe 3.11-0ubuntu1
Uname: Linux 4.14.85-152 armv7l
ApportVersion: 2.20.9-0ubuntu7.5
Architecture: armhf
Date: Tue Dec 4 17:02:51 2018
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_GB.UTF-8
 SHELL=/bin/bash
SourcePackage: rp-pppoe
UpgradeStatus: No upgrade log present (probably fresh install)
modified.conffile..etc.ppp.peers.dsl-provider: [deleted]

Revision history for this message
Nigel Hathaway (nhathaway) wrote :
Revision history for this message
Nigel Hathaway (nhathaway) wrote :

From /etc/network/interfaces (not using systemd networking)

auto dsl-provider
iface dsl-provider inet ppp
        pre-up /bin/ip link set vlan4 up # line maintained by pppoeconf
        provider dsl-provider

The non-commented-out lines from /etc/ppp/peers/dsl-provider (generated using pppoeconf)

user "xxxxxxxxx"
noipdefault
defaultroute
replacedefaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
connect /bin/true
noauth
persist
mtu 1500
maxfail 0
holdoff 10
+ipv6 ipv6cp-use-ipaddr
plugin rp-pppoe.so vlan4
noaccomp
default-asyncmap
nic-vlan4

Revision history for this message
Nigel Hathaway (nhathaway) wrote :

Note: "pon dsl-provider" works after boot

Revision history for this message
Nigel Hathaway (nhathaway) wrote :

I've found what looks like a possible cause.

In /etc/network/interfaces under iface dsl-provider inet ppp, I also had an up/post-up clause which referenced ppp0

   post-up ..... ppp0 .....

It would seem that for type 'ppp', up and post-up get called before ppp0 is actually up. This is also mentioned here:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=127786;msg=30

I haven't tried the 'updetach' as this suggests. I have just removed the post-up referencing ppp0.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.