briar issueshttps://code.briarproject.org/briar/briar/-/issues2022-02-06T11:02:31Zhttps://code.briarproject.org/briar/briar/-/issues/2050Delete messages even on receiver user2022-02-06T11:02:31ZHostFatDelete messages even on receiver userCurrently, if the user delete a message in a chat with another user, the message is deleted only on the local phone.
It will be good to have the possibility to even delete the message (by requesting if the user wants to delete even on t...Currently, if the user delete a message in a chat with another user, the message is deleted only on the local phone.
It will be good to have the possibility to even delete the message (by requesting if the user wants to delete even on the remote phone), or all the messages, even on the remote phone.
I know that now there is the "Disappearing messages" feature, but it isn't the same (and the 7 days only option isn't enough)https://code.briarproject.org/briar/briar/-/issues/1147Support Bluetooth discovery for adding contacts2022-01-26T13:50:35ZakwizgranSupport Bluetooth discovery for adding contactsThe local Bluetooth address is no longer available on the Nexus 5X running Android 8.1. `BluetoothAdapter#getAddress()` returns the fake address 02:00:00:00:00:00, and `Settings.Secure.getString(ctx, "bluetooth_address")` returns null.
...The local Bluetooth address is no longer available on the Nexus 5X running Android 8.1. `BluetoothAdapter#getAddress()` returns the fake address 02:00:00:00:00:00, and `Settings.Secure.getString(ctx, "bluetooth_address")` returns null.
This means we can no longer include our Bluetooth address in the QR code when adding a contact. Instead we'll need to make the device temporarily discoverable, and indicate in the QR code that the contact should use discovery to find us. The contact will need the ACCESS_COARSE_LOCATION permission for discovery.
The contact will need to store our Bluetooth address for future connection attempts. We don't currently have a way for plugins to store local per-contact information, but we can add one.https://code.briarproject.org/briar/briar/-/issues/39Wi-Fi Direct plugin2022-01-21T14:28:52ZakwizgranWi-Fi Direct pluginSome devices running Android 4.0 and later support Wi-Fi Direct, which has a legacy mode that allows older devices to connect to WFD devices. The legacy mode creates an access point on the WFD device, with a random SSID and password that...Some devices running Android 4.0 and later support Wi-Fi Direct, which has a legacy mode that allows older devices to connect to WFD devices. The legacy mode creates an access point on the WFD device, with a random SSID and password that must be communicated to the other device out of band. The other device connects as a client in the usual way. The access point doesn't share the WFD device's internet connection, if any.
This could be useful when devices are in wifi range of each other but there's no wifi network; the SSID and password will have to be synced across some other transport (e.g. Bluetooth). When adding contacts via QR codes, the SSID and password can be included in the QR code.
Get the `WifiP2pManager` system service, call `initialize()`, then call `createGroup()` to create an access point. Call `requestGroupInfo()` to get a `WifiP2pGroup`, then call `getNetworkName()` and `getPassphrase()` and to get the transport properties.
After connecting to the access point, how does the client know the access point's IP address? `WifiP2pGroup.getOwner()` returns a `WifiP2pDevice`, which contains a MAC address but not an IP address.
It seems from this example code that `WifiP2pInfo.groupOwnerAddress.toString()` can be passed as the hostname to `Socket.connect()`:
[http://www.cse.unsw.edu.au/~ezarepour/COMP9336/WiFiDirectActivity.java](https://web.archive.org/web/20140310040212/http://www.cse.unsw.edu.au/~ezarepour/COMP9336/WiFiDirectActivity.java)
Presumably we can put that string in the transport properties with the SSID and password.
We may be able to advertise the access point's current SSID and password (in encrypted and obfuscated form) via WFD service discovery:
* Alice creates a legacy mode AP via `WifiP2pManager.createGroup()`
* The AP has a random SSID and password, which Bob doesn't know
* Alice packs the SSID and password into a `WifiP2pServiceInfo`
* Alice advertises the service via `WifiP2pManager.addLocalService()`
* Bob discovers the service via `WifiP2pManager.addServiceRequest()`
* Bob unpacks the SSID and password and connects to the AP as a legacy
client
However, the Thali developers have run into performance and stability problems with WFD service discovery, so this may not be a viable approach.
https://code.briarproject.org/briar/briar/-/issues/1588New setting: Time window / Interval in which Briar goes online2022-01-04T16:11:37ZmicressorNew setting: Time window / Interval in which Briar goes onlineI want a way to set Briar so that the app connects at an interval of X for Y minutes to synchronize messages.
As a second possibility, a period where Briar connects to synchronize messages. For example between X and Y o'clock every day....I want a way to set Briar so that the app connects at an interval of X for Y minutes to synchronize messages.
As a second possibility, a period where Briar connects to synchronize messages. For example between X and Y o'clock every day.
The idea behind it is to make online time more effective due to the high battery consumption. Two users could agree to configure their Briar Apps between X and Y to go online and synchronize messages.https://code.briarproject.org/briar/briar/-/issues/45Reduce mobile data consumption2021-12-13T14:17:30ZakwizgranReduce mobile data consumptionBriar uses a lot of bandwidth considering the small amount of data it transfers. The most likely culprit is the Tor plugin, which maintains circuits to several introduction points and regularly tries to build circuits to contacts' introd...Briar uses a lot of bandwidth considering the small amount of data it transfers. The most likely culprit is the Tor plugin, which maintains circuits to several introduction points and regularly tries to build circuits to contacts' introduction points. Can we reduce the amount of bandwidth it uses?
~~Ricochet has a nice solution to this: each time we (re)connect to Tor, try to connect to our peers, and while we remain connected, expect them to connect to us rather than vice versa.~~
~~https://github.com/ricochet-im/ricochet/issues/68~~
~~There may be a race condition, however, if our hidden service doesn't become reachable until after we've polled our contacts' services. Can we poll our own hidden service to check its reachability?~~
~~Another possible culprit is the LAN plugin, which will bind to an interface with a non-local address if no local address is available. This is meant to enable the plugin to work on internal networks that use non-local addresses, such as UCL -- but it may also lead to observable connections across the WAN, so perhaps we should change it.~~https://code.briarproject.org/briar/briar/-/issues/1511Settings to increase polling time2021-12-13T14:13:45ZDmitry RubtsovSettings to increase polling timeSince Briar takes a lot of battery power (up to 20% of my Galaxy Note 9), I want to customize update frequency for incoming messages. I think, that it is easy and usefulSince Briar takes a lot of battery power (up to 20% of my Galaxy Note 9), I want to customize update frequency for incoming messages. I think, that it is easy and usefulhttps://code.briarproject.org/briar/briar/-/issues/1388Discussion: Only poll contacts if necessary2021-12-13T14:13:45ZBen WieDiscussion: Only poll contacts if necessaryFor some transports we could reduce the polling effort if we only poll contacts that we want to sent messages/ACKs to. This works for transports where both peers are able to connect to each other if one is able to.For some transports we could reduce the polling effort if we only poll contacts that we want to sent messages/ACKs to. This works for transports where both peers are able to connect to each other if one is able to.https://code.briarproject.org/briar/briar/-/issues/2048Use WebP for image compression2021-12-10T08:54:25ZakwizgranUse WebP for image compressionA user suggested that we use WebP rather than JPEG for compressing images. It's supported on API 14 and seems to give better results than JPEG at high compression levels.
Comparison between JPEG, WebP and AVIF:
https://jakearchibald....A user suggested that we use WebP rather than JPEG for compressing images. It's supported on API 14 and seems to give better results than JPEG at high compression levels.
Comparison between JPEG, WebP and AVIF:
https://jakearchibald.com/2020/avif-has-landed/https://code.briarproject.org/briar/briar/-/issues/187Implement I2P plugin2021-12-09T00:18:37Zstr4dImplement I2P plugin@akwizgran expressed a keen interest in this happening eventually. The basic idea is to add I2P as a transport, so that contacts can choose to communicate over I2P if they wish. It should be similar to the Tor plugin, and will probably b...@akwizgran expressed a keen interest in this happening eventually. The basic idea is to add I2P as a transport, so that contacts can choose to communicate over I2P if they wish. It should be similar to the Tor plugin, and will probably be easier to implement (because I2P has a native Java API).https://code.briarproject.org/briar/briar/-/issues/2237Pending contact list doesn't show "No internet connection" if list contains f...2021-12-01T10:43:02ZakwizgranPending contact list doesn't show "No internet connection" if list contains failed pending contactsIf the pending contact list contains a mixture of failed and not-failed pending contacts, the "No internet connection" snackbar isn't shown when the device is offline. If the failed pending contacts are removed, leaving only not-failed o...If the pending contact list contains a mixture of failed and not-failed pending contacts, the "No internet connection" snackbar isn't shown when the device is offline. If the failed pending contacts are removed, leaving only not-failed ones, the snackbar appears.https://code.briarproject.org/briar/briar/-/issues/2236Contact list doesn't scroll to top after adding contact2021-11-30T12:19:21ZakwizgranContact list doesn't scroll to top after adding contactA user reported that the contact list doesn't scroll to the top after adding a contact, so the new contact isn't visible. This makes it unclear whether the contact was added or not.
Similarly, the list doesn't scroll to the top after re...A user reported that the contact list doesn't scroll to the top after adding a contact, so the new contact isn't visible. This makes it unclear whether the contact was added or not.
Similarly, the list doesn't scroll to the top after returning from a private conversation. If messages have been sent or received in the conversation, moving it to the top of the list, then it may no longer be visible when returning to the contact list.https://code.briarproject.org/briar/briar/-/issues/2235"Contact deleted" toast is not shown2021-11-30T12:16:54Zakwizgran"Contact deleted" toast is not shownA user reported that the "contact deleted" toast was not shown after deleting a contact. (The pending contacts snackbar was visible, in case that's relevant.)A user reported that the "contact deleted" toast was not shown after deleting a contact. (The pending contacts snackbar was visible, in case that's relevant.)https://code.briarproject.org/briar/briar/-/issues/1003RSS feeds served by Cloudflare fail to import due to captcha page2021-11-24T17:04:00ZakwizgranRSS feeds served by Cloudflare fail to import due to captcha pageA user reported that the following feed fails to import: https://blog.fefe.de/rss.xml
A quick test confirms that there's no error message, but no posts appear. The RSS feed appears in the list of feeds, with the expected title. Maybe th...A user reported that the following feed fails to import: https://blog.fefe.de/rss.xml
A quick test confirms that there's no error message, but no posts appear. The RSS feed appears in the list of feeds, with the expected title. Maybe there's an issue with parsing the feed? The items have no dates.
(Note: The issue of feeds without dates has been moved to #1708.)https://code.briarproject.org/briar/briar/-/issues/2219OverlappingFileLockException and OOM when loading large forum2021-11-11T16:08:35ZakwizgranOverlappingFileLockException and OOM when loading large forumThis OOM looks similar to #1607, and even includes an RSS fetch in the log, but it also has some unusual exceptions in the log that deserve further investigation.
* Android version: 8.1.0
* Phone model: Samsung SM-T835 (gts4lltexx)
* Br...This OOM looks similar to #1607, and even includes an RSS fetch in the log, but it also has some unusual exceptions in the log that deserve further investigation.
* Android version: 8.1.0
* Phone model: Samsung SM-T835 (gts4lltexx)
* Briar version: 1.3.6 (445ef08)
* User feedback: "Crash after a long loading time, large forum."
Stacktrace:
```
Failed to allocate a 80 byte allocation with 32 free bytes and 32B until OOM, max allowed footprint 268435456, growth limit 268435456
java.lang.OutOfMemoryError: Failed to allocate a 80 byte allocation with 32 free bytes and 32B until OOM, max allowed footprint 268435456, growth limit 268435456
at java.util.HashMap.resize(HashMap.java:703)
at java.util.HashMap.putVal(HashMap.java:628)
at java.util.HashMap.put(HashMap.java:611)
at java.util.HashSet.add(HashSet.java:219)
at androidx.constraintlayout.solver.widgets.ConstraintAnchor.connect(ConstraintAnchor.java:227)
at androidx.constraintlayout.solver.widgets.ConstraintWidget.immediateConnect(ConstraintWidget.java:1621)
at androidx.constraintlayout.widget.ConstraintLayout.applyConstraintsFromLayoutParams(ConstraintLayout.java:1349)
at androidx.constraintlayout.widget.ConstraintLayout.setChildrenConstraints(ConstraintLayout.java:1253)
at androidx.constraintlayout.widget.ConstraintLayout.updateHierarchy(ConstraintLayout.java:1149)
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1685)
at android.view.View.measure(View.java:23393)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6966)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1167)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:687)
at android.view.View.measure(View.java:23393)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.measureChildWithMargins(RecyclerView.java:9384)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1653)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1855)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:961)
at android.view.View.layout(View.java:20950)
at android.view.ViewGroup.layout(ViewGroup.java:6439)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3027)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2714)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1843)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7978)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:7002)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
```
Log:
```
11-07 15:47:30.508 I/TcpPlugin: 192.168.43.1 is not connectable from 192.168.178.22
11-07 15:47:30.508 I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.178.22
11-07 15:47:30.508 I/TcpPlugin: Connecting to fe[scrubbed]21
11-07 15:47:30.508 I/TcpPlugin: Could not connect to fe[scrubbed]0d
11-07 15:47:30.508 I/TcpPlugin: Could not connect to fe[scrubbed]21
11-07 15:47:30.508 I/TcpPlugin: Connecting to fe[scrubbed]12
11-07 15:47:30.508 I/TcpPlugin: Could not connect to fe[scrubbed]12
11-07 15:47:30.508 I/TcpPlugin: Connecting to fe[scrubbed]58
11-07 15:47:30.508 I/TcpPlugin: Connecting to fe[scrubbed]e5
11-07 15:47:30.509 I/TcpPlugin: Could not connect to fe[scrubbed]e5
11-07 15:47:30.509 I/TcpPlugin: Could not connect to fe[scrubbed]58
11-07 15:47:30.509 I/TcpPlugin: 192.168.0.101 is not connectable from 192.168.178.22
11-07 15:47:30.509 I/TcpPlugin: 192.168.43.1 is not connectable from 192.168.178.22
11-07 15:47:30.509 I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.178.22
11-07 15:47:30.510 I/TcpPlugin: Connecting to fe[scrubbed]e5
11-07 15:47:30.510 I/TcpPlugin: Could not connect to fe[scrubbed]e5
11-07 15:47:32.257 I/BaseActivity: Destroying SplashScreenActivity
11-07 15:47:34.262 I/DuplexOutgoingSession: Generated offer: false
11-07 15:47:35.154 I/DuplexOutgoingSession: Generated offer: false
11-07 15:47:36.030 I/BaseActivity: Pausing NavDrawerActivity
11-07 15:47:36.041 I/BaseActivity: Creating ForumActivity
11-07 15:47:36.074 I/BaseActivity: Starting ForumActivity
11-07 15:47:36.074 I/BaseActivity: Resuming ForumActivity
11-07 15:47:37.804 I/BaseActivity: Stopping NavDrawerActivity
11-07 15:47:44.582 I/DuplexOutgoingSession: Sending keepalive
11-07 15:47:48.196 I/DuplexOutgoingSession: Sending keepalive
11-07 15:47:58.961 I/RenewableWakeLock: Renewing wake lock org.briarproject.briar.android
11-07 15:48:00.596 I/AndroidTaskScheduler: Alarm
11-07 15:48:00.602 I/AndroidTaskScheduler: Running 0 due tasks
11-07 15:48:20.911 I/DuplexOutgoingSession: Sending keepalive
11-07 15:48:20.911 I/DuplexOutgoingSession: Sending keepalive
11-07 15:48:22.088 I/DuplexOutgoingSession: Generated offer: false
11-07 15:48:22.994 I/DuplexOutgoingSession: Generated offer: false
11-07 15:48:23.883 I/ThreadListViewModel: Loaded last top visible message id MessageId(0F16B9EDD7FC27DB06ED03075CF923C58EE3D1A9948708B25F7FED7FDAAEF91D)
11-07 15:48:24.460 I/AndroidTaskScheduler: Running 1 due tasks
11-07 15:48:24.799 I/AndroidTaskScheduler: Task is 0 ms overdue
11-07 15:48:24.805 I/AndroidLanTcpPlugin: Connected to wifi
11-07 15:48:24.816 I/TorPlugin: Online: true, wifi: true, IPv6 only: false
11-07 15:48:24.816 I/TorPlugin: Country code: DE
11-07 15:48:24.816 I/TorPlugin: Charging: true
11-07 15:48:24.816 I/TorPlugin: Enabling network
11-07 15:48:24.816 I/TorPlugin: Not using bridges
11-07 15:48:24.816 I/TorPlugin: Enabling connection padding
11-07 15:48:24.820 W/PluginManagerImpl: org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:612)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getLocalProperties(TransportPropertyManagerImpl.java:217)
at org.briarproject.bramble.plugin.PluginManagerImpl$Callback.getLocalProperties(PluginManagerImpl.java:311)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:133)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:162)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:154)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0$TcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$TcpPlugin$IG7OujafuxmUKGD9Z35IgV8DTwo.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:187)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getLocalProperties(TransportPropertyManagerImpl.java:217)
at org.briarproject.bramble.plugin.PluginManagerImpl$Callback.getLocalProperties(PluginManagerImpl.java:311)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:133)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:162)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:154)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0$TcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$TcpPlugin$IG7OujafuxmUKGD9Z35IgV8DTwo.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalStateException: The file is locked: split:30:/data/data/org.briarproject.briar.android/app_db/db.mv.db [1.4.192/7]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
at org.h2.mvstore.FileStore.open(FileStore.java:167)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getLocalProperties(TransportPropertyManagerImpl.java:217)
at org.briarproject.bramble.plugin.PluginManagerImpl$Callback.getLocalProperties(PluginManagerImpl.java:311)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:133)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:162)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:154)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0$TcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$TcpPlugin$IG7OujafuxmUKGD9Z35IgV8DTwo.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1125)
at org.h2.store.fs.FileDisk.tryLock(FilePathDisk.java:447)
at org.h2.store.fs.FileSplit.tryLock(FilePathSplit.java:394)
at org.h2.store.fs.FilePathEncrypt$FileEncrypt.tryLock(FilePathEncrypt.java:399)
at org.h2.mvstore.cache.FilePathCache$FileCache.tryLock(FilePathCache.java:158)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
at org.h2.mvstore.FileStore.open(FileStore.java:164)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getLocalProperties(TransportPropertyManagerImpl.java:217)
at org.briarproject.bramble.plugin.PluginManagerImpl$Callback.getLocalProperties(PluginManagerImpl.java:311)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:133)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:162)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:154)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0$TcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$TcpPlugin$IG7OujafuxmUKGD9Z35IgV8DTwo.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
11-07 15:48:24.821 I/TcpPlugin: Closing redundant server socket
11-07 15:48:24.827 W/PluginManagerImpl: org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:612)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getLocalProperties(TransportPropertyManagerImpl.java:217)
at org.briarproject.bramble.plugin.PluginManagerImpl$Callback.getLocalProperties(PluginManagerImpl.java:311)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:133)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:162)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:155)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0$TcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$TcpPlugin$IG7OujafuxmUKGD9Z35IgV8DTwo.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:187)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getLocalProperties(TransportPropertyManagerImpl.java:217)
at org.briarproject.bramble.plugin.PluginManagerImpl$Callback.getLocalProperties(PluginManagerImpl.java:311)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:133)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:162)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:155)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0$TcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$TcpPlugin$IG7OujafuxmUKGD9Z35IgV8DTwo.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalStateException: The file is locked: split:30:/data/data/org.briarproject.briar.android/app_db/db.mv.db [1.4.192/7]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
at org.h2.mvstore.FileStore.open(FileStore.java:167)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getLocalProperties(TransportPropertyManagerImpl.java:217)
at org.briarproject.bramble.plugin.PluginManagerImpl$Callback.getLocalProperties(PluginManagerImpl.java:311)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:133)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:162)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:155)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0$TcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$TcpPlugin$IG7OujafuxmUKGD9Z35IgV8DTwo.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1125)
at org.h2.store.fs.FileDisk.tryLock(FilePathDisk.java:447)
at org.h2.store.fs.FileSplit.tryLock(FilePathSplit.java:394)
at org.h2.store.fs.FilePathEncrypt$FileEncrypt.tryLock(FilePathEncrypt.java:399)
at org.h2.mvstore.cache.FilePathCache$FileCache.tryLock(FilePathCache.java:158)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
at org.h2.mvstore.FileStore.open(FileStore.java:164)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getLocalProperties(TransportPropertyManagerImpl.java:217)
at org.briarproject.bramble.plugin.PluginManagerImpl$Callback.getLocalProperties(PluginManagerImpl.java:311)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:133)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:162)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:155)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0$TcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$TcpPlugin$IG7OujafuxmUKGD9Z35IgV8DTwo.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
11-07 15:48:24.833 I/TcpPlugin: Closing redundant server socket
11-07 15:48:44.583 I/DuplexOutgoingSession: Sending keepalive
11-07 15:48:48.197 I/DuplexOutgoingSession: Sending keepalive
11-07 15:48:55.861 I/AndroidTaskScheduler: Running 1 due tasks
11-07 15:48:55.861 I/AndroidTaskScheduler: Task is 1 ms overdue
11-07 15:48:56.612 I/PollerImpl: Polling plugin org.briarproject.bramble.lan
11-07 15:49:08.820 I/RenewableWakeLock: Renewing wake lock org.briarproject.briar.android
11-07 15:49:09.649 W/PollerImpl: org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:612)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:187)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalStateException: The file is locked: split:30:/data/data/org.briarproject.briar.android/app_db/db.mv.db [1.4.192/7]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
at org.h2.mvstore.FileStore.open(FileStore.java:167)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1125)
at org.h2.store.fs.FileDisk.tryLock(FilePathDisk.java:447)
at org.h2.store.fs.FileSplit.tryLock(FilePathSplit.java:394)
at org.h2.store.fs.FilePathEncrypt$FileEncrypt.tryLock(FilePathEncrypt.java:399)
at org.h2.mvstore.cache.FilePathCache$FileCache.tryLock(FilePathCache.java:158)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
at org.h2.mvstore.FileStore.open(FileStore.java:164)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
11-07 15:49:14.996 I/DuplexOutgoingSession: Sending keepalive
11-07 15:49:18.362 I/DuplexOutgoingSession: Sending keepalive
11-07 15:49:29.404 I/AndroidTaskScheduler: Running 1 due tasks
11-07 15:49:29.404 I/AndroidTaskScheduler: Task is 8874 ms overdue
11-07 15:49:29.404 I/FeedManagerImpl: Updating RSS feeds...
11-07 15:49:42.080 W/FeedManagerImpl: org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:612)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.briar.feed.FeedManagerImpl.getFeeds(FeedManagerImpl.java:237)
at org.briarproject.briar.feed.FeedManagerImpl.fetchFeeds(FeedManagerImpl.java:299)
at org.briarproject.briar.feed.-$$Lambda$soycJ-g1Pc6L6zZvAe_6bNrzInY.run(Unknown Source:2)
at org.briarproject.bramble.system.AndroidTaskScheduler.lambda$scheduleWithFixedDelay$2(AndroidTaskScheduler.java:132)
at org.briarproject.bramble.system.AndroidTaskScheduler.lambda$scheduleWithFixedDelay$2$AndroidTaskScheduler(Unknown Source:0)
at org.briarproject.bramble.system.-$$Lambda$AndroidTaskScheduler$zbbtt4N8iq0vPb0Ftc1m3t4mPPE.run(Unknown Source:12)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:187)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.briar.feed.FeedManagerImpl.getFeeds(FeedManagerImpl.java:237)
at org.briarproject.briar.feed.FeedManagerImpl.fetchFeeds(FeedManagerImpl.java:299)
at org.briarproject.briar.feed.-$$Lambda$soycJ-g1Pc6L6zZvAe_6bNrzInY.run(Unknown Source:2)
at org.briarproject.bramble.system.AndroidTaskScheduler.lambda$scheduleWithFixedDelay$2(AndroidTaskScheduler.java:132)
at org.briarproject.bramble.system.AndroidTaskScheduler.lambda$scheduleWithFixedDelay$2$AndroidTaskScheduler(Unknown Source:0)
at org.briarproject.bramble.system.-$$Lambda$AndroidTaskScheduler$zbbtt4N8iq0vPb0Ftc1m3t4mPPE.run(Unknown Source:12)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalStateException: The file is locked: split:30:/data/data/org.briarproject.briar.android/app_db/db.mv.db [1.4.192/7]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
at org.h2.mvstore.FileStore.open(FileStore.java:167)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.briar.feed.FeedManagerImpl.getFeeds(FeedManagerImpl.java:237)
at org.briarproject.briar.feed.FeedManagerImpl.fetchFeeds(FeedManagerImpl.java:299)
at org.briarproject.briar.feed.-$$Lambda$soycJ-g1Pc6L6zZvAe_6bNrzInY.run(Unknown Source:2)
at org.briarproject.bramble.system.AndroidTaskScheduler.lambda$scheduleWithFixedDelay$2(AndroidTaskScheduler.java:132)
at org.briarproject.bramble.system.AndroidTaskScheduler.lambda$scheduleWithFixedDelay$2$AndroidTaskScheduler(Unknown Source:0)
at org.briarproject.bramble.system.-$$Lambda$AndroidTaskScheduler$zbbtt4N8iq0vPb0Ftc1m3t4mPPE.run(Unknown Source:12)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1125)
at org.h2.store.fs.FileDisk.tryLock(FilePathDisk.java:447)
at org.h2.store.fs.FileSplit.tryLock(FilePathSplit.java:394)
at org.h2.store.fs.FilePathEncrypt$FileEncrypt.tryLock(FilePathEncrypt.java:399)
at org.h2.mvstore.cache.FilePathCache$FileCache.tryLock(FilePathCache.java:158)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
at org.h2.mvstore.FileStore.open(FileStore.java:164)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.briar.feed.FeedManagerImpl.getFeeds(FeedManagerImpl.java:237)
at org.briarproject.briar.feed.FeedManagerImpl.fetchFeeds(FeedManagerImpl.java:299)
at org.briarproject.briar.feed.-$$Lambda$soycJ-g1Pc6L6zZvAe_6bNrzInY.run(Unknown Source:2)
at org.briarproject.bramble.system.AndroidTaskScheduler.lambda$scheduleWithFixedDelay$2(AndroidTaskScheduler.java:132)
at org.briarproject.bramble.system.AndroidTaskScheduler.lambda$scheduleWithFixedDelay$2$AndroidTaskScheduler(Unknown Source:0)
at org.briarproject.bramble.system.-$$Lambda$AndroidTaskScheduler$zbbtt4N8iq0vPb0Ftc1m3t4mPPE.run(Unknown Source:12)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
11-07 15:49:44.609 I/DuplexOutgoingSession: Sending keepalive
11-07 15:49:48.198 I/DuplexOutgoingSession: Sending keepalive
11-07 15:49:56.189 I/AndroidTaskScheduler: Running 1 due tasks
11-07 15:49:56.189 I/AndroidTaskScheduler: Task is 900 ms overdue
11-07 15:49:56.190 I/PollerImpl: Polling plugin org.briarproject.bramble.tor
11-07 15:50:04.166 W/PollerImpl: org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:612)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:187)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalStateException: The file is locked: split:30:/data/data/org.briarproject.briar.android/app_db/db.mv.db [1.4.192/7]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
at org.h2.mvstore.FileStore.open(FileStore.java:167)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1125)
at org.h2.store.fs.FileDisk.tryLock(FilePathDisk.java:447)
at org.h2.store.fs.FileSplit.tryLock(FilePathSplit.java:394)
at org.h2.store.fs.FilePathEncrypt$FileEncrypt.tryLock(FilePathEncrypt.java:399)
at org.h2.mvstore.cache.FilePathCache$FileCache.tryLock(FilePathCache.java:158)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
at org.h2.mvstore.FileStore.open(FileStore.java:164)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
11-07 15:50:09.214 I/RenewableWakeLock: Renewing wake lock org.briarproject.briar.android
11-07 15:50:14.585 I/DuplexOutgoingSession: Sending keepalive
11-07 15:50:21.545 I/DuplexOutgoingSession: Sending keepalive
11-07 15:50:41.886 I/AndroidTaskScheduler: Running 1 due tasks
11-07 15:50:41.886 I/AndroidTaskScheduler: Task is 1594 ms overdue
11-07 15:50:44.432 I/PollerImpl: Polling plugin org.briarproject.bramble.lan
11-07 15:50:44.586 I/DuplexOutgoingSession: Sending keepalive
11-07 15:50:45.256 W/PollerImpl: org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:612)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:187)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalStateException: The file is locked: split:30:/data/data/org.briarproject.briar.android/app_db/db.mv.db [1.4.192/7]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
at org.h2.mvstore.FileStore.open(FileStore.java:167)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1125)
at org.h2.store.fs.FileDisk.tryLock(FilePathDisk.java:447)
at org.h2.store.fs.FileSplit.tryLock(FilePathSplit.java:394)
at org.h2.store.fs.FilePathEncrypt$FileEncrypt.tryLock(FilePathEncrypt.java:399)
at org.h2.mvstore.cache.FilePathCache$FileCache.tryLock(FilePathCache.java:158)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
at org.h2.mvstore.FileStore.open(FileStore.java:164)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
11-07 15:50:48.199 I/DuplexOutgoingSession: Sending keepalive
11-07 15:51:10.035 I/RenewableWakeLock: Renewing wake lock org.briarproject.briar.android
11-07 15:51:16.316 I/DuplexOutgoingSession: Sending keepalive
11-07 15:51:18.778 I/DuplexOutgoingSession: Sending keepalive
11-07 15:51:44.587 I/DuplexOutgoingSession: Sending keepalive
11-07 15:51:49.991 I/DuplexOutgoingSession: Sending keepalive
11-07 15:52:30.551 I/RenewableWakeLock: Renewing wake lock org.briarproject.briar.android
11-07 15:52:30.552 I/DuplexOutgoingSession: Sending keepalive
11-07 15:52:30.552 I/AndroidTaskScheduler: Running 1 due tasks
11-07 15:52:30.552 I/AndroidTaskScheduler: Task is 3351 ms overdue
11-07 15:52:31.440 I/DuplexOutgoingSession: Sending keepalive
11-07 15:52:31.441 I/PollerImpl: Polling plugin org.briarproject.bramble.lan
11-07 15:52:36.375 W/PollerImpl: org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:612)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-192]
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:187)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalStateException: The file is locked: split:30:/data/data/org.briarproject.briar.android/app_db/db.mv.db [1.4.192/7]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
at org.h2.mvstore.FileStore.open(FileStore.java:167)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1125)
at org.h2.store.fs.FileDisk.tryLock(FilePathDisk.java:447)
at org.h2.store.fs.FileSplit.tryLock(FilePathSplit.java:394)
at org.h2.store.fs.FilePathEncrypt$FileEncrypt.tryLock(FilePathEncrypt.java:399)
at org.h2.mvstore.cache.FilePathCache$FileCache.tryLock(FilePathCache.java:158)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
at org.h2.mvstore.FileStore.open(FileStore.java:164)
at org.h2.mvstore.MVStore.<init>(MVStore.java:344)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:108)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:602)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:163)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:210)
at org.briarproject.bramble.properties.TransportPropertyManagerImpl.getRemoteProperties(TransportPropertyManagerImpl.java:238)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:221)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.-$$Lambda$AndroidWakeLockManagerImpl$P0v7ccI1GqbvGyqUJX4idUffuJI.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
11-07 15:52:45.396 I/DuplexOutgoingSession: Sending keepalive
11-07 15:52:45.400 I/ThreadScrollListener: Updating unread count: top=0 bottom=0
11-07 15:52:50.329 I/DuplexOutgoingSession: Sending keepalive
11-07 15:53:18.774 I/DuplexOutgoingSession: Sending keepalive
11-07 15:53:19.023 I/DuplexOutgoingSession: Sending keepalive
11-07 15:53:50.324 I/TorPlugin: OR connection LAUNCHED $F38FB55A8CCA6A00CDD024A5EA2CFECB38A48E15~Ichotolot64
11-07 15:53:50.324 I/DuplexOutgoingSession: Sending keepalive
11-07 15:53:50.324 I/RenewableWakeLock: Renewing wake lock org.briarproject.briar.android
11-07 15:53:54.439 I/DuplexOutgoingSession: Sending keepalive
11-07 15:54:03.918 I/TorPlugin: OR connection CONNECTED $F38FB55A8CCA6A00CDD024A5EA2CFECB38A48E15~Ichotolot64
11-07 15:54:37.686 I/DuplexOutgoingSession: Sending keepalive
11-07 15:54:37.687 I/DuplexOutgoingSession: Sending keepalive
11-07 15:54:39.083 W/ValidationManagerImpl: org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Nicht genug Hauptspeicher.
Out of memory.; SQL statement:
COMMIT [90108-192]
org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Nicht genug Hauptspeicher.
Out of memory.; SQL statement:
COMMIT [90108-192]
at org.briarproject.bramble.db.JdbcDatabase.commitTransaction(JdbcDatabase.java:648)
at org.briarproject.bramble.db.JdbcDatabase.commitTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.commitTransaction(DatabaseComponentImpl.java:176)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:201)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.shareNextMessage(ValidationManagerImpl.java:375)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.lambda$shareNextMessageAsync$7(ValidationManagerImpl.java:369)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.lambda$shareNextMessageAsync$7$ValidationManagerImpl(Unknown Source:0)
at org.briarproject.bramble.sync.validation.-$$Lambda$ValidationManagerImpl$J4QHNieVQib5bjd901cZcemMbXY.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: org.h2.jdbc.JdbcSQLException: Nicht genug Hauptspeicher.
Out of memory.; SQL statement:
COMMIT [90108-192]
at org.h2.command.Command.executeUpdate(Command.java:264)
at org.h2.jdbc.JdbcConnection.commit(JdbcConnection.java:481)
at org.briarproject.bramble.db.JdbcDatabase.commitTransaction(JdbcDatabase.java:646)
at org.briarproject.bramble.db.JdbcDatabase.commitTransaction(JdbcDatabase.java:101)
at org.briarproject.bramble.db.DatabaseComponentImpl.commitTransaction(DatabaseComponentImpl.java:176)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:201)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.shareNextMessage(ValidationManagerImpl.java:375)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.lambda$shareNextMessageAsync$7(ValidationManagerImpl.java:369)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.lambda$shareNextMessageAsync$7$ValidationManagerImpl(Unknown Source:0)
at org.briarproject.bramble.sync.validation.-$$Lambda$ValidationManagerImpl$J4QHNieVQib5bjd901cZcemMbXY.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace available
```
Observations:
* There's a lot going on here
* ForumActivity is created, started and resumed at 15:47:36
* We don't see any log messages related to loading the forum's stored message ID, headers or bodies
* This could mean that those tasks never ran, or it could mean that the ViewModel was reused
* Based on keepalives, a couple of contacts seem to be connected - we don't get clear confirmation of this, as the poller tasks keep failing
* Some DB tasks seem to be succeeding at the start of the log ("Generated offer: false")
* Maybe DB tasks started failing after the start of the log - or maybe some tasks were already failing and others succeeding when the log started
* The first DB exception is logged at 15:48:24, about 48 seconds after opening the forum
* Two DB tasks fail in quick succession: the LAN plugin is looking up local transport properties for binding IPv4 and IPv6 sockets
* At 15:49:09 another DB task fails: polling the LAN plugin
* At 15:49:42 another DB task fails: loading the list of RSS feeds
* This suggests the OOM is unlikely to be RSS-related, as we never manage to load the list of feeds
* At 15:50:04 another DB task fails: polling the Tor plugin
* At 15:50:45 another DB task fails: polling the LAN plugin
* At 15:52:36 another DB task fails: polling the LAN plugin again
* All DB exceptions up to this point have been thrown when starting transactions
* Starting a transaction causes an H2 connection to be created, which suggests the DB's connection pool is empty
* Possibly related H2 bug: https://github.com/h2database/h2database/issues/1212
* Is it possible that our last DB connection was closed, which caused H2 to shut down automatically, and then we hit the H2 bug when we tried to open a new connection?
* This doesn't seem right - when DB connections are released, don't we keep them in the pool instead of closing them?
* At 15:54:39 (about 7 minutes after opening the forum) a final DB task fails with an OOM
* Unlike the other failures, this one happens when committing a transaction
* This suggests at least one DB connection may have been open when trying to open the connections that caused the earlier DB exceptions, so H2 bug 1212 may not be involved
* The last DB task to fail is the validation manager sharing a message
* The log doesn't show any acks being sent, so this message must have been received at least 7 minutes agoAndroid 1.4https://code.briarproject.org/briar/briar/-/issues/2217ArrayIndexOutOfBoundsException when reading a record2021-11-11T16:04:24ZakwizgranArrayIndexOutOfBoundsException when reading a record* Android version: 4.2.2
* Phone model: TCT One Touch 4033D (Yaris_M)
* Briar version: 1.3.8 (8076775)
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsException: src.length=1 srcPos=0 dst.length=4 dstPos=0 length=4
at java.lang.S...* Android version: 4.2.2
* Phone model: TCT One Touch 4033D (Yaris_M)
* Briar version: 1.3.8 (8076775)
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsException: src.length=1 srcPos=0 dst.length=4 dstPos=0 length=4
at java.lang.System.arraycopy(Native Method)
at java.io.BufferedInputStream.read(BufferedInputStream.java:286)
at libcore.io.Streams.readFully(Streams.java:81)
at java.io.DataInputStream.readFully(DataInputStream.java:120)
at java.io.DataInputStream.readFully(DataInputStream.java:116)
at org.briarproject.bramble.record.RecordReaderImpl.readRecord(RecordReaderImpl.java:35)
at org.briarproject.bramble.record.RecordReaderImpl.readRecord(RecordReaderImpl.java:52)
at org.briarproject.bramble.keyagreement.KeyAgreementTransport.readRecord(KeyAgreementTransport.java:114)
at org.briarproject.bramble.keyagreement.KeyAgreementTransport.receiveKey(KeyAgreementTransport.java:77)
at org.briarproject.bramble.keyagreement.KeyAgreementProtocol.receiveKey(KeyAgreementProtocol.java:130)
at org.briarproject.bramble.keyagreement.KeyAgreementProtocol.perform(KeyAgreementProtocol.java:107)
at org.briarproject.bramble.keyagreement.KeyAgreementTaskImpl.run(KeyAgreementTaskImpl.java:117)
```
Last lines of log
```
11-01 11:59:10.121 I/AddNearbyContactViewModel: Got result from decoder
11-01 11:59:10.121 I/AddNearbyContactViewModel: Remote payload is 48 bytes
11-01 11:59:10.123 I/KeyAgreementConnector: Starting outgoing BQP connections as Bob
11-01 11:59:10.124 I/CameraView: Stopping preview
11-01 11:59:10.125 I/KeyAgreementConnector: Connecting via org.briarproject.bramble.bluetooth
11-01 11:59:10.125 I/KeyAgreementConnector: Connecting via org.briarproject.bramble.lan
11-01 11:59:10.126 I/AbstractBluetoothPlugin: Connecting to key agreement UUID a2271b04-3c3a-3dea-a45c-e8d6bfa9aa62
11-01 11:59:10.126 I/AbstractBluetoothPlugin: Connecting to 1C:[scrubbed]:49
11-01 11:59:10.355 I/CameraView: Releasing camera
11-01 11:59:10.423 I/CameraView: Surface destroyed
11-01 11:59:12.841 I/AbstractBluetoothPlugin: Connected to 1C:[scrubbed]:49
11-01 11:59:12.841 I/BluetoothConnectionLimiterImpl: Connection opened, 1 open
11-01 11:59:12.842 I/KeyAgreementConnector: org.briarproject.bramble.bluetooth: Outgoing connection
11-01 11:59:17.975 I/RenewableWakeLock: Renewing wake lock org.briarproject.briar.android
11-01 11:59:22.841 I/AndroidTaskScheduler: Running 1 due tasks
11-01 11:59:22.841 I/AndroidTaskScheduler: Task is 0 ms overdue
11-01 11:59:32.842 I/AndroidTaskScheduler: Running 1 due tasks
11-01 11:59:32.843 I/AndroidTaskScheduler: Task is 0 ms overdue
11-01 11:59:42.106 I/AndroidTaskScheduler: Running 1 due tasks
11-01 11:59:42.106 I/AndroidTaskScheduler: Task is 2 ms overdue
11-01 11:59:42.107 I/PollerImpl: Polling plugin org.briarproject.bramble.lan
11-01 11:59:42.108 I/ConnectionRegistryImpl: 0 contacts connected or better: org.briarproject.bramble.lan
11-01 11:59:42.844 I/AndroidTaskScheduler: Running 1 due tasks
11-01 11:59:42.844 I/AndroidTaskScheduler: Task is 1 ms overdue
11-01 11:59:45.146 I/AndroidTaskScheduler: Running 1 due tasks
11-01 11:59:45.146 I/AndroidTaskScheduler: Task is 1 ms overdue
11-01 11:59:45.147 I/PollerImpl: Polling plugin org.briarproject.bramble.tor
11-01 11:59:45.148 I/ConnectionRegistryImpl: 0 contacts connected or better: org.briarproject.bramble.tor
11-01 11:59:52.849 I/AndroidTaskScheduler: Running 1 due tasks
11-01 11:59:52.849 I/AndroidTaskScheduler: Task is 1 ms overdue
11-01 11:59:58.011 I/KeyAgreementConnector: org.briarproject.bramble.bluetooth: Data available
11-01 11:59:58.011 I/ConnectionChooserImpl: Got connection for org.briarproject.bramble.bluetooth
11-01 11:59:58.022 I/KeyAgreementConnector: Stopping BQP listeners
11-01 11:59:58.026 I/ConnectionChooserImpl: java.io.IOException: [JSR82] accept: Connection is not created (failed or aborted).
11-01 11:59:58.034 I/ConnectionChooserImpl: Closing 0 unused connections
11-01 11:59:58.034 I/KeyAgreementTaskImpl: Starting BQP protocol
11-01 11:59:58.042 I/ConnectionChooserImpl: java.net.SocketException: Socket closed
```
I'm marking this issue as confidential in case it's remotely triggerable by sending a malformed record.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2216SecurityException: Permission Denial for MANAGE_DOCUMENTS2021-11-11T16:04:24ZakwizgranSecurityException: Permission Denial for MANAGE_DOCUMENTSThis looks similar to #2143 and may be the same device as https://code.briarproject.org/briar/briar/-/issues/2143#note_56595, but with a different stacktrace.
* Android version: 5.1
* Phone model: Meizu M3s
* Briar version: 1.3.8 (80767...This looks similar to #2143 and may be the same device as https://code.briarproject.org/briar/briar/-/issues/2143#note_56595, but with a different stacktrace.
* Android version: 5.1
* Phone model: Meizu M3s
* Briar version: 1.3.8 (8076775)
* User feedback: "I uploaded a JPG photo, crashed."
Stacktrace:
```
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{127a6dac 23863:org.briarproject.briar.android/u0a98} (pid=23863, uid=10098) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
at android.os.Parcel.readException(Parcel.java:1546)
at android.os.Parcel.readException(Parcel.java:1499)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3579)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:5203)
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2657)
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1500)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1106)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:946)
at android.content.ContentResolver.openInputStream(ContentResolver.java:671)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.storeAttachment(AttachmentCreationTask.java:103)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.processUri(AttachmentCreationTask.java:79)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.storeAttachments(AttachmentCreationTask.java:68)
at org.briarproject.briar.android.attachment.AttachmentCreatorImpl.lambda$null$0(AttachmentCreatorImpl.java:94)
at org.briarproject.briar.android.attachment.AttachmentCreatorImpl.lambda$null$0$AttachmentCreatorImpl(AttachmentCreatorImpl.java)
at org.briarproject.briar.android.attachment.-$$Lambda$AttachmentCreatorImpl$buxZfdoUf6j50-ilIY-ZnTGRVoE.run(lambda)
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:818)
```https://code.briarproject.org/briar/briar/-/issues/2215IllegalStateException when changing fragments in SettingsActivity2021-11-11T16:04:24ZakwizgranIllegalStateException when changing fragments in SettingsActivity* Android version: 4.2.2
* Briar version: 1.3.8 (8076775)
* Phone model: TCT One Touch 4033D (Yaris_M)
* User feedback: "I opened another app"
Last lines of log:
```
11-01 08:40:18.454 I/BaseActivity: Pausing TransportsActivity
11-01 08...* Android version: 4.2.2
* Briar version: 1.3.8 (8076775)
* Phone model: TCT One Touch 4033D (Yaris_M)
* User feedback: "I opened another app"
Last lines of log:
```
11-01 08:40:18.454 I/BaseActivity: Pausing TransportsActivity
11-01 08:40:18.467 I/BaseActivity: Starting NavDrawerActivity
11-01 08:40:18.467 I/BaseActivity: Resuming NavDrawerActivity
11-01 08:40:26.200 I/BaseActivity: Pausing NavDrawerActivity
11-01 08:40:26.228 I/BaseActivity: Creating SettingsActivity
11-01 08:40:26.280 I/BaseActivity: Starting SettingsActivity
11-01 08:40:26.280 I/BaseActivity: Resuming SettingsActivity
11-01 08:40:27.005 I/BaseActivity: Stopping TransportsActivity
11-01 08:40:27.007 I/BaseActivity: Destroying TransportsActivity
11-01 08:40:27.016 I/BaseActivity: Stopping NavDrawerActivity
11-01 08:40:31.697 I/BaseActivity: Pausing SettingsActivity
```
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at androidx.fragment.app.FragmentManager.checkStateLoss(FragmentManager.java:1844)
at androidx.fragment.app.FragmentManager.enqueueAction(FragmentManager.java:1884)
at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:329)
at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:294)
at org.briarproject.briar.android.settings.SettingsActivity.showNextFragment(SettingsActivity.java:83)
at org.briarproject.briar.android.settings.SettingsActivity.onPreferenceStartFragment(SettingsActivity.java:72)
at androidx.preference.PreferenceFragmentCompat.onPreferenceTreeClick(PreferenceFragmentCompat.java:407)
at androidx.preference.Preference.performClick(Preference.java:1192)
at androidx.preference.Preference.performClick(Preference.java:1166)
at androidx.preference.Preference$1.onClick(Preference.java:181)
at android.view.View.performClick(View.java:4212)
at android.view.View$PerformClick.run(View.java:17476)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5400)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(Native Method)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/895Save unsent text input as draft when screen left and restore it when reentered2021-11-09T12:13:51ZTorsten GroteSave unsent text input as draft when screen left and restore it when reenteredPeople are used from other messengers to their unsent text being saved when they leave a conversation and have it restored when they reenter it.
Briar currently just drops this text and loses it for the user.People are used from other messengers to their unsent text being saved when they leave a conversation and have it restored when they reenter it.
Briar currently just drops this text and loses it for the user.https://code.briarproject.org/briar/briar/-/issues/1303IllegalArgumentException: parameter must be a descendant of this view2021-11-04T11:04:02ZakwizgranIllegalArgumentException: parameter must be a descendant of this viewTwo crash reports from the same user:
* Android version: 7.1.2
* Phone model: Samsung GT-I9100
* Briar version:
* 1.0.4 (f31219d)
* 1.0.5 (183f0c5)
* User feedback:
* "Sending message to contact. (Message contains \" and ' charact...Two crash reports from the same user:
* Android version: 7.1.2
* Phone model: Samsung GT-I9100
* Briar version:
* 1.0.4 (f31219d)
* 1.0.5 (183f0c5)
* User feedback:
* "Sending message to contact. (Message contains \" and ' characters.)"
* "Briar in foreground, no user action."
First log:
```
05-18 13:22:51.117 I/EmojiProvider: Loaded page emoji_smiley_people.png
05-18 13:22:55.909 I/KeyboardAwareLinearLayout: onKeyboardOpen(282)
05-18 13:23:47.110 I/ConversationActivity: Storing message took 298 ms
05-18 13:23:49.311 I/ConversationActivity: Messages sent
05-18 13:23:49.598 I/BriarRecyclerView: Updating Content...
05-18 13:23:49.630 I/ConversationActivity: Marking read took 2 ms
05-18 13:23:51.009 I/ConversationActivity: Messages acked
05-18 13:23:52.434 I/BriarRecyclerView: Adding Handler Callback
05-18 13:23:52.435 I/AndroidDatabaseConfig: Database key has been set: true
05-18 13:23:52.634 I/ContactListFragment: Full load took 192 ms
```
Crashed at 13:23:53.397
Second log:
```
05-25 09:06:43.627 I/EmojiProvider: Loading page emoji_smiley_people.png
05-25 09:06:43.836 I/ConversationActivity: Marking read took 207 ms
05-25 09:06:44.282 I/EmojiProvider: Loaded page emoji_smiley_people.png
05-25 09:06:48.501 I/ConversationActivity: Storing message took 366 ms
05-25 09:06:48.710 I/BriarRecyclerView: Adding Handler Callback
05-25 09:06:48.711 I/AndroidDatabaseConfig: Database key has been set: true
```
Crashed at 09:06:49.050
Stacktrace:
```
java.lang.IllegalArgumentException: parameter must be a descendant of this view
at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:5459)
at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:5388)
at android.view.ViewRootImpl.scrollToRectOrFocus(ViewRootImpl.java:3073)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2683)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2608)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2215)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6344)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
at android.view.Choreographer.doCallbacks(Choreographer.java:686)
at android.view.Choreographer.doFrame(Choreographer.java:621)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
```
It looks like both crashes happened after sending and receiving private messages containing emoji, then switching away from the private conversation. In the first crash the switch was to the contact list - in the second crash it's not clear.Android 1.4https://code.briarproject.org/briar/briar/-/issues/837NPE when opening private group new message notification2021-11-04T11:04:01ZErnir ErlingssonNPE when opening private group new message notificationBriar had been alive for ~20 hours in the background when I got a notification of three new private group messages. I clicked the notification which lead straight to this NPE:
ava.lang.NullPointerException: Attempt to invoke interface m...Briar had been alive for ~20 hours in the background when I got a notification of three new private group messages. I clicked the notification which lead straight to this NPE:
ava.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference
at org.briarproject.briar.client.MessageTreeImpl.parseNode(MessageTreeImpl.java:70)
at org.briarproject.briar.client.MessageTreeImpl.add(MessageTreeImpl.java:48)
at org.briarproject.briar.client.MessageTreeImpl.add(MessageTreeImpl.java:55)
at org.briarproject.briar.android.threaded.NestedTreeList.add(NestedTreeList.java:28)
at org.briarproject.briar.android.threaded.ThreadItemAdapter.add(ThreadItemAdapter.java:86)
at org.briarproject.briar.android.threaded.ThreadListActivity.addItem(ThreadListActivity.java:339)
at org.briarproject.briar.android.threaded.ThreadListActivity$5.onResultUi(ThreadListActivity.java:321)
at org.briarproject.briar.android.threaded.ThreadListActivity$5.onResultUi(ThreadListActivity.java:318)
at org.briarproject.briar.android.controller.handler.UiResultExceptionHandler$1.run(UiResultExceptionHandler.java:24)
at org.briarproject.briar.android.activity.BaseActivity$1.run(BaseActivity.java:104)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)Android 1.4