View Single Post
Posts: 339 | Thanked: 1,623 times | Joined on Oct 2013 @ France
#110
Originally Posted by rinigus View Post
I have some feedback from Mapbox GL authors regarding J1 crashes. It was suggested to test with a very simple theme that just shows country borders on red background. Would J1 and Photon Q users test the last version of the demo app:
Good ! That is indeed a good idea to test the limits of the Jolla.

However, I was able to run it before, but can't with the version.
As I couldn't make sense of it, I first rebooted, then seeing nothing changed removed it, and reinstalled it:
Code:
[nemo@Sailfish ~]$ pkcon install mapbox-sfos mapbox-sfos-debuginfo mapbox-sfos-debugsource
Doing so, the latest version from today is installed (20171009164303) :
Code:
[nemo@Sailfish ~]$ pkcon search name mapbox          
Searching by name                                                                                                                                                                                                 
Waiting in queue                                                                                                                                                                                                  
Starting                                                                                                                                                                                                           
Refreshing software list                                                                                                                                                                                          
Querying                                                                                                                                                                                                           
Installed   	mapbox-sfos-0.1+master.20171009164303.d09e6cb-10.15.1.jolla.armv7hl	Mapbox GL test
Installed   	mapbox-sfos-debuginfo-0.1+master.20171009164303.d09e6cb-10.15.1.jolla.armv7hl	Debug information for package mapbox-sfos
Installed   	mapbox-sfos-debugsource-0.1+master.20171009164303.d09e6cb-10.15.1.jolla.armv7hl	Debug sources for package mapbox-sfos
Available   	mapboxgl-qml-1.0.0+master.20171008193555.041251f-10.17.1.jolla.armv7hl	Mapbox GL Native QML plugin
Available   	mapboxgl-qml-debuginfo-1.0.0+master.20171008193555.041251f-10.17.1.jolla.armv7hl	Debug information for package mapboxgl-qml
Available   	mapboxgl-qml-debugsource-1.0.0+master.20171008193555.041251f-10.17.1.jolla.armv7hl	Debug sources for package mapboxgl-qml
Available   	qmapboxgl-1.1.0+master.20171008181234.42fd177-10.11.1.jolla.armv7hl	Mapbox GL Native Qt version
Available   	qmapboxgl-debugsource-1.1.0+master.20171008181234.42fd177-10.11.1.jolla.armv7hl	Debug sources for package qmapboxgl
Launching it from my computer through ssh give the following output (first 3 lines same as usual, except the segfault never appeared before displaying the app):
Code:
[nemo@Sailfish ~]$ time mapbox-sfos 
[D] unknown:0 - Using Wayland-EGL
[W] unknown:0 - Could not find any zN.M subdirs!
[W] unknown:0 - Theme dir "/usr/share/themes/jolla-ambient/meegotouch/z1.0/" does not exist
Segmentation fault

real	0m1.358s
user	0m1.230s
sys	0m0.210s
I ran it through the commande "time" in this example to show that it crashes before having time to interact with the app. I don't even see it on the home-screen. Result is the same on device, but easier to copy/paste here from the computer with SSH.


Diging with gdb:
Code:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x464b5390 (LWP 3920)]
0x2a3b84fc in QQuickItemMapboxGL::staticMetaObject ()
(gdb) bt full
#0  0x2a3b84fc in QQuickItemMapboxGL::staticMetaObject ()
No symbol table info available.
#1  0x2a1ac6a6 in mbgl::gl::Context::createVertexBuffer(void const*, unsigned int, mbgl::gl::BufferUsage) ()
No symbol table info available.
#2  0x2a1bfeba in mbgl::RenderStaticData::RenderStaticData(mbgl::gl::Context&, float, std::experimental::fundamentals_v1::optional<std::string> const&) ()
No symbol table info available.
#3  0x2a0eb914 in mbgl::Renderer::Impl::render(mbgl::UpdateParameters const&) ()
No symbol table info available.
#4  0x2a0de5fa in QMapboxGLRendererFrontend::render() ()
No symbol table info available.
#5  0x2a088364 in QSGMapboxGLTextureNode::render (this=this@entry=0x44e19248, window=0x2a3e4308) at mapbox-gl-qml/src/qsgmapboxglnode.cpp:111
        loaded = false
        alignment = 4
#6  0x2a082216 in QQuickItemMapboxGL::updatePaintNode (this=0x2a4d8270, node=<optimized out>) at mapbox-gl-qml/src/qquickitemmapboxgl.cpp:769
        n = 0x44e19248
        sz = {wd = 540, ht = 960}
        map = 0x44e25208
        loaded = <optimized out>
        tol = <optimized out>
