linux/tools/perf/scripts/python
Adrian Hunter fd931b2e23 perf scripts python: exported-sql-viewer.py: Fix Array TypeError
The 'Array' class is present in more than one python standard library.
In some versions of Python 3, the following error occurs:

Traceback (most recent call last):
  File "tools/perf/scripts/python/exported-sql-viewer.py", line 4702, in <lambda>
    reports_menu.addAction(CreateAction(label, "Create a new window displaying branch events", lambda a=None,x=dbid: self.NewBranchView(x), self))
  File "tools/perf/scripts/python/exported-sql-viewer.py", line 4727, in NewBranchView
    BranchWindow(self.glb, event_id, ReportVars(), self)
  File "tools/perf/scripts/python/exported-sql-viewer.py", line 3208, in __init__
    self.model = LookupCreateModel(model_name, lambda: BranchModel(glb, event_id, report_vars.where_clause))
  File "tools/perf/scripts/python/exported-sql-viewer.py", line 343, in LookupCreateModel
    model = create_fn()
  File "tools/perf/scripts/python/exported-sql-viewer.py", line 3208, in <lambda>
    self.model = LookupCreateModel(model_name, lambda: BranchModel(glb, event_id, report_vars.where_clause))
  File "tools/perf/scripts/python/exported-sql-viewer.py", line 3124, in __init__
    self.fetcher = SQLFetcher(glb, sql, prep, self.AddSample)
  File "tools/perf/scripts/python/exported-sql-viewer.py", line 2658, in __init__
    self.buffer = Array(c_char, self.buffer_size, lock=False)
TypeError: abstract class

This apparently happens because Python can be inconsistent about which
class of the name 'Array' gets imported. Fix by importing explicitly by
name so that only the desired 'Array' gets imported.

Fixes: 8392b74b57 ("perf scripts python: exported-sql-viewer.py: Add ability to display all the database tables")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: stable@vger.kernel.org
Link: http://lore.kernel.org/lkml/20210521092053.25683-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2021-05-21 16:30:53 -03:00
..
bin perf flamegraph: Use /bin/bash for report and record scripts 2020-05-05 16:35:32 -03:00
Perf-Trace-Util perf tools: Remove perf.h from source files not needing it 2019-08-29 17:38:32 -03:00
check-perf-trace.py perf script python: add Python3 support to check-perf-trace.py 2019-03-06 18:10:46 -03:00
compaction-times.py perf script python: Remove mixed indentation 2019-03-06 18:09:14 -03:00
event_analyzing_sample.py perf script python: Add Python3 support to event_analyzing_sample.py 2019-03-06 18:11:11 -03:00
export-to-postgresql.py perf scripts python: export-to-postgresql.py: Fix struct.pack() int argument 2020-07-03 08:15:02 -03:00
export-to-sqlite.py perf scripts python: export-to-sqlite.py: Export switch events 2019-07-10 12:37:35 -03:00
exported-sql-viewer.py perf scripts python: exported-sql-viewer.py: Fix Array TypeError 2021-05-21 16:30:53 -03:00
failed-syscalls-by-pid.py perf script python: Remove mixed indentation 2019-03-06 18:09:14 -03:00
flamegraph.py perf flamegraph: Explicitly set utf-8 encoding 2020-06-22 13:30:55 -03:00
futex-contention.py perf script: Add min, max to futex-contention output, in addition to avg 2020-09-23 12:58:53 -03:00
intel-pt-events.py perf script python: Add Python3 support to intel-pt-events.py 2019-03-06 18:12:33 -03:00
mem-phys-addr.py perf script python: Remove mixed indentation 2019-03-06 18:09:14 -03:00
net_dropmonitor.py perf script python: Remove mixed indentation 2019-03-06 18:09:14 -03:00
netdev-times.py perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
powerpc-hcalls.py perf script python: Add Python3 support to powerpc-hcalls.py 2019-02-25 17:16:57 -03:00
sched-migration.py perf script python: Remove mixed indentation 2019-03-06 18:09:14 -03:00
sctop.py perf script python: Remove mixed indentation 2019-03-06 18:09:14 -03:00
stackcollapse.py perf script python: Remove mixed indentation 2019-03-06 18:09:14 -03:00
stat-cpi.py perf script python: Add Python3 support to stat-cpi.py 2019-02-25 17:17:07 -03:00
syscall-counts-by-pid.py perf script python: Remove mixed indentation 2019-03-06 18:09:14 -03:00
syscall-counts.py perf script python: Remove mixed indentation 2019-03-06 18:09:14 -03:00