mixpanel / mixpanel-android

Official Android Tracking Library for Mixpanel Analytics
http://mixpanel.com/
Apache License 2.0
1.02k stars 366 forks source link

MPDbAdapter.generateDataString OutOfMemory Error #793

Closed vikasrathour1 closed 1 year ago

vikasrathour1 commented 2 years ago

Hi, In low end devices i see multiple instances this MPDbAdapter.generateDataString(...) gives Out of Memory Error. I have seen the code and found we are asking for 50 records at a time.

rawDataQuery.append("ORDER BY " + KEY_CREATED_AT + " ASC LIMIT 50");

Can we make this LIMIT configurable or an optimum number which has less chances to trigger an OutOfMemory Error.

Stack-trace : java.lang.OutOfMemoryError: Failed to allocate a 73736 byte allocation with 58056 free bytes and 56KB until OOM at java.util.Arrays.copyOf(Arrays.java:3352) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:606) at java.lang.StringBuilder.append(StringBuilder.java:215) at org.json.JSONStringer.string(JSONStringer.java:344) at org.json.JSONStringer.key(JSONStringer.java:375) at org.json.JSONObject.writeTo(JSONObject.java:720) at org.json.JSONStringer.value(JSONStringer.java:237) at org.json.JSONObject.writeTo(JSONObject.java:720) at org.json.JSONStringer.value(JSONStringer.java:237) at org.json.JSONArray.writeTo(JSONArray.java:613) at org.json.JSONArray.toString(JSONArray.java:585) at com.mixpanel.android.mpmetrics.MPDbAdapter.generateDataString(MPDbAdapter.java:579) at com.mixpanel.android.mpmetrics.AnalyticsMessages$Worker$AnalyticsMessageHandler.sendData(AnalyticsMessages.java:527) at com.mixpanel.android.mpmetrics.AnalyticsMessages$Worker$AnalyticsMessageHandler.sendAllData(AnalyticsMessages.java:515) at com.mixpanel.android.mpmetrics.AnalyticsMessages$Worker$AnalyticsMessageHandler.handleMessage(AnalyticsMessages.java:425) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.os.HandlerThread.run(HandlerThread.java:61)

vikasrathour1 commented 2 years ago

Hello @zihejia , Can you please look into this issue?

zihejia commented 2 years ago

hi @vikasrathour1 , sorry for the late response. We will look into this.

zihejia commented 1 year ago

hi @vikasrathour1 , do you still have the issue?

anastariqkhan commented 1 week ago

Hi @zihejia the issue still persists affecting our users with devices. Mixpanel Library version 5.5.0

jaredmixpanel commented 1 week ago

@anastariqkhan v5.5.0 is more than 5 1/2 years old and more than 2 major versions behind. Please update as soon as possible.