Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
tew42 opened this issue Apr 14, 2023 · 4 comments
Open

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

tew42 opened this issue Apr 14, 2023 · 4 comments

Comments

@tew42
Copy link
Contributor

tew42 commented Apr 14, 2023

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.

@V-ctor
Copy link

V-ctor commented Jul 29, 2023

Is there any progress? I think I have the same issue, client starts working then fails, I restart it, it works for ~1 min then fails again.
May be there are some work arounds? It's remote device and it's impossible to downgrade OS, but may be some old version, paths, recompilation etc?

dmesg full of:

[733800.506253] do_page_fault(): sending SIGSEGV to vpnclient for invalid write access to 0000ffff
[733800.515262] epc = 77e788e8 in libc.so[77df8000+aa000]
[733800.520557] ra = 778cdc84 in libcrypto.so.1.1[777dc000+1ac000]
[733968.144210] do_page_fault(): sending SIGSEGV to vpnclient for invalid write access to 00000000
[733968.153243] epc = 77e3a02c in libc.so[77e08000+aa000]
[733968.158527] ra = 77e39fc8 in libc.so[77e08000+aa000]
[734159.839695] do_page_fault(): sending SIGSEGV to vpnclient for invalid read access from 00000008
[734159.848830] epc = 77d79a5c in libc.so[77d48000+aa000]
[734159.854116] ra = 77d79fa8 in libc.so[77d48000+aa000]
[734219.756609] do_page_fault(): sending SIGSEGV to vpnclient for invalid read access from 00000008
[734219.765720] epc = 77e51a5c in libc.so[77e20000+aa000]
[734219.771059] ra = 77e51fa8 in libc.so[77e20000+aa000]

softethervpn5-client - 5.02.5180-2
Linux OpenWrt 5.10.176 #0 Sun Apr 9 12:27:46 2023 mips GNU/Linux
OpenWrt 22.03.4, r20123-38ccc47687

@tew42
Copy link
Contributor Author

tew42 commented Jul 30, 2023

See #20850 for my "fix" and why it can't easily be implemented in 22.03. If you're sufficiently comfortable messing around the build environment you should be able to custom-compile the updated package for your device like I did. For a proper implementation, lacking further external input, I am currently waiting for 23.05 (where the compile issues are fixed) to stabilize a bit more before I re-visit the pull request.

@V-ctor
Copy link

V-ctor commented Jul 30, 2023

@tew42 Well I can't say that compilation is really complicated for me but in the same time I'm not familiar with OpenWRT environment. I'd prefer to find another way. I found #19963 that old version 4.38 works good as a server. May be the client one works good as well? Do you know?
Btw what is the difference between versions 4.38 and 5?
If 4.38 does not help and the only solution is custom compilation then could you point me more details/instructions? I've just build custom OpenWRT firmware only once from packages not sources. My target platform is MIPS32/BCM63XX.
I will appreciate any details/steps. Thank you

@V-ctor
Copy link

V-ctor commented Aug 2, 2023

I tried softethervpn-client 4.38 and it works good. Now I'm happy!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants