• C
    perf tools: Fix perf script python database export crash · 616df645
    Chris Phlipot 提交于
    Remove the union in evsel so that the database id and priv pointer can
    be used simultainously without conflicting and crashing.
    
    Detailed Description for the fixed bug follows:
    
    perf script crashes with a segmentation fault on user space tool version
    4.5.rc7.ge2857b when using the python database export API. It works
    properly in 4.4 and prior versions.
    
    the crash fist appeared in:
    
    cfc8874a ("perf script: Process cpu/threads maps")
    
    How to reproduce the bug:
    
    Remove any temporary files left over from a previous crash (if you have
    already attemped to reproduce the bug):
    
      $ rm -r test_db-perf-data
      $ dropdb test_db
    
      $ perf record timeout 1 yes >/dev/null
      $ perf script -s scripts/python/export-to-postgresql.py test_db
    
      Stack Trace:
      Program received signal SIGSEGV, Segmentation fault.
      __GI___libc_free (mem=0x1) at malloc.c:2929
      2929	malloc.c: No such file or directory.
      (gdb) bt
        at util/stat.c:122
        argv=<optimized out>, prefix=<optimized out>) at builtin-script.c:2231
        argc=argc@entry=4, argv=argv@entry=0x7fffffffdf70) at perf.c:390
        at perf.c:451
    Signed-off-by: NChris Phlipot <cphlipot0@gmail.com>
    Acked-by: NJiri Olsa <jolsa@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Fixes: cfc8874a ("perf script: Process cpu/threads maps")
    Link: http://lkml.kernel.org/r/1457500314-8912-1-git-send-email-cphlipot0@gmail.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    616df645
evsel.h 11.7 KB