Briar crashes with TorNotRunningException when signing out
Briar sometimes crashes at shutdown if we happen to be executing a control port command when the Tor process exits. This is caused by rethrowing the TorNotRunningException as a RuntimeException, which was added to diagnose #1499.
Stacktrace:
java.lang.RuntimeException: net.freehaven.tor.control.TorNotRunningException: Interrupted
at org.briarproject.bramble.plugin.tor.TorPlugin.enableNetwork(TorPlugin.java:558)
at org.briarproject.bramble.plugin.tor.AndroidTorPlugin.enableNetwork(AndroidTorPlugin.java:107)
at org.briarproject.bramble.plugin.tor.TorPlugin.lambda$updateConnectionStatus$4(TorPlugin.java:975)
at org.briarproject.bramble.plugin.tor.TorPlugin.$r8$lambda$b9522N3kxPZfk5DvPwbwRZVqjaA(TorPlugin.java)
at org.briarproject.bramble.plugin.tor.TorPlugin$$ExternalSyntheticLambda3.run(Unknown Source)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.$r8$lambda$wSvuPL6t_HUoaaqCVexrhJX_RSg(PoliteExecutor.java)
at org.briarproject.bramble.PoliteExecutor$$ExternalSyntheticLambda0.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: net.freehaven.tor.control.TorNotRunningException: Interrupted
at net.freehaven.tor.control.TorControlConnection.sendAndWaitForResponse(TorControlConnection.java:201)
at net.freehaven.tor.control.TorControlConnection.setConf(TorControlConnection.java:406)
at net.freehaven.tor.control.TorControlConnection.setConf(TorControlConnection.java:361)
at org.briarproject.bramble.plugin.tor.TorPlugin.enableNetwork(TorPlugin.java:556)
at org.briarproject.bramble.plugin.tor.AndroidTorPlugin.enableNetwork(AndroidTorPlugin.java:107)
at org.briarproject.bramble.plugin.tor.TorPlugin.lambda$updateConnectionStatus$4(TorPlugin.java:975)
at org.briarproject.bramble.plugin.tor.TorPlugin.$r8$lambda$b9522N3kxPZfk5DvPwbwRZVqjaA(TorPlugin.java)
at org.briarproject.bramble.plugin.tor.TorPlugin$$ExternalSyntheticLambda3.run(Unknown Source)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.$r8$lambda$wSvuPL6t_HUoaaqCVexrhJX_RSg(PoliteExecutor.java)
at org.briarproject.bramble.PoliteExecutor$$ExternalSyntheticLambda0.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Last lines of log:
2022-09-27 12:41:26.537 19200-19344/org.briarproject.briar.android.debug I/TorPlugin: Creating v3 hidden service
2022-09-27 12:41:26.537 19200-19343/org.briarproject.briar.android.debug I/PluginManagerImpl: Starting plugin org.briarproject.bramble.tor took 4417 ms
2022-09-27 12:41:26.537 19200-19359/org.briarproject.briar.android.debug I/PluginManagerImpl: org.briarproject.bramble.tor changed from state ENABLING to STARTING_STOPPING
2022-09-27 12:41:26.537 19200-19359/org.briarproject.briar.android.debug I/TorPlugin: Stopping Tor
2022-09-27 12:41:26.537 19200-19351/org.briarproject.briar.android.debug I/TorPlugin: Server socket closed
2022-09-27 12:41:26.537 19200-19343/org.briarproject.briar.android.debug I/AndroidWakeLockImpl: WakefulIoExecutor_6 releasing shared wake lock
2022-09-27 12:41:26.537 19200-19343/org.briarproject.briar.android.debug I/RenewableWakeLock: Wake lock org.briarproject.briar.android.debug has 2 holders
2022-09-27 12:41:26.537 19200-19368/org.briarproject.briar.android.debug I/AndroidWakeLockImpl: TorPlugin_5 acquiring shared wake lock
2022-09-27 12:41:26.537 19200-19368/org.briarproject.briar.android.debug I/RenewableWakeLock: Wake lock org.briarproject.briar.android.debug has 3 holders
2022-09-27 12:41:26.537 19200-19353/org.briarproject.briar.android.debug I/TorPlugin: NOTICE DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
2022-09-27 12:41:26.547 19200-19359/org.briarproject.briar.android.debug I/AndroidWakeLockImpl: TorPlugin_5 releasing shared wake lock
2022-09-27 12:41:26.547 19200-19359/org.briarproject.briar.android.debug I/RenewableWakeLock: Wake lock org.briarproject.briar.android.debug has 2 holders
2022-09-27 12:41:26.547 19200-19359/org.briarproject.briar.android.debug I/PluginManagerImpl: Stopping plugin org.briarproject.bramble.tor took 9 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service PluginManagerImpl took 885 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service MailboxClientManager took 1 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service RendezvousPollerImpl took 0 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service AndroidNotificationManagerImpl took 4 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service ScreenFilterMonitorImpl took 0 ms
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/NetworkUsageMetricsImpl: Duration 4 seconds
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/NetworkUsageMetricsImpl: Received 1862 bytes
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/NetworkUsageMetricsImpl: Sent 1961 bytes
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service NetworkUsageMetricsImpl took 4 ms
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service DozeWatchdogImpl took 0 ms
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service LockManagerImpl took 0 ms
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping executor TimeLoggingExecutor
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping executor ScheduledThreadPoolExecutor
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping executor ThreadPoolExecutor
2022-09-27 12:41:26.567 19200-19368/org.briarproject.briar.android.debug W/dalvikvm: threadid=29: thread exiting with uncaught exception (group=0x41945da0)
2022-09-27 12:41:26.567 19200-19344/org.briarproject.briar.android.debug W/TorPlugin: java.net.SocketException: Socket closed
java.net.SocketException: Socket closed
at libcore.io.Posix.recvfromBytes(Native Method)
at libcore.io.Posix.recvfrom(Posix.java:141)
at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164)
at libcore.io.IoBridge.recvfrom(IoBridge.java:506)
at java.net.PlainSocketImpl.read(PlainSocketImpl.java:489)
at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241)
at java.io.InputStreamReader.read(InputStreamReader.java:233)
at java.io.BufferedReader.fillBuf(BufferedReader.java:145)
at java.io.BufferedReader.readLine(BufferedReader.java:397)
at net.freehaven.tor.control.TorControlConnection.readReply(TorControlConnection.java:143)
at net.freehaven.tor.control.TorControlConnection.react(TorControlConnection.java:327)
at net.freehaven.tor.control.TorControlConnection$ControlParseThread.run(TorControlConnection.java:309)