xrmx / bootchart

merge of bootchart-collector and pybootchartgui
GNU General Public License v2.0
233 stars 88 forks source link

Can't find bootchart output in /tmp/bootchart.fTQHTlD3rq - aborting #51

Closed Max-E closed 10 years ago

Max-E commented 10 years ago

I am attempting to run bootchartd for just a few seconds so I can see a snapshot of the processes on my system. It works OK with the 0.14.5 stable release, but not with the latest Git revision

Operating System: Linux Mint 16 with MATE, 64-bit, fully updated as of July 1 2014

Install process:

    make clean
    sudo PY_SITEDIR=/usr/lib/python2.7/dist-packages/ make install

Running bootchartd:

    sudo bootchartd start
    sleep 3
    sudo bootchartd stop

Expected results: A chart is created in /var/log/bootchart.png.

Actual results: When I run bootchartd stop, it exits with an error message similar to "Can't find bootchart output in /tmp/bootchart.fTQHTlD3rq - aborting", and the chart is not created.

Versions affected: I am able to use git-bisect to prove that the first commit that exhibits this behavior is 36721eb5d3f42a880ff49b99aa889d5d22459228. Although I have not tried them all, I think any commits newer than that are also affected, including current master. The previous commit, 89cee25e3cd7c472529c3e544c768129e33f92b6, seems to work as expected. However, looking at the actual changes between these two commits, it appears that the commit just enabled some extra assertions, so there may be a deeper underlying problem that goes back further. On the other hand, 89cee25e3cd7c472529c3e544c768129e33f92b6 was able to produce a usable and correct boot chart.

Other information: It looks like the tmp directories are being left behind when bootchartd stop fails. If you believe the contents of those directories would be useful to you, I can upload them somewhere and get them to you. Also, here is the script I used when bisecting:

    #! /bin/sh

    make clean
    sudo PY_SITEDIR=/usr/lib/python2.7/dist-packages/ make install
    sudo rm -f /var/log/bootchart.tgz /var/log/bootchart.png
    sudo bootchartd start
    sleep 3
    sudo bootchartd stop >/tmp/testwarning && success=1 || success=0 
    if [ "$success" = "0" ] ; then
            grep "Can't find bootchart output in " /tmp/testwarning >/dev/null && cmd=bad || cmd=skip
    else
            cmd=good
    fi
    cp /var/log/bootchart.png .
    echo git bisect $cmd
    git bisect $cmd
xrmx commented 10 years ago

Thanks for nice analysis, the bisect result looks strange though 36721eb does only logging changes. Does removing the assert make a difference?

xrmx commented 10 years ago

Thanks a lot Max!