Serious phone hang issue while recording - test results

Started by svartbjorn, May 09, 2011, 20:46:52

0 Members and 1 Guest are viewing this topic.

svartbjorn

This issue - phone hangs while recording a track - has been discussed here at the forum before. Several weeks ago Menion rewrote the recording code and it go silent on the forum after that. Is it really true that nobody else is experiencing hang issues? I can't believe it is only me having serious trouble? This issue drives me crazy. About one out of 3 recordings causes the phone to go completely dead and I have to take out the battery to restart the phone. I once saw this message on the screen as the last message from a dying device: "Application Lotus does not respond".

I have tested track recording during 4 weeks now.
Here ere are my observations:

- not temperature dependent: one person on the forum claimed Desire has a main board overheat problem. That is definitely *not* the problem here. With Locus not running, the phone has never hang even though it has been so hot (inside the car windshield on a sunny day) that I have got a warning message. With Locus recording, it has hang even with free air cooling and 0 degrees C.

- doesn't matter if Locus is installed in internal memory or on the SD card: I have rooted my Desire, so I have moved most apps to the SD card. I later moved Locus back into internal memory to see if it made a difference. 50MB free memory space. Same hang issue.

- doesn't matter if other GPS apps are running: I have tried all kind of combinations. Hang happens just as often even if no other GPS apps are running.

- it ONLY happens when Locus is recording a track.

This is most likely an OS problem, either an Android problem or HTC Sense problem.

I know Menion said some weeks ago that the recording code is not water proof and recommended to use MyTracks or other apps to do track recording. However, I do not find it interesting to use Settings/Track Recording/"Use MyTracks" since it doesn't leave a real time track line on the map, and I do not get the same great features as from Locus recording.

Locus track recording is such a rich, useful and key feature, and everything else is so perfect with Locus now, so it is really sad that this problem is still there. When I go flying, I use Locus for recording, navigation and guiding. It is then really serious that the phone hangs during the flight, and I have to struggle with taking the battery out and restart the phone. Last Saturday I flew 5 legs, and the phone went dead on two out of those 5 recordings.

Any hope for a better world here, Menion?
  •  

Menion

Sure, hope dies last you know ...

this is really serious problem. I do not noticed similar problem on my phone, but truth is that I'm not using this function a lot. I mostly sit before my computer at home. But summer comes :). Question remain, how to determine, where is source of problem? hmm .. when app crash in normal way, you can see dialog "Force close" and phone still run, so you can run some LogCat program and get information from log that should help a lot. But in this case, whole system is stuck and no log can be taken ... damn ... any ideas?

what ROM are you using? Did you tried any other ROM when you have rooted desire phone? ...
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

svartbjorn

When app crashes, I normally do not see any dialog or error message. Sometimes the phone is dead when I try to turn on the screen. Sometimes I can turn on the screen, I can see the Locus map, but then the phone just stops responding. So it is not possible to start any LogCat program at that point.

I have not changed the ROM. But this week I will probably change to a new ROM with no HTC Sense. I am hoping that could make a difference. But that is not the correct way to solve such a problem. What about other users? I am curious if other people are having the same problem.

One thing I could think of: this could be connected to the process of writing a new track point to the SD card. If for some reason this writing is interrupted by another system routine, maybe Locus doesn't get the expected acknowledge of the write command it is stuck waiting. Any way you can control this or implement a write timeout or something?

Track points are written directly to the log on the SD card, right?
==> Would it be an idea to instead write track points to a temporary file in internal memory and then write the complete track to the SD card when the recording is completed (stopped) ? Can you control this?
  •  

svartbjorn

I have done a lot more testing. Here are the new results:
- I replaced the kernal to Cyanogen Mod 7 with no HTC Sense. ==> That made zero difference: Locus recording is crashing and phone goes completely dead just as before
- I also tried Settings/Track recording/"Use MyTracks" on. No difference. ==> Crashes just as often.
- On a trip yesterday I was watching the screen, could see the position and movement on the screen, then suddenly the message "Application Locus Pro does not respond" and the phone went completely dead. Battery out.
- MyTracks is writing the tracks to the internal memory, so the issue is not related to writing points to the SD card.

Last trip while running to work this morning, I started with Locus's own recording. Phone dead after about 5 minutes. Battery out. Changed to Locus recording with "Use MyTracks". Crashed after just some few minutes. Battery out again. Then started recording with MyTracks directly (not via Locus). No crash. But no conclusion based on just one trip. However, I used MyTracks recording a lot before I discovered Locus and never experienced any crash.

CONCLUSIONS:
- The problem is not HTC Sense related.
- It is directly related to recording through Locus, being with Locus's own recording or with Locus "Use MyTracks". As long as Locus is involved, the issue is there.
- I have given up recording with Locus. I have tried absolutely everything. I have to go back to MyTracks and do all recordings with MyTracks directly (not via Locus).
- With Locus being such a brilliant GPS app on everything else, this severe crash issue should be taken very seriously and resolved.

Recording with MyTracks is not a good solution, since it doesn't leave a live track on the screen.

===> Menion: will you look into this?
  •  

svartbjorn

I have some intersting results (which are good new for Locus):
On a trip today, I used MyTracks directly to record my tracks. I had two recordings. Both caused the phone to hang! And now Locus was not invloved in the recording.

==> So this should actually prove that Locus recording is NOT the root cause of this issue. I have started thinking this is rather related to the GPS receiver and calculation of positions. It is a fact I have experienced after about dozens of recordings that the more often I store points, the sooner the phone hangs. I looked at the CPU load today: with Locus recording a point every 1s, the average CPU load was 20%, but CPU still running at minimum frequency 245 MHz. With recording a point every 10s, the load went down to 2%, but jumping up to 20% for every point (i.e. every 10 seconds). Is position calculation so CPU demanding that point writing can be interrupted and times out? Maybe this is why some users with other phone models do not experience this issue at all?

I have now set the sampling interval to 10 seconds and just have to accept that the phone will hang once in a while, but hopefully not that often.

I guess there is nothing more you can do with this issue, Menion, since this may be out of your control?
  •  

Menion

Hmm, these are good and bad news together.
By me, this have to be some problem of your phone. Really. Only what I can do is to save some CPU power. So I created new option into track recording, that allow you to hide track during recording, so it will not be computed for rendering. Maybe this could save some power.

I'm looking into code and there is nothing that should take too much CPU except of rendering item on map. Saving point on card or adding into track is really simple ...

So please try new version (I'll probably add here some testing version during today) ... if this will not help, I should add some buffer for saving points, that will save them every x second (on card) and not every new point ...
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

durian

Quote from: "menion"Hmm, these are good and bad news together.
By me, this have to be some problem of your phone. Really. Only what I can do is to save some CPU power. So I created new option into track recording, that allow you to hide track during recording, so it will not be computed for rendering. Maybe this could save some power.
hence my wish for only drawing the last n points of the recorded track ;)

-peter
  •  

Menion

yes your wish is completed :) you can now set "limited" in settings, which shows actually only last 100 points ...
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

svartbjorn

Thank you for your feedback, Menion. From what you are saying, it is my understanding that you haven't heard about this issue from other users. So, yes, may be this is something with my phone.

There is one very interesting thing I read about on the Cyanogen forum (my new ROM without HTC Sense), that some users have problems with sending MMS with this ROM, but one user reported that setting the minimum CPU frequency one step up solved the problem. The CPU needs some time to step up the frequency upon a load change, and his theory was that a too low minimum frequency didn't allow the phone to respond quickly enough to initial network traffic when sending MMS.

I have been wondering if a too slow CPU (waking up from minimum frequency) could cause point writing and new position calculations to take so long time that requests are timing out, causing the hang situations. I am guessing that the work load for GPS positioning and recording is changing quickly all the time.

---> So to test out that theory, I have now stepped up the minimum CPU frequency setting from 245 MHz to the next higher step, 384 MHz. I am now testing this by using Locus'es own track recording with 1 second interval. Need more test experiences before drawing any conclusions, but so far, so good.

I will test this through this whole week to gather some experience, before trying the new features you have been so kind to implement. Thank you very much for your support and interesting in this, Menion. Let's first see if my new CPU setting makes any difference.
  •  

Menion

Ok fine. If this will be still problem, try to use new settings. Best use "Hide" settings which will disable displaying track on map, so all CPU will be used only on storing tracks. If problem will remain, I'll be sure that problem have to be in my TrackRecording Service object that handle all stuff around track record. I'll then do some improvements there (even I don't know now, what to improve :)
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

svartbjorn

#10
I didn't need much time to find out that nothing helped, not even your new settings. But as we have talked about before, may be this is something with my phone and what I have installed.  It is a fact that I have had recording issues for a long time, but recently I have had an increasing number of cases where my phone goes completely locked and dead even when Locus is not running. I will now reformat my phone from scratch. There is something very unstable.

So, Menion, since nobody else seems to have recording issues with your latest versions (since 1.0 I think??), don't use any more effort on this. I'll reformat my phone, and then see.
  •  

Menion

#11
You're not the only one. I received today first email with similar issue. I'll point him on this topic if he have same problem. Anyway fine, looks that problem is not in displaying points but in recording itself. OK, I'll keep it be for a while until you say me that phone reinstall do not helped. Then we should do some testing like simulating GPS and similar ... good luck!
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

svartbjorn

The phone hang endless nightmare continues.

Now I have even tried this:
- different maps
- map centering on/off
- screen on/off
- minimum CPU speed stepped up one step (384MHz) and two steps (422MHz)
- recording using only Locus, only myTracks, and with both running at the same time
- different temperatures
- with/without other GPS apps at the same time
- 1s, 5s, 10s time interval between recorded points
- just having Locus showing current position without recording can cause phone hang
- screen can be on, position moving, I do not touch anything - then suddenly the error message "Application Locus not responding" and phone gets completely locked and dead

Very, very rarely I have experienced an (other) application crashing, but it always happens gracefully with no phone hang and app can be restarted. Locus is the only application that crashes brutally and causes the phone to lock up completely and I have to take out the battery.

Since I get this "Application Locus not responding" message if I have the screen on when it crashes, it seems that some of the processes that Locus started, has stopped or timed out. Since there was another thread here on the forum about arecording process that stopping for no reason. That issue was solved. But that fact that a process stopped for no reason, could it be another similar issue here?
  •  

Menion

Hmm, I really have no idea what I can do with this. You're the only one with this issue. I actual market version I did one change. I removed GPS handling from service, to static method so maybe this can do something with these crashes. Give it last chance.

Also a question. Locus crash you only during track recording? Are you using it on any other things than just track record, and if so, works fine otherwise?
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

svartbjorn

I understand most people do not experience these problems. But you forwarded to me an email from another user who had experienced exactly the same behavior and found that setting minimum frequency to 384MHz and tracking with myTracks at the same time solved his problem. That didn't make any difference for me.

1.8.8 didn't make any difference. I updated to 1.8.8 this morning before running to work and it crashed twice. I then also used min freq = 422MHz and tracked with both myTracks and Locus. Last time is crashed it was impossible to restart Locus, even after reboot. The "Recording" message kept popping up and I had to remove the cache/track_rec files to get Locus back into life.

Regarding your question if crash during recording only: I have also tried with Locus only showing the position and using myTracks for recording. Same issue. I have also experienced my phone going dead just by having Locus up and running with no recordings at all. So I now always exit Locus completely when finished. Then my phone is stable.

What about experience that both you and several other people had with the recording process that just died in version 1.7? That was something you fixed. I was wondering if a similar thing - i.e. a process that just dies - can be the case here too?

Do not worry about my problems Menion, if it is only me. But referring to the line above - if there is something similar here too, then that could point to some general issues with Locus. Just an idea, I don't know.
  •