Skip to content

Instabug SDK 10.12.0 crashes due to a stack overflow in NormalConnectionManager #414

Closed
@adamszewe

Description

@adamszewe

Steps to Reproduce the Problem

Start the application with release build type and wait for it to crash.

Expected Behavior

The SDK should not crash.

Actual Behavior

The app crashes because of a stack overflow due to the Insabug SDK

Instabug integration code

Make sure to remove your app token.

SDK Version

10.12.0

Android Version

Android 11

Device Model

Samsung A21s

[Optional] Project That Reproduces the Issue

Crash stacktrace from Firebase

Fatal Exception: java.lang.StackOverflowError: stack size 1039KB
       at java.net.SocketInputStream.socketRead0(SocketInputStream.java)
       at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
       at java.net.SocketInputStream.read(SocketInputStream.java:176)
       at java.net.SocketInputStream.read(SocketInputStream.java:144)
       at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:945)
       at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:909)
       at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:824)
       at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:797)
       at com.android.okhttp.okio.Okio$2.read(Okio.java:138)
       at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:213)
       at com.android.okhttp.okio.RealBufferedSource.exhausted(RealBufferedSource.java:61)
       at com.android.okhttp.internal.io.RealConnection.isHealthy(RealConnection.java:365)
       at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:139)
       at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
       at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
       at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:262)
       at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:219)
       at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:30)
       at com.google.firebase.perf.network.InstrURLConnectionBase.getOutputStream(InstrURLConnectionBase.java:160)
       at com.google.firebase.perf.network.InstrHttpsURLConnection.getOutputStream(InstrHttpsURLConnection.java:89)
       at com.instabug.library.networkv2.connection.NormalConnectionManager.setupConnection(NormalConnectionManager.java:8)
       at com.instabug.library.networkv2.connection.InstabugBaseConnectionManagerImpl.create(InstabugBaseConnectionManagerImpl.java:3)
       at com.instabug.library.networkv2.NetworkManager.handleRequest(NetworkManager.java:8)
       at com.instabug.library.networkv2.NetworkManager.doRequestOnSameThread(NetworkManager.java:1)
       at com.instabug.library.networkv2.NetworkManager.doRequestOnSameThread(NetworkManager.java:9)
       at com.instabug.library.l8.a(SessionsRemoteDataSource.java:10)
       at com.instabug.library.l8$a.a(SessionsRemoteDataSource.java:4)
       at com.instabug.library.l8$a.onFailed(SessionsRemoteDataSource.java:1)
       at com.instabug.library.networkv2.NetworkManager.handleRequest(NetworkManager.java:95)
       at com.instabug.library.networkv2.NetworkManager.doRequestOnSameThread(NetworkManager.java:1)
       at com.instabug.library.networkv2.NetworkManager.doRequestOnSameThread(NetworkManager.java:9)
       at com.instabug.library.l8.a(SessionsRemoteDataSource.java:10)
       at com.instabug.library.l8$a.a(SessionsRemoteDataSource.java:4)
       at com.instabug.library.l8$a.onFailed(SessionsRemoteDataSource.java:1)
       at com.instabug.library.networkv2.NetworkManager.handleRequest(NetworkManager.java:95)
       at com.instabug.library.networkv2.NetworkManager.doRequestOnSameThread(NetworkManager.java:1)
       at com.instabug.library.networkv2.NetworkManager.doRequestOnSameThread(NetworkManager.java:9)
       at com.instabug.library.l8.a(SessionsRemoteDataSource.java:10)
       at com.instabug.library.l8$a.a(SessionsRemoteDataSource.java:4)
       at com.instabug.library.l8$a.onFailed(SessionsRemoteDataSource.java:1)
       at com.instabug.library.networkv2.NetworkManager.handleRequest(NetworkManager.java:95)
       at com.instabug.library.networkv2.NetworkManager.doRequestOnSameThread(NetworkManager.java:1)
       at com.instabug.library.networkv2.NetworkManager.doRequestOnSameThread(NetworkManager.java:9)

... repeats until it crashes ...

       at com.instabug.library.l8.a(SessionsRemoteDataSource.java:10)
       at com.instabug.library.n8$a.run(SessionsSyncManager.java:2)
       at com.instabug.library.util.threading.PoolProvider$b.run(PoolProvider.java:5)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at com.instabug.library.u6$a.run(PriorityThreadFactory.java:8)
       at java.lang.Thread.run(Thread.java:920)
       ```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions