When using polygons and dynamically adding points quickly, the MTK CPU Android 12 tablet shows NE
The usage of layers is as follows and add points frequency of 10ms once
`
// init layers
projection = new EPSG3857();
dynamicTrackSource = new LocalVectorDataSource(projection, LocalSpatialIndexType.LOCAL_SPATIAL_INDEX_TYPE_KDTREE);
mSprayLayer = new VectorLayer(dynamicTrackSource);
mapView.getLayers().add(mSprayLayer);
mSprayLayer.setVisibleZoomRange(new MapRange(10, 24));
dynamicTrackSource.setGeometrySimplifier(null);
`
Is it Command reordering exception in Android native ?
The usual solution to this problem is to use memory barriers or atomic operations to prevent instruction rearrangement. In C or C++code, you can use atomic variables from the atomic library
00 pc 0041418e /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
#01 pc 001dd07f /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
#02 pc 001aa3b9 /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
#03 pc 001a8d1d /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
#04 pc 001a5327 /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
#05 pc 001aa90f /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
#06 pc 0017b399 /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
#07 pc 001749db /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
#08 pc 00204187 /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
#09 pc 00259df7 /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so (Java_vectorelements_PolygonModuleJNI_Polygon_1setPoses+210)
#10 pc 0000777b /memfd:jit-cache (deleted)
build id:
/data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so (BuildId: 7ffca665aed17843. FileSize: 4915488. LastModified: 1981-01-01T01:01:02.000+0500. MD5: b0f1be8218936628650e79e39b318ddd)
/memfd:jit-cache (deleted) (BuildId: unknown. OPEN error: errno = 2, errmsg = No such file or directory)
java stacktrace:
at vectorelements.PolygonModuleJNI.Polygon_setPoses(Native method)
at vectorelements.Polygon.setPoses(Polygon.java:143)
at com.allynav.precisionag.Mapvis.MapTrackController.addPoint(MapTrackController.kt:468)
at com.allynav.precisionag.Mapvis.MapRefresh.run(MapRefresh.java:440)
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:920)
memory info:
Process Summary (From: android.os.Debug.MemoryInfo)
Pss(KB)
When using polygons and dynamically adding points quickly, the MTK CPU Android 12 tablet shows NE
The usage of layers is as follows and add points frequency of 10ms once ` // init layers projection = new EPSG3857(); dynamicTrackSource = new LocalVectorDataSource(projection, LocalSpatialIndexType.LOCAL_SPATIAL_INDEX_TYPE_KDTREE); mSprayLayer = new VectorLayer(dynamicTrackSource); mapView.getLayers().add(mSprayLayer); mSprayLayer.setVisibleZoomRange(new MapRange(10, 24)); dynamicTrackSource.setGeometrySimplifier(null);
` Is it Command reordering exception in Android native ? The usual solution to this problem is to use memory barriers or atomic operations to prevent instruction rearrangement. In C or C++code, you can use atomic variables from the atomic library
The crash log is as follows `
Tombstone maker: 'xCrash 3.0.0' Crash type: 'native' Start time: '2024-04-28T00:24:22.487+0500' Crash time: '2024-04-28T01:04:11.979+0500' App ID: 'com.allynav.precisionag' App version: '1.4.76.304241' Rooted: 'Yes' API level: '31' OS version: '12' Kernel version: 'Linux version 4.19.191 #2 SMP PREEMPT Tue Dec 12 19:58:25 CST 2023 (armv8l)' ABI list: 'arm64-v8a,armeabi-v7a,armeabi' Manufacturer: 'LIANSHI' Brand: 'LIANSHI' Model: 'T101Pro' Build fingerprint: 'LIANSHI/T101Pro/T101Pro:12/SP1A.210812.016/23:user/test-keys' ABI: 'arm' pid: 2225, tid: 2806, name: p1app1-MapRefre >>> com.allynav.precisionag <<< signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x8 r0 00000008 r1 f1171d44 r2 d736079c r3 d736079c r4 f1155244 r5 f1171d44 r6 60b00e50 r7 d7360260 r8 d736025c r9 00000002 r10 d736021c r11 b6128830 ip eabd5e80 sp b6128770 lr b7b94131 pc b7b9418e
backtrace:
00 pc 0041418e /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
build id: /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so (BuildId: 7ffca665aed17843. FileSize: 4915488. LastModified: 1981-01-01T01:01:02.000+0500. MD5: b0f1be8218936628650e79e39b318ddd) /memfd:jit-cache (deleted) (BuildId: unknown. OPEN error: errno = 2, errmsg = No such file or directory)
stack: b6128730 f1257e70 [anon:scudo:primary] b6128734 f1257e70 [anon:scudo:primary] b6128738 00000000 b612873c f11e0010 [anon:scudo:primary] b6128740 f11dff90 [anon:scudo:primary] b6128744 f11e0034 [anon:scudo:primary] b6128748 dba0d1e0 [anon:scudo:primary] b612874c f01f608f /apex/com.android.runtime/lib/bionic/libc.so (scudo_malloc+22) b6128750 00000000 b6128754 f1257e70 [anon:scudo:primary] b6128758 00000ab4 b612875c f01f198f /apex/com.android.runtime/lib/bionic/libc.so (malloc+22) b6128760 0fffffff b6128764 60b00e50 b6128768 00000011 b612876c b7b94131 /data/app/~~H12pBePRlKkb70RJdAuOsg==/com.allynav.precisionag-nP-ZChQFynEhi-NyZU40rw==/lib/arm/liblsmap_sdk.so
00 b6128770 eb8e8ae0 [anon:scudo:primary]
total threads (exclude the crashed thread): 76 dumped threads: 76 +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++
java stacktrace: at vectorelements.PolygonModuleJNI.Polygon_setPoses(Native method) at vectorelements.Polygon.setPoses(Polygon.java:143) at com.allynav.precisionag.Mapvis.MapTrackController.addPoint(MapTrackController.kt:468) at com.allynav.precisionag.Mapvis.MapRefresh.run(MapRefresh.java:440) 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:920)
memory info: Process Summary (From: android.os.Debug.MemoryInfo) Pss(KB)
foreground: yes
`
crash.txt