Jigsaw-Code / outline-apps

Outline Client and Manager, developed by Jigsaw. Outline Manager makes it easy to create your own VPN server. Outline Client lets you share access to your VPN with anyone in your network, giving them access to the free and open internet.
https://getoutline.org/
Apache License 2.0
8.4k stars 1.36k forks source link

Outline-client on Ubuntu 23.10 is Breaking the Internet Connection #1778

Open mvd1990vic opened 10 months ago

mvd1990vic commented 10 months ago

Describe the bug When starting Outline-Client.AppImage on Ubuntu 23.10, the internet connection stops working before connecting to the VPN. After starting Outline-Client, the console output is “failed to parse routing service response” and “could not reconnect.” The bug was reproduced on two different computers. In the first case, a clean system was installed. In the second case, there was an update from 23.04 to 23.10, and there were no problems on 23.04

To reproduce

  1. Install Ubuntu 23.10 on a virtual machine or real device.
  2. Download Outline-Client.AppImage from the official website.
  3. Launch Outline-Client in the terminal using the command “./Outline-Client.AppImage”.
  4. Pay attention to the console output and the state of the internet connection.

Client system (please complete the following information):

Additional context Console output:

>./Outline-Client.AppImage

Outline is starting
loading web app from file:///tmp/.mount_OutlinYhehAf/resources/app.asar/www/index_electron.html?appName=Outline
was connected at shutdown, reconnecting to f0021a73-7111-476a-bac9-66c6378f8a79
UDP support: false
starting routing daemon
failed to parse routing service response: {"statusCode":0,"action":"configureRouting"}{"statusCode":0,"action":"statusChanged",>"connectionStatus":2}
could not reconnect: Error (empty routing service response)
Checking for update
[EXIT - tun2socks]: Killed by signal SIGTERM
tun2socks terminated due to Error: Process terminated by signal: SIGTERM
disconnected from f0021a73-7111-476a-bac9-66c6378f8a79
[4536:1107/214929.765610:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[4536:1107/214932.683797:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
    [4536:1107/214944.855103:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!
connecting to f0021a73-7111-476a-bac9-66c6378f8a79...
could not connect: o ()
Error occurred in handler for 'outline-ipc-start-proxying': Error: unknown NativeError o
    at t.toErrorCode (/tmp/.mount_OutlinYhehAf/resources/app.asar/build/electron/electron/index.js:2:452990)
    at /tmp/.mount_OutlinYhehAf/resources/app.asar/build/electron/electron/index.js:2:439504
    at async node:electron/js2c/browser_init:189:563
maddyhof commented 10 months ago

Thanks for reaching out! Looks like Ubuntu released some changes that are breaking Outline. We'll get this into our queue to address in a future release.

kuzminRM commented 7 months ago

Encountering the same problem on Ubuntu 22.04.1 LTS (elementary OS 7 Horus, Linux 5.15.0-58-generic).

I attempted to download an earlier version from https://s3.amazonaws.com/outline-releases/client/linux/1.9.0/2/Outline-Client.AppImage.

Initially, it functioned properly. However, it subsequently initiated an automatic update to the latest version and ceased functioning. Is there a method to disable the automatic updates?

jyyi1 commented 7 months ago

Hi @kuzminRM , issue https://github.com/Jigsaw-Code/outline-apps/issues/1607 is tracking the support of Elementary OS for our Outline GUI app.

Alternatively, we now have the OutlineCLI that supports more Linux distros than Outline Client, which might resolve your issue as well.

We will also be appreciated if you could share the detailed logs of Outline Client. You may gather the logs using the following methods:

# collect Outline Client logs
OUTLINE_DEBUG=true ./Outline.AppImage

# collect background service logs
systemctl status outline_proxy_controller
kuzminRM commented 7 months ago

@jyyi1 Here is output of systemctl

● outline_proxy_controller.service - Outline Proxy Routing Controller
     Loaded: loaded (/etc/systemd/system/outline_proxy_controller.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-02-21 13:23:38 MSK; 1 week 3 days ago
   Main PID: 191666 (OutlineProxyCon)
      Tasks: 1 (limit: 34662)
     Memory: 2.9M
        CPU: 186ms
     CGroup: /system.slice/outline_proxy_controller.service
             └─191666 /usr/local/sbin/OutlineProxyController --socket-filename=/var/run/outline_controller --owning-user-id=1000

Feb 21 14:07:32 SER-35a42b53 OutlineProxyController[191666]: 1708513652.813002: [WARN] failed to monitor network changes due to:Operation canceled [system:125 at /usr/local/include/boost/asio/detail/reactive_socket_recv_op.hpp:129 in function 'do_complete'], will ignore further network changes
Feb 21 14:07:32 SER-35a42b53 OutlineProxyController[191666]: 1708513652.813024: [INFO] client session terminated
Mar 02 22:21:05 SER-35a42b53 OutlineProxyController[191666]: 1709407265.184459: [INFO] client session started
Mar 02 22:21:05 SER-35a42b53 OutlineProxyController[191666]: 1709407265.186950: [INFO] network monitor initialized
Mar 02 22:21:05 SER-35a42b53 OutlineProxyController[191666]: 1709407265.187714: [DEBUG] handling client request "{"action":"configureRouting","parameters":{"proxyIp":"94.72.27.241","isAutoConnect":false}}"...
Mar 02 22:21:05 SER-35a42b53 OutlineProxyController[191666]: 1709407265.187719: [DEBUG] handling action "configureRouting"
Mar 02 22:21:05 SER-35a42b53 OutlineProxyController[191666]: 1709407265.187723: [INFO] attempting to route through outline server 94.72.27.241
Mar 02 22:21:05 SER-35a42b53 OutlineProxyController[191666]: 1709407265.203192: [INFO] successfully routing through the outline server
Mar 02 22:21:05 SER-35a42b53 OutlineProxyController[191666]: 1709407265.203215: [INFO] Configure Routing to 94.72.27.241 is done.
Mar 02 22:21:05 SER-35a42b53 OutlineProxyController[191666]: 1709407265.203976: [DEBUG] Wrote back {"statusCode":0,"action":"configureRouting"} to unix socket
Mar 02 22:23:01 SER-35a42b53 OutlineProxyController[191666]: 1709407381.300969: [DEBUG] handling client request "{"action":"resetRouting","parameters":{}}"...
Mar 02 22:23:01 SER-35a42b53 OutlineProxyController[191666]: 1709407381.300985: [DEBUG] handling action "resetRouting"
Mar 02 22:23:01 SER-35a42b53 OutlineProxyController[191666]: 1709407381.300989: [INFO] attempting to dismantle routing through outline server
Mar 02 22:23:01 SER-35a42b53 OutlineProxyController[191666]: 1709407381.307826: [INFO] now routing through the network default gateway
Mar 02 22:23:01 SER-35a42b53 OutlineProxyController[191666]: 1709407381.307847: [INFO] Reset Routing done
Mar 02 22:23:01 SER-35a42b53 OutlineProxyController[191666]: 1709407381.307878: [DEBUG] Wrote back {"statusCode":0,"action":"resetRouting"} to unix socket
Mar 02 22:23:01 SER-35a42b53 OutlineProxyController[191666]: 1709407381.308662: [INFO] network monitor destroyed
Mar 02 22:23:01 SER-35a42b53 OutlineProxyController[191666]: 1709407381.308683: [WARN] failed to monitor network changes due to:Operation canceled [system:125 at /usr/local/include/boost/asio/detail/reactive_socket_recv_op.hpp:129 in function 'do_complete'], will ignore further network changes
Mar 02 22:23:01 SER-35a42b53 OutlineProxyController[191666]: 1709407381.308705: [INFO] client session terminated

Here is log of app

roman@pc:~/Downloads$ OUTLINE_DEBUG=true ./Outline-Client.AppImage 
Sentry Logger [log]: Starting Electron crashReporter
Sentry Logger [log]: Integration installed: SentryMinidump
Sentry Logger [log]: Integration installed: ElectronBreadcrumbs
Sentry Logger [log]: Integration installed: Net
Sentry Logger [log]: Integration installed: MainContext
Sentry Logger [log]: Integration installed: ChildProcess
Sentry Logger [log]: Integration installed: OnUncaughtException
Sentry Logger [log]: Integration installed: PreloadInjection
Sentry Logger [log]: Integration installed: AdditionalContext
Sentry Logger [log]: Integration installed: Screenshots
Sentry Logger [log]: Integration installed: InboundFilters
Sentry Logger [log]: Integration installed: FunctionToString
Sentry Logger [log]: Integration installed: Console
Sentry Logger [log]: Integration installed: Http
Sentry Logger [log]: Integration installed: OnUnhandledRejection
Sentry Logger [log]: Integration installed: ContextLines
Sentry Logger [log]: Integration installed: LocalVariables
Sentry Logger [log]: Integration installed: Modules
Sentry Logger [log]: Integration installed: RequestData
Sentry Logger [log]: Integration installed: LinkedErrors
Sentry Logger [log]: Integration installed: MainProcessSession
Sentry Logger [log]: The preload script could not be injected automatically. This is most likely caused by bundling of the main process
Outline is starting
loading web app from file:///tmp/.mount_OutlinyXuq0F/resources/app.asar/www/index_electron.html?debug=true&appName=Outline
Sentry Logger [log]: Found 1 minidumps
Could not load active tunnel:  [Error: ENOENT: no such file or directory, open '/home/roman/.config/Outline/connection_store'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/home/roman/.config/Outline/connection_store'
}
mesa: for the --simplifycfg-sink-common option: may only occur zero or one times!
mesa: for the --global-isel-abort option: may only occur zero or one times!
mesa: for the --amdgpu-atomic-optimizations option: may only occur zero or one times!
Sentry Logger [log]: Found previous crashed session
Sentry Logger [log]: Successfully sent
Sentry Logger [log]: Successfully sent
Sentry Logger [log]: Successfully sent
connecting to 24d11ba9-742c-4ca0-94e0-adb363f29903...
using tun2socks to check connectivity
[EXIT - tun2socks]: Exited with code 4
connectivity check error: Error: Process terminated by non-zero exit code: 4
UDP support: false
starting routing daemon
[STDERR - tun2socks]: 2024/03/02 22:21:05 Registering DNS fallback UDP handler
2024/03/02 22:21:05 tun2socks running...

tun2socks started
2024/03/02 22:21:05 Registering DNS fallback UDP handler
2024/03/02 22:21:05 tun2socks running...
connected to 24d11ba9-742c-4ca0-94e0-adb363f29903
[STDERR - tun2socks]: 2024/03/02 22:23:01 Received signal: terminated

2024/03/02 22:23:01 Received signal: terminated
[EXIT - tun2socks]: Exited with code 0
tun2socks exited with no errors
disconnected from 24d11ba9-742c-4ca0-94e0-adb363f29903

After that I've tried to run mkdir /home/roman/.config/Outline/connection_store and chmod 777 /home/roman/.config/Outline/connection_store. Restarted app. Received this: from systemctl

Mar 02 22:31:07 SER-35a42b53 OutlineProxyController[191666]: 1709407867.179624: [INFO] client session started
Mar 02 22:31:07 SER-35a42b53 OutlineProxyController[191666]: 1709407867.179676: [INFO] network monitor initialized
Mar 02 22:31:07 SER-35a42b53 OutlineProxyController[191666]: 1709407867.179987: [DEBUG] handling client request "{"action":"configureRouting","parameters":{"proxyIp":"94.72.27.241","isAutoConnect":false}}"...
Mar 02 22:31:07 SER-35a42b53 OutlineProxyController[191666]: 1709407867.180000: [DEBUG] handling action "configureRouting"
Mar 02 22:31:07 SER-35a42b53 OutlineProxyController[191666]: 1709407867.180005: [INFO] attempting to route through outline server 94.72.27.241
Mar 02 22:31:07 SER-35a42b53 OutlineProxyController[191666]: 1709407867.190959: [INFO] successfully routing through the outline server
Mar 02 22:31:07 SER-35a42b53 OutlineProxyController[191666]: 1709407867.190977: [INFO] Configure Routing to 94.72.27.241 is done.
Mar 02 22:31:07 SER-35a42b53 OutlineProxyController[191666]: 1709407867.191005: [DEBUG] Wrote back {"statusCode":0,"action":"configureRouting"} to unix socket
Mar 02 22:35:43 SER-35a42b53 OutlineProxyController[191666]: 1709408143.566287: [DEBUG] handling client request "{"action":"resetRouting","parameters":{}}"...
Mar 02 22:35:43 SER-35a42b53 OutlineProxyController[191666]: 1709408143.566304: [DEBUG] handling action "resetRouting"
Mar 02 22:35:43 SER-35a42b53 OutlineProxyController[191666]: 1709408143.566308: [INFO] attempting to dismantle routing through outline server
Mar 02 22:35:43 SER-35a42b53 OutlineProxyController[191666]: 1709408143.572636: [INFO] now routing through the network default gateway
Mar 02 22:35:43 SER-35a42b53 OutlineProxyController[191666]: 1709408143.572659: [INFO] Reset Routing done
Mar 02 22:35:43 SER-35a42b53 OutlineProxyController[191666]: 1709408143.572694: [DEBUG] Wrote back {"statusCode":0,"action":"resetRouting"} to unix socket
Mar 02 22:35:43 SER-35a42b53 OutlineProxyController[191666]: 1709408143.573505: [INFO] network monitor destroyed
Mar 02 22:35:43 SER-35a42b53 OutlineProxyController[191666]: 1709408143.573537: [WARN] failed to monitor network changes due to:Operation canceled [system:125 at /usr/local/include/boost/asio/detail/reactive_socket_recv_op.hpp:129 in function 'do_complete'], will ignore further network changes
Mar 02 22:35:43 SER-35a42b53 OutlineProxyController[191666]: 1709408143.573561: [INFO] client session terminated

from app log

roman@pc:~/Downloads$ OUTLINE_DEBUG=true ./Outline-Client.AppImage 
Sentry Logger [log]: Starting Electron crashReporter
Sentry Logger [log]: Integration installed: SentryMinidump
Sentry Logger [log]: Integration installed: ElectronBreadcrumbs
Sentry Logger [log]: Integration installed: Net
Sentry Logger [log]: Integration installed: MainContext
Sentry Logger [log]: Integration installed: ChildProcess
Sentry Logger [log]: Integration installed: OnUncaughtException
Sentry Logger [log]: Integration installed: PreloadInjection
Sentry Logger [log]: Integration installed: AdditionalContext
Sentry Logger [log]: Integration installed: Screenshots
Sentry Logger [log]: Integration installed: InboundFilters
Sentry Logger [log]: Integration installed: FunctionToString
Sentry Logger [log]: Integration installed: Console
Sentry Logger [log]: Integration installed: Http
Sentry Logger [log]: Integration installed: OnUnhandledRejection
Sentry Logger [log]: Integration installed: ContextLines
Sentry Logger [log]: Integration installed: LocalVariables
Sentry Logger [log]: Integration installed: Modules
Sentry Logger [log]: Integration installed: RequestData
Sentry Logger [log]: Integration installed: LinkedErrors
Sentry Logger [log]: Integration installed: MainProcessSession
Sentry Logger [log]: The preload script could not be injected automatically. This is most likely caused by bundling of the main process
Outline is starting
mesa: for the --simplifycfg-sink-common option: may only occur zero or one times!
mesa: for the --global-isel-abort option: may only occur zero or one times!
mesa: for the --amdgpu-atomic-optimizations option: may only occur zero or one times!
loading web app from file:///tmp/.mount_OutlinOZQQhL/resources/app.asar/www/index_electron.html?debug=true&appName=Outline
Sentry Logger [log]: Found 0 minidumps
Sentry Logger [log]: Found previous abnormal session
Could not load active tunnel:  [Error: EISDIR: illegal operation on a directory, read] {
  errno: -21,
  code: 'EISDIR',
  syscall: 'read'
}
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
Error: EISDIR: illegal operation on a directory, unlink '/home/roman/.config/Outline/connection_store'
(node:1484253) UnhandledPromiseRejectionWarning: Error: EISDIR: illegal operation on a directory, unlink '/home/roman/.config/Outline/connection_store'
(Use `outline-client --trace-warnings ...` to show where the warning was created)
(node:1484253) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
Sentry Logger [log]: Successfully sent
Sentry Logger [log]: Successfully sent
Sentry Logger [log]: Successfully sent
connecting to 24d11ba9-742c-4ca0-94e0-adb363f29903...
using tun2socks to check connectivity
[EXIT - tun2socks]: Exited with code 4
connectivity check error: Error: Process terminated by non-zero exit code: 4
UDP support: false
starting routing daemon
[STDERR - tun2socks]: 2024/03/02 22:31:07 Registering DNS fallback UDP handler
2024/03/02 22:31:07 tun2socks running...

tun2socks started
2024/03/02 22:31:07 Registering DNS fallback UDP handler
2024/03/02 22:31:07 tun2socks running...
connected to 24d11ba9-742c-4ca0-94e0-adb363f29903
Failed to set up auto-launch: EISDIR: illegal operation on a directory, open '/home/roman/.config/Outline/connection_store'
Failed to store tunnel.
[STDERR - tun2socks]: 2024/03/02 22:35:43 Received signal: terminated

2024/03/02 22:35:43 Received signal: terminated
Failed to tear down auto-launch: EISDIR: illegal operation on a directory, unlink '/home/roman/.config/Outline/connection_store'
[EXIT - tun2socks]: Exited with code 0
tun2socks exited with no errors
disconnected from 24d11ba9-742c-4ca0-94e0-adb363f29903
^C^C
jyyi1 commented 6 months ago

Thanks @kuzminRM , you can ignore the initial error about the ENOENT of '/home/roman/.config/Outline/connection_store', so just feel free to delete the file. There is nothing weird from the logs, is your system's network config more complicated than a single network card with a single default routing table? For example, 2+ network interface?

But still, the new Outline Client does not officially support Elementary OS, please try the OutlineCLI instead.

caffeinatedgaze commented 5 months ago

OutlineCLI worked well for me on Arch. Thanks @jyyi1

autn commented 2 months ago

Encountering the same problem on Ubuntu 24.04, the application stopped working and cannot be reconnected.

LewWadoo commented 1 day ago

There is nothing weird from the logs

Sentry Logger [log]: Found previous abnormal session

Doesn't this entry require attention? How can we clear the previous session?

LewWadoo commented 1 day ago

Sentry Logger [log]: Found previous abnormal session

Removing the directory ~/.config/Outline resolved that issue for me.