#7  0x401fc970 in QQuickWindowPrivate::updateDirtyNode(QQuickItem*) () from /usr/lib/libQt5Quick.so.5
No symbol table info available.
#8  0x44e34ce0 in ?? ()
No symbol table info available.
#9  0x44e34ce0 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
And dmesg reports the following (To filter as much as possible, I launch on a single line "dmesg; mapbox-sfos; dmesg", to be sure not much other events can append between the time I launch the app, and get the trace):
Code:
[ 1213.066503] dbus-daemon(877) send signal 9 to dbus-daemon(5056)
[ 1213.178421] dbus-daemon(877) send signal 9 to dbus-daemon(5063)
[ 1213.327269] QSGRenderThread: unhandled page fault (11) at 0x4043a4fc, code 0x8000000f
[ 1213.327300] pgd = d3360000
[ 1213.327330] [4043a4fc] *pgd=9f88e831, *pte=b7c4b75f, *ppte=b7c4bc7f

[ 1213.327361] Pid: 5070, comm:      QSGRenderThread
[ 1213.327391] CPU: 1    Tainted: P        W  O  (3.4.108.20161101.1 #1)
[ 1213.327422] PC is at 0x4043a4fc
[ 1213.327422] LR is at 0x4022e6a7
[ 1213.327452] pc : [<4043a4fc>]    lr : [<4022e6a7>]    psr: 20010010
               sp : 4792f768  ip : 4792f7fc  fp : 46030504
[ 1213.327483] r10: 00000001  r9 : 460300c8  r8 : 00000010
[ 1213.327513] r7 : 00000000  r6 : 460281c8  r5 : 46030504  r4 : 460300c8
[ 1213.327513] r3 : 00000010  r2 : 460281c8  r1 : 4792f76c  r0 : 00000001
[ 1213.327544] Flags: nzCv  IRQs on  FIQs on  Mode USER_32  ISA ARM  Segment user
[ 1213.327574] Control: 10c5787d  Table: 9356006a  DAC: 00000015
[ 1213.327605] [<c010b73c>] (unwind_backtrace+0x0/0x118) from [<c010f658>] (__do_user_fault+0x6c/0xb4)
[ 1213.327666] [<c010f658>] (__do_user_fault+0x6c/0xb4) from [<c08a3364>] (do_page_fault+0x358/0x3e8)
[ 1213.327697] [<c08a3364>] (do_page_fault+0x358/0x3e8) from [<c01003a0>] (do_PrefetchAbort+0x34/0x98)
[ 1213.327727] [<c01003a0>] (do_PrefetchAbort+0x34/0x98) from [<c08a1e14>] (ret_from_exception+0x0/0x10)
[ 1213.327758] Exception stack(0xd7bd5fb0 to 0xd7bd5ff8)
[ 1213.327758] 5fa0:                                     00000001 4792f76c 460281c8 00000010
[ 1213.327788] 5fc0: 460300c8 46030504 460281c8 00000000 00000010 460300c8 00000001 46030504
[ 1213.327819] 5fe0: 4792f7fc 4792f768 4022e6a7 4043a4fc 20010010 ffffffff
[ 1213.327849] QSGRenderThread(5049) send signal 11 to QSGRenderThread(5049)
So that is not what I would have expected (window showing with the simplified map, and only then crashing or not after user input).

What could have changed since the older version on which we found the crash on J1 that could explain this ?

I also found strange that the repo shows differents architectures in its name : " sailfish_latest_armv7hl (armv8el) " (from https://build.merproject.org/project...e:rinigus:maps).
Jolla1 is an armv7l as shown by uname:
Code:
[nemo@Sailfish ~]$ uname -a
Linux Sailfish 3.4.108.20161101.1 #1 SMP PREEMPT Fri Jan 13 19:52:23 UTC 2017 armv7l armv7l armv7l GNU/Linux
But it looks like it is still compiled with the same ABI as others programs (except the SYS in system programs, whereas it is GNU/Linux in harbour programs...), and it take some time for it to crash so probably not related:
Code:
[nemo@Sailfish ~]$ file /usr/bin/mapbox-sfos
/usr/bin/mapbox-sfos: ELF 32-bit LSB  shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0xeb52e8e722b03018b9eb54bfae5e1f8075cd0b1c, stripped
[nemo@Sailfish ~]$ file /usr/bin/harbour-osmscout-server
/usr/bin/harbour-osmscout-server: ELF 32-bit LSB  shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x80681b84d5766bad516af8bcd83013f9094096f1, stripped
[nemo@Sailfish ~]$ file /usr/bin/harbour-webpirate      
/usr/bin/harbour-webpirate: ELF 32-bit LSB  shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x6ec0ffe927ef023defe31fde5a5d59e97aa95df7, stripped
[nemo@Sailfish ~]$ file /usr/bin/gdb
/usr/bin/gdb: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x927abc6ea716799bbd25629812c19be76980df95, stripped
[nemo@Sailfish ~]$ file /usr/bin/git
/usr/bin/git: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x4226c108af6ade5d5163e4512d28a4d8e7cb3fb3, stripped
[nemo@Sailfish ~]$ file /usr/bin/file
/usr/bin/file: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x765abfa4940d6d8e5dd0be6cf14159e8d40ed616, stripped
Do you seen something in those trace I would have missed ?
As before, I can test any other thing, if anyone have ideas of additional commands/traces that could help.
I also tried to describe as much as possible the steps I did if someone else want to compare with its J1 to check that this problem would not be only on my phone.
 

The Following 2 Users Say Thank You to Zeta For This Useful Post: