Bug 577398

Summary: Review Request: python-meliae - Python memory usage statistics
Product: [Fedora] Fedora Reporter: Dave Malcolm <dmalcolm>
Component: Package ReviewAssignee: Thomas Spura <tomspur>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: dgregor, fedora-package-review, home, notting, sherr, tomspur
Target Milestone: ---Flags: tomspur: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: python-meliae-0.2.0-3.fc13 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-04-22 17:18:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dave Malcolm 2010-03-26 20:56:31 UTC
Spec URL: http://dmalcolm.fedorapeople.org/python-packaging/python-meliae.spec
SRPM URL: http://dmalcolm.fedorapeople.org/python-packaging/python-meliae-0.2.0-1.fc12.src.rpm
Description:
"meliae" provides a way to dump python memory usage information to a JSON disk
format, which can then be parsed into useful things like graph representations.

The name is simply a fun word (means Ash-wood Nymph).

Comment 1 Dave Malcolm 2010-03-26 21:32:58 UTC
Updated spec: http://dmalcolm.fedorapeople.org/python-packaging/python-meliae.spec
Updated SRPM: http://dmalcolm.fedorapeople.org/python-packaging/python-meliae-0.2.0-2.fc12.src.rpm

(I added a patch which fixes an assertion failure)

rpmlint output is clean:
$ rpmlint RPMS/x86_64/python-meliae-*-2* SRPMS/python-meliae-0.2.0-2.fc12.src.rpm 
3 packages and 0 specfiles checked; 0 errors, 0 warnings.

Comment 2 Dave Malcolm 2010-03-26 22:59:53 UTC
FWIW, some more information (including usage) can be seen at:
http://jam-bazaar.blogspot.com/2009/11/memory-debugging-with-meliae.html
http://jam-bazaar.blogspot.com/2010/01/meliae-020.html

Comment 3 Dennis Gregorovic 2010-03-29 16:21:13 UTC
Does this require a particular version of Python and/or Cython?

$ rpm -q python-devel Cython
python-devel-2.4.3-27.el5.x86_64
Cython-0.12.1-4.el5.x86_64
$ rpmbuild --rebuild python-meliae-0.2.0-2.fc12.src.rpm
[snip]
creating build/temp.linux-x86_64-2.4/meliae
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC -I/usr/include/python2.4 -c meliae/_scanner.c -o build/temp.linux-x86_64-2.4/meliae/_scanner.o
meliae/_scanner.c: In function '__pyx_f_6meliae_8_scanner__file_io_callback':
meliae/_scanner.c:489: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
meliae/_scanner.c: In function '__pyx_pf_6meliae_8_scanner_dump_object_info':
meliae/_scanner.c:681: warning: passing argument 1 of '_dump_object_info' from incompatible pointer type
meliae/_scanner.c:693: warning: passing argument 1 of '_dump_object_info' from incompatible pointer type
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC -I/usr/include/python2.4 -c meliae/_scanner_core.c -o build/temp.linux-x86_64-2.4/meliae/_scanner_core.o
In file included from meliae/_scanner_core.c:20:
meliae/_scanner_core.h:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before '_size_of'
meliae/_scanner_core.c:77: error: expected '=', ',', ';', 'asm' or '__attribute__' before '_basic_object_size'
meliae/_scanner_core.c:89: error: expected '=', ',', ';', 'asm' or '__attribute__' before '_var_object_size'
...

Comment 4 Dave Malcolm 2010-03-29 16:43:46 UTC
It builds OK on Fedora 12 with Cython-0.12.1-4.fc12.x86_64

The three errors appear to all relate to "Py_ssize_t", which doesn't exist yet in the Python 2.4 in RHEL5.

It's probably fixable by patching away those references in EL5 builds to ssize_t.  The relevant info from 2.6's Include/pyport.h:

/* Py_ssize_t is a signed integral type such that sizeof(Py_ssize_t) ==
 * sizeof(size_t).  C99 doesn't define such a thing directly (size_t is an
 * unsigned integral type).  See PEP 353 for details.
 */
#ifdef HAVE_SSIZE_T
typedef ssize_t		Py_ssize_t;
#elif SIZEOF_VOID_P == SIZEOF_SIZE_T
typedef Py_intptr_t	Py_ssize_t;
#else
#   error "Python needs a typedef for Py_ssize_t in pyport.h."
#endif

Comment 5 Dennis Gregorovic 2010-03-29 17:14:37 UTC
Thanks for the quick response.  Changing Py_ssize_t to ssize_t did remove a number of errors, but now I'm blocked on errors related to Sets.  I'm thinking that at this point it's probably not worth trying to backport to Python 2.4.

Comment 6 Thomas Spura 2010-04-16 18:36:43 UTC
Review:

Good:
- sources match upstream: 21846ab82299ae1e30d3123a92a05ac0
- name ok
- %build/%install ok
- %clean there
- license ok - it's GPLv3 and *NOT* GPLv3+
- Group ok
- arch ok
- koji ok:
  http://koji.fedoraproject.org/koji/taskinfo?taskID=2121545


Needswork:
- Could you be a bit more verbose in %files, to detect, if the egg was correctly build?
e.g.
%{python_sitearch}/meliae
%{python_sitearch}/meliae-*-py?.?.egg-info

- %check missing:
%check
./run_tests.py
doesn't work here, but python setup.py build --inplace doesn't either, don't know why.
python setup.py build_ext --inplace worked. Could this be a distutils/cython bug?


- Great patch comment. Is it upstream? No comment about that.

(In reply to comment #5)
> Thanks for the quick response.  Changing Py_ssize_t to ssize_t did remove a
> number of errors, but now I'm blocked on errors related to Sets.  I'm thinking
> that at this point it's probably not worth trying to backport to Python 2.4.    

See TODO.txt:
'''
8) Full cross-platform and version compatibility.

   I'd like to support python2.4+, 32/64-bit, Win/Linux/Mac. I've tested
   a couple variants, but I don't have all of them to make sure it works
   everywhere.
'''

Maybe it will be supported in the future.


###############################################################################

Only shoulds/coulds left (see Needswork).

###############################################################################


APPROVED

Comment 7 Dave Malcolm 2010-04-19 19:09:42 UTC
New Package CVS Request
=======================
Package Name: python-meliae
Short Description: Python memory usage statistics
Owners: dmalcolm
Branches: F-13 F-13
InitialCC:

Comment 8 Dave Malcolm 2010-04-19 19:10:06 UTC
New Package CVS Request
=======================
Package Name: python-meliae
Short Description: Python memory usage statistics
Owners: dmalcolm
Branches: F-12 F-13
InitialCC:

Comment 9 Dave Malcolm 2010-04-19 19:10:47 UTC
(In reply to comment #7)
Typo; meant to type "F-12 F-13" for branches.

Comment 10 Kevin Fenzi 2010-04-21 04:02:51 UTC
CVS done (by process-cvs-requests.py).

Comment 11 Fedora Update System 2010-04-22 15:49:32 UTC
python-meliae-0.2.0-3.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/python-meliae-0.2.0-3.fc13

Comment 12 Fedora Update System 2010-04-22 15:50:25 UTC
python-meliae-0.2.0-3.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/python-meliae-0.2.0-3.fc12

Comment 13 Dave Malcolm 2010-04-22 17:18:59 UTC
Thanks.

Imported and built into F-12, F-13 and devel

Comment 14 Fedora Update System 2010-10-14 06:31:08 UTC
python-meliae-0.2.0-3.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.