Mission Planner loops endlessly analyzing dataflash log file

MP Log Analyze screen shots 23jun16.pdf (971.6 KB)
I have been trying to convert a dataflash log file to .txt for viewing/filtering/sorting in Excel. I am running MP 1.3.37. Some dataflash log files I have been able to convert successfully. The current .bin of interest has MP looping, burning CPU for hours, apparently with no progress, and not creating any files I can find. I am running Windows 7, and shut down other apps that typically consume a fair amount of memory (Outlook, IE, Excel, etc.) in order to give MP all the resources it needs to generate the .txt file. If I have other memory-hungry apps running, MP will often fail with a message about running out of memory. When I give it the whole machine, it seems to loop endlessly. Bin file of interest is 43.6mb in size. i am able to load it into MP for graphing and analysis, but it seems to stump MP re generation of .txt file, using “Auto Analysis”. Attached are screen grabs as I look around in Task Manager for insight as to what the heck MP is doing.

Kelly

MP Log Analyze screen shots 23jun16.pdf (971.6 KB)

screen shots attached.

Can you share the actual log?

Uploaded .bin and .tlog files to dropbox:

dataflash log
tlog

Kelly

can you please try the latest Mission Planner.

Happy to do so. Is there reason to believe it will solve this problem?

Kelly

Michael,

I went into the Help tab to update MP to the latest, and I can’t tell if the update was successful or not. Here is a screen grab of early in the update process:

Here is a screen grab from near the end of the update, where error messages appear. Note penultimate line “Update failed.”

I looked in the Program Files (x86) / Mission Planner install area for clues, and the only text files I found that might be helpful are attached here.

Following the attempted update, MP says it’s running 1.3.38, and it still hangs trying to analyze the dataflash log file I uploaded to dropbox, and linked to in one of my earlier posts here.

What next?

Kelly

MissionPlanner.log (170.0 KB)
ChangeLog.txt (95.9 KB)
version.txt (14 Bytes)
FirmwareHistory.txt (4.1 KB)

the log analyzer appear to have an issue. as all the internal MP function are working when I tested.

the update failed because a file was in use.
please reboot and try it again.

Sorry to be dense, but reboot and try MP log analyze again? Or reboot and try version update, then try log analyze again?

Kelly

I uninstalled Mission Planner, installed latest, confirmed it’s 1.3.38, ran test again, and dataflash log Auto Analysis still runs indefinitely without creating a file. Screen shots attached. Suggestions?

Kelly

MP uninstall and re-install.pdf (631.5 KB)

FWIW, LogAnalyzer.py from ArduPilot master passes on 57.BIN for me.

the issue lies in the fact the log analyzer uses all the available memory when loading the df log. I don’t think I can get around this shortfall.

my quick test shows that 47mb bin file using over 2gb of ram when processing.

Several thoughts:

  1. If this problem I am experiencing is due to my PC’s environment, and not MP or LogAnalyzer, I feel bad having you devs spend much time on this.
  2. How can I invoke LogAnalyzer directly? In a CMD> window? Or in the python environment? Too new to all this to know the answer to that.
  3. Give me a few bread crumbs as to what to try next, and I’ll do my best to solve it on my own.

Thanks,
Kelly

Peter,

Did you run it from within MP, or on its own?

Kelly

Well… dronekit-la doesn’t have a huge memory footprint :slight_smile: Or if it does,
that’s my bug.

From the command line, under linux.

pbarker@bluebottle:~$ /usr/bin/time -v
~/rc/ardupilot/Tools/LogAnalyzer/LogAnalyzer.py ~/57.BIN
Dataflash log analysis report for file: /home/pbarker/57.BIN
Log size: 42.63mb (1263774 lines)
Log duration: 0:17:42

Vehicle Type: ArduPlane
Firmware Version: V3.5.1 (0442c2c6)
Hardware:
Free RAM: 0


Test Results:
                   GPS:  GOOD
                   VCC:  WARN       VCC min/max diff 0.627v, should be <0.3v
[GRAPH]
         Dupe Log Data:  FAIL       Duplicate data chunks found in log
(576176 and 578585)     [GRAPH]
        Event/Failsafe:  GOOD
                 Empty:  GOOD
               Compass:  GOOD       mag_field interference within limits
(12.30%)
                                    Max mag field length (598.87) >
recommended (550.00)
              Brownout:  GOOD
            Parameters:  GOOD
          IMU Mismatch:  FAIL       Check vibration or accelerometer
calibration. (Mismatch: 1.94, WARN: 0.75, FAIL: 1.50)    [GRAPH]


The Log Analyzer is currently BETA code.
For any support or feedback on the log analyzer please email Andrew Chapman
(amchapman@gmail.com)


        Command being timed:
"/home/pbarker/rc/ardupilot/Tools/LogAnalyzer/LogAnalyzer.py
/home/pbarker/57.BIN"
        User time (seconds): 38.48
        System time (seconds): 3.50
        Percent of CPU this job got: 99%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:42.22
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 2000228
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 6
        Minor (reclaiming a frame) page faults: 696795
        Voluntary context switches: 370
        Involuntary context switches: 3280
        Swaps: 0
        File system inputs: 89888
        File system outputs: 24
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0
pbarker@bluebottle:~$

So, it looks like it is as simple as “Peter’s laptop has enough memory”.

yes, the log analyzer currently does not have any external dependency’s.
however the memory footprint as it stand at the moment means I may have to remove it from mission planner, as this will only get worse.

as a side note, mp is running python as a 32 bit process, so there is only one exe, that works everywhere, on windows.
also some of the dependency’s are 32bit.

So how do I run it standalone in Windows 7? Sorry that’s not obvious to me.
I understand 32 bit vs 64 bit, and decades ago ported a few apps from former to latter. Can the log analyzer be run standalone in a 64 bit fashion in Windows 7? I have no problem running it standalone, versus from within MP.

I understand the reasons for a one-size-fits-all script or executable for the Windows lowest common denominator. Is it simple or complex for me to get log analyzer running in a not-memory-constrained way? (Whether recompiling, porting, or simply running in a different env than current invocation method.)

Thanks,
Kelly

PS: Log Analyzer’s only command line argument needed is the name of the .bin file, right?