#1070753 Can't see PPPoE concentrators via d-i but pppoe-discovery can

Package:
ppp-udeb
Source:
ppp-udeb
Submitter:
Steven Maddox
Date:
2025-02-14 14:39:01 UTC
Severity:
normal
Tags:
#1070753#5
Date:
2024-05-08 13:39:45 UTC
From:
To:
To recreate this issue... boot the latest Debian 12 netinst ISO and at
the boot menu hit escape then at the boot: prompt type in...

installgui modules=ppp-udeb

Then d-i will start and after choosing language etc... it'll try to find
any see PPPoE concentrators and say they're not detected.

After you can go to 'Execute a shell' and you'll find that they're
actually there and it shouldn't be a problem...

~ # ip link set ens192 up
~ # pppoe-discover -I ens192
        Service-Name: datasuite12.13
Access-Concentrator: datasuite12.13
AC-Ethernet-Address: 00:03:97:40:00:3e
--------------------------------------------------
        Service-Name: datasuite12.13
Access-Concentrator: datasuite12.13
AC-Ethernet-Address: 00:03:97:3d:80:2b
--------------------------------------------------

I even made a stupid animated GIF to show these steps in action...

https://5r.tf/temp-bugging-me-files/debian-pppoe-broke.gif

It seems someone else 14 years ago wrote about this in bug #587850 but
nothing was resolved and he was told to talk to his ISP.

In this case I work for the ISP, so I'm pretty confident in the fact
that the PPPoE concentrator is there.

I can do more tests if you've got idea where to go from here.

#1070753#16
Date:
2024-05-08 16:11:32 UTC
From:
To:
With the help of pham of #debian-boot on OFTC...

Problems found so far with /var/lib/dpkg/info/ppp-udeb.postinst

- Some lines call 'ps' with a -A argument which this build of busybox
doesn't understand (so it doesn't record the process number correctly to
try and kill it later)

- The '-A' argument passed to pppoe-discovery doesn't seem to exist and
so it doesn't run properly

- With *some* (but not all) PPPoE concentrators... if pppoe-discovery
finds the concentrator... it'll output the details and just sit there
without exiting indefinably... so grep never has a chance to process the
contents of stdin and find the string 'AC'.  This wouldn't be an issue
if the busybox version of grep has --line-buffered but it doesn't :)

- Ultimately if -Q is used (instead of grepping for 'AC') then you'll
get errcode 1 if one isn't found and errcode 0 if one is found... by
default this'll take 15 seconds to try (unless you set -t and/or -a).
But since the script runs this twice (once without -U and once with -U)
then this means a wait of up to 30 seconds, which d-i has to be patient
for and allow to happen.

- Ultimately if we're happy that pppoe-discovery will time itself out...
then does d-i need to kill anything and thus knowing the process ID
isn't needed?

#1070753#21
Date:
2024-05-09 11:12:34 UTC
From:
To:
It would seem the -A argument (for pppoe-discovery not ps) has been
removed as a result of this bug report... #1042881

However this doesn't change that pppoe-discovery seems to indefinitely
pause (preventing grep from realising there is an AC) in some
circumstances.  Ultimately I've logged an issue about this upstream
here... https://github.com/ppp-project/ppp/issues/490

But none of this would be an issue if this was rewritten to use -Q instead.

#1070753#26
Date:
2024-05-25 09:04:32 UTC
From:
To:
Proposed patch:
<https://salsa.debian.org/debian/ppp/-/merge_requests/13>

#1070753#33
Date:
2024-06-10 07:37:41 UTC
From:
To:
I can confirm this patch works
#1070753#38
Date:
2025-02-14 14:34:34 UTC
From:
To:
Control: tags -1 pending

The patch was merged, thanks Chris !
I hope it will be included in Trixie.