Messages in this thread | | | Date | Thu, 27 Dec 2018 09:54:51 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH] perf python: Do not force closing original perf descriptor in evlist.get_pollfd |
| |
Em Thu, Dec 27, 2018 at 09:06:38AM +0100, Jiri Olsa escreveu: > On Wed, Dec 26, 2018 at 12:21:21PM +0100, Jiri Olsa wrote: > > Ondřej reported that when compiled with python3, the python > > extension regress in evlist.get_pollfd function behaviour. > > > > The evlist.get_pollfd creates file objects from evlist's fds > > and returns them in the list. The python3 version also sets > > them to 'close the original descriptor' when the object die > > (is closed), by passing True via 'closefd' arg in PyFile_FromFd > > call. > > > > The python's closefd doc says: > > If closefd is False, the underlying file descriptor will be kept open > > when the file is closed. > > > > That's why following line in python3 closes all evlist fds: > > evlist.get_pollfd() > > > > the returned list is immediately destroyed and that takes > > down the original events fds. > > > > Passing closefd as False to PyFile_FromFd to fix this. > > > > Reported-by: Ondřej Lysoněk <olysonek@redhat.com> > > Link: http://lkml.kernel.org/n/tip-ru9hmsaliew8p01kr0050mvg@git.kernel.org > > Signed-off-by: Jiri Olsa <jolsa@kernel.org> > > oops, forgot to add.. and cc-ing Jaroslav Škarvada > > Fixes: 66dfdff03d19 ("perf tools: Add Python 3 support")
Thanks, added the Fixes: and Cc: Jaroslav,
- Arnaldo
| |