openwrt / openwrt/packages

softethervpn5: vpnclient page faults after 21.x -> 22.x upgrade

Open
#20,807 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

release/21.02 release/22.03 stale
Dominant language
Makefile
Stars
4.6k
Forks
4k
Avg merge
3d 12h
Merged PRs (30d)
134

Description

Maintainer: @Andy2244
Environment: ath79 - TP-Link Archer A7 - OpenWRT 22.03.3

Description:
Running a SoftetherVPN client on my router worked well for me on 21.x (most recently 21.02.4). I upgraded to 22.03.3 today, and encountered a loop of VPN start -> access violation -> reconnect -> access violation, as documented below.

I tried both with importing the old config, and with setting up a new configuration from scratch; same behavior.

Happy to provide additional info, just not quite sure where/how... Thanks!

Log excerpt:

15:03:05 2023 kern.info kernel: [  xxx] do_page_fault(): sending SIGSEGV to vpnclient for invalid write access to 00000000
15:03:05 2023 kern.info kernel: [  xxx] epc = 77dbf96c in libc.so[77d8e000+a9000]
15:03:05 2023 kern.info kernel: [  xxx] ra  = 77dbf908 in libc.so[77d8e000+a9000]
15:03:05 2023 daemon.notice netifd: Network device 'vpn_xxx' link is down
15:03:05 2023 daemon.notice netifd: Interface 'VPN' has link connectivity loss
15:03:05 2023 daemon.notice netifd: VPN (4064): udhcpc: SIOCGIFINDEX: No such device
15:03:05 2023 daemon.notice netifd: VPN (4064): udhcpc: received SIGTERM
15:03:05 2023 daemon.notice netifd: VPN (4064): udhcpc: unicasting a release of 192.168.xxx.xxx to 192.168.xxx.xxx
15:03:05 2023 daemon.notice netifd: VPN (4064): udhcpc: sending release
15:03:05 2023 daemon.notice netifd: VPN (4064): udhcpc: can't bind to interface vpn_xxx: No such device
15:03:05 2023 daemon.notice netifd: VPN (4064): udhcpc: bindtodevice: No such device
15:03:05 2023 daemon.notice netifd: VPN (4064): udhcpc: entering released state
15:03:05 2023 daemon.notice netifd: VPN (4064): Command failed: ubus call network.interface notify_proto { "action": 0, "link-up": false, "keep": false, "interface": "VPN" } (Permission denied)
15:03:05 2023 daemon.notice netifd: Interface 'VPN' is now down
15:03:05 2023 daemon.notice netifd: Interface 'VPN' is disabled
15:03:11 2023 daemon.notice netifd: Interface 'VPN' is enabled
15:03:11 2023 daemon.notice netifd: Network device 'vpn_xxx' link is up
15:03:11 2023 daemon.notice netifd: Interface 'VPN' has link connectivity
15:03:11 2023 daemon.notice netifd: Interface 'VPN' is setting up now
15:03:11 2023 daemon.notice netifd: VPN (4822): udhcpc: started, v1.35.0
15:03:11 2023 daemon.notice netifd: VPN (4822): udhcpc: broadcasting discover
15:03:14 2023 daemon.notice netifd: VPN (4822): udhcpc: broadcasting discover
15:03:14 2023 daemon.notice netifd: VPN (4822): udhcpc: broadcasting select for 192.168.xxx.xxx, server 192.168.xxx.xxx
15:03:15 2023 daemon.notice netifd: VPN (4822): udhcpc: lease of 192.168.xxx.xxx obtained from 192.168.xxx.xxx, lease time 43200
15:03:15 2023 daemon.notice netifd: Interface 'VPN' is now up
15:03:17 2023 user.notice firewall: Reloading firewall due to ifup of VPN (vpn_xxx)
15:04:09 2023 kern.info kernel: [  xxx] do_page_fault(): sending SIGSEGV to vpnclient for invalid write access to 00000000
15:04:09 2023 kern.info kernel: [  xxx] epc = 77e4996c in libc.so[77e18000+a9000]
15:04:09 2023 kern.info kernel: [  xxx] ra  = 77e49908 in libc.so[77e18000+a9000]

etc.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the vpnclient crash on ath79 with OpenWrt 22.03.3 and compare it with 21.02.4, using the kernel page-fault and netifd log excerpts in this issue. Trace the vpnclient failure far enough to identify the regression; done means the client no longer page-faults or enters the reconnect loop after the upgrade.

Written by the indexing model from the issue text.

Assessment

Domain
networking, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.