stripe / stripe-terminal-android

Stripe Terminal Android SDK
https://stripe-terminal-android-nine.vercel.app
Other
81 stars 43 forks source link

Corrupt proto payload in the queue: terminal_sdk_wire_traces_2 #464

Closed whyteH closed 1 day ago

whyteH commented 1 month ago

Summary

Corrupt proto payload in the queue: terminal_sdk_wire_metrics java.net.ProtocolException: Unexpected tag 0 at com.squareup.wire.ProtoReader.nextTag(ProtoReader.kt:172) at com.stripe.proto.api.gator.EventResultPb$Companion$ADAPTER$1.decode(EventResultPb.kt:387) at com.stripe.proto.api.gator.EventResultPb$Companion$ADAPTER$1.decode(EventResultPb.kt:252) at com.stripe.proto.api.gator.ProxyEventPb$Companion$ADAPTER$1.decode(ProxyEventPb.kt:206) at com.stripe.proto.api.gator.ProxyEventPb$Companion$ADAPTER$1.decode(ProxyEventPb.kt:160) at com.squareup.wire.ProtoAdapter.decode(ProtoAdapter.kt:457) at com.squareup.wire.ProtoAdapter.decode(ProtoAdapter.kt:455) at com.stripe.jvmcore.batchdispatcher.collectors.QueueFileProtoSerializer.fromBytes(QueueFileProtoSerializer.kt:27) at com.stripe.jvmcore.batchdispatcher.collectors.QueueFileProtoSerializer.fromBytes(QueueFileProtoSerializer.kt:11) at com.stripe.jvmcore.batchdispatcher.collectors.QueueFileCollector.populateBatch(QueueFileCollector.kt:229) at com.stripe.jvmcore.batchdispatcher.collectors.QueueFileCollector.access$populateBatch(QueueFileCollector.kt:26) at com.stripe.jvmcore.batchdispatcher.collectors.QueueFileCollector$peek$2.invokeSuspend(QueueFileCollector.kt:176) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923)

image

Android version

Android 11

Impacted devices (Android devices or readers)

WisePad 3

SDK version

3.6.0

Other information

This bug seems to have always existed, and there are still problems when using 3.6.0.

maxa-stripe commented 3 weeks ago

@whyteH Thank you for the issue. Could you provide some instructions to reproduce this? Could you also describe what impact this exception has on your application: does it cause a crash? Does it occur during payment collection or discovery? Thanks!

whyteH commented 3 weeks ago

@whyteH Thank you for the issue. Could you provide some instructions to reproduce this? Could you also describe what impact this exception has on your application: does it cause a crash? Does it occur during payment collection or discovery? Thanks!

After this exception occurs, an OutOfMemoryError will occur, causing the app to crash. This exception occurs after creatingPaymentIntent, and it is easy to occur after Terminal.initTerminal to createPaymentIntent is repeated several times. Once it occurs, the app must be uninstalled and reinstalled to use it normally. It will still appear when the app is reopened. In fact, my memory is sufficient, and it appeared again when I tested it just now.

image

image

cwoods-stripe commented 1 week ago

Fixed in Terminal Android SDK 3.7.0 https://github.com/stripe/stripe-terminal-android/blob/master/CHANGELOG.md

cwoods-stripe commented 1 week ago

Hi @whyteH - please confirm if issue is now resolved on your end as well, thanks!

whyteH commented 1 day ago

Hi @whyteH - please confirm if issue is now resolved on your end as well, thanks!

After testing 3.7.0, the following exception occurred, causing the application to crash. image