Fixed
Status Update
Comments
ho...@gmail.com <ho...@gmail.com> #2
A couple of questions:
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
ro...@google.com <ro...@google.com> #3
Tested on Android 12 Emulator with custom executor, but cannot repro this issue.
ap...@google.com <ap...@google.com> #4
-
Second crash in the description is from a real device. Experienced it myself on two different Xiaomi phones, plus lots of crashes from users in the Google Play console.
-
Dynamic features are not used in the application.
As a wild guess, I have downgraded build tools from 31.0.0 to 30.0.3, compileSdk from 31 to 30, and moved all work with Language ID to the service in a separate process (just to be sure that crash can kill secondary process instead of main). This combination is in beta for 2 days by now and I don't see any SIGSEGV crashes.
Description
DataStore Component used:
datastore-core
DataStore Version used:
1.0.0-alpha02
Devices/Android versions reproduced on: Emulator/Pixel 3, API 30
I've created a sample project that demonstrates the issue here:https://github.com/chris-horner/DataStore-Bug
I've written a custom
Serializer
that attempts to encrypt and decrypt the data written to disk. The problem I've run into is that I need to close theOutputStream
provided inwriteTo()
, as I'm making use of Okio'sCipherSink
. Closing the stream is howCipherSink
writes final data to the stream.However closing
OutputStream
causesSingleProcessDataStore
to throw ajava.io.SyncFailedException
when it attempts to invokewith the stracktrace being