Description of problem: it is not possible to rebuild src.rpm Version-Release number of selected component (if applicable): pypy-1.5-1.fc15.src.rpm How reproducible: 100% Steps to Reproduce: 1.rpmbuild --rebuild pypy-1.5-1.fc15.src.rpm 2. 3. Actual results: ... [Timer] Timings: [Timer] annotate --- 1284.8 s [Timer] rtype_lltype --- 897.6 s [Timer] pyjitpl_lltype --- 897.1 s [Timer] backendopt_lltype --- 235.0 s [Timer] stackcheckinsertion_lltype --- 47.5 s [Timer] database_c --- 332.0 s [Timer] source_c --- 456.3 s [Timer] =========================================== [Timer] Total: --- 4150.3 s [translation:ERROR] Error: [translation:ERROR] Traceback (most recent call last): [translation:ERROR] File "translate.py", line 306, in main [translation:ERROR] drv.proceed(goals) [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/driver.py", line 810, in proceed [translation:ERROR] return self._execute(goals, task_skip = self._maybe_skip()) [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/tool/taskengine.py", line 116, in _execute [translation:ERROR] res = self._do(goal, taskcallable, *args, **kwds) [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/driver.py", line 286, in _do [translation:ERROR] res = func() [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/driver.py", line 530, in task_source_c [translation:ERROR] exe_name=exe_name) [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/c/genc.py", line 270, in generate_source [translation:ERROR] defines = defines) [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/c/genc.py", line 961, in gen_source_standalone [translation:ERROR] sg.gen_readable_parts_of_source(f) [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/c/genc.py", line 820, in gen_readable_parts_of_source [translation:ERROR] for node, impl in nodeiter: [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/c/genc.py", line 706, in subiter [translation:ERROR] impl = '\n'.join(list(node.implementation())).split('\n') [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/c/node.py", line 862, in implementation [translation:ERROR] for s in self.funcgen_implementation(funcgen): [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/c/node.py", line 871, in funcgen_implementation [translation:ERROR] funcgen.implementation_begin() [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/c/funcgen.py", line 157, in implementation_begin [translation:ERROR] self.collect_var_and_types() [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/translator/c/funcgen.py", line 139, in collect_var_and_types [translation:ERROR] seen[v] = True [translation:ERROR] File "/home/sergeil/desk/src/BUILD/pypy-1.5-src/pypy/tool/identity_dict.py", line 20, in __setitem__ [translation:ERROR] self._keys[id(arg)] = arg [translation:ERROR] MemoryError [translation] batch mode, not calling interactive helpers Expected results: rebuilding produce new set of rpm packages Additional info: 4Go of RAM + 4Go of swap
Some more info about environment [sergeil@ua-dudn00000 download]$ cat /etc/issue Fedora release 15 (Lovelock) Kernel \r on an \m (\l) [sergeil@ua-dudn00000 download]$ uname -r 2.6.40.3-0.fc15.i686.PAE [sergeil@ua-dudn00000 download]$ top top - 18:05:18 up 4:46, 4 users, load average: 0.01, 0.07, 0.36 Tasks: 160 total, 1 running, 159 sleeping, 0 stopped, 0 zombie Cpu(s): 6.7%us, 0.3%sy, 0.0%ni, 92.9%id, 0.0%wa, 0.1%hi, 0.0%si, 0.0%st Mem: 3911676k total, 815648k used, 3096028k free, 41808k buffers Swap: 4605948k total, 0k used, 4605948k free, 353112k cached [sergeil@ua-dudn00000 download]$ rpm -qa | grep pypy pypy-1.5-1.fc15.i686 pypy-libs-1.5-1.fc15.i686 [sergeil@ua-dudn00000 download]$ rpm -qa | grep python rpm-python-4.9.0-9.fc15.i686 python-lockfile-0.8-2.fc15.noarch python-tempita-0.4-7.fc15.noarch python-simplejson-2.1.6-1.fc15.1.i686 python-markupsafe-0.11-3.fc15.i686 python-meh-0.11-2.fc15.noarch farsight2-python-0.0.25-1.fc15.i686 python-slip-gtk-0.2.17-1.fc15.noarch python-iwlib-0.1-6.fc15.i686 plasma-scriptengine-python-4.6.5-2.fc15.i686 python-devel-2.7.1-7.fc15.i686 mod_python-3.3.1-16.fc15.i686 python-sexy-0.1.9-14.fc15.i686 gamin-python-0.1.10-9.fc15.i686 libsemanage-python-2.0.46-4.fc15.i686 python-chardet-2.0.1-3.fc15.noarch at-spi-python-1.32.0-5.fc15.i686 python-2.7.1-7.fc15.i686 spice-gtk-python-0.5-6.fc15.i686 python-slip-dbus-0.2.17-1.fc15.noarch python-libs-2.7.1-7.fc15.i686 python-pycurl-7.19.0-9.fc15.i686 python-IPy-0.75-1.fc15.noarch python-ldap-2.3.12-2.fc15.i686 python-feedparser-5.0.1-1.fc15.noarch python-BeautifulSoup-3.2.0-2.fc15.noarch python-GnuPGInterface-0.3.2-8.fc15.noarch gnome-python2-2.28.1-4.fc15.i686 python-ethtool-0.7-2.fc15.i686 python-xlib-0.15-0.5.rc1.fc15.noarch python-imaging-1.1.7-4.fc15.i686 python-telepathy-0.15.19-3.fc15.noarch policycoreutils-python-2.0.86-7.fc15.i686 gnome-python2-gnomevfs-2.28.1-4.fc15.i686 python-boto-1.9b-7.fc15.noarch newt-python-0.52.12-3.fc15.i686 cracklib-python-2.8.18-2.fc15.i686 python-cups-1.9.57-1.fc15.i686 kross-python-4.6.5-1.fc15.i686 gnome-python2-libegg-2.25.3-33.fc15.i686 python-mako-0.3.6-2.fc15.noarch libuser-python-0.57.2-1.fc15.i686 gnome-python2-gnome-2.28.1-4.fc15.i686 gnome-python2-libwnck-2.32.0-4.fc15.i686 python-httplib2-0.6.0-5.fc15.noarch gnome-python2-extras-2.25.3-33.fc15.i686 gstreamer-python-0.10.19-2.fc15.i686 libproxy-python-0.4.7-1.fc15.noarch setools-libs-python-3.3.7-12.fc15.i686 audit-libs-python-2.1.2-1.fc15.i686 gtk-vnc-python-0.4.3-1.fc15.i686 python-slip-0.2.17-1.fc15.noarch python-crypto-2.3-4.fc15.i686 python-paste-1.7.5.1-2.fc15.noarch libselinux-python-2.0.99-4.fc15.i686 gnome-python2-gconf-2.28.1-4.fc15.i686 python-twisted-core-10.2.0-2.fc15.i686 python-lxml-2.3-1.fc15.i686 python-enum-0.4.4-3.fc15.noarch compizconfig-python-0.9.4-1.fc15.i686 python-beaker-1.5.3-8.fc15.noarch python-cloudfiles-1.7.9.1-1.fc15.noarch gnome-python2-gtkhtml2-2.25.3-33.fc15.i686 notify-python-0.1.1-18.fc15.i686 python-urlgrabber-3.9.1-10.fc15.noarch python-virtkey-0.50-9.fc15.i686 python-kitchen-1.0.0-1.fc15.noarch python-zope-interface-3.6.1-8.fc15.i686 python-smbc-1.0.11-1.fc15.i686 boost-python-1.46.0-3.fc15.i686 python-bugzilla-0.6.1-4.fc15.noarch python-decorator-3.3.0-2.fc15.noarch gnome-python2-gnomekeyring-2.32.0-4.fc15.i686 libxslt-python-1.1.26-8.fc15.i686 dbus-python-0.83.0-8.fc15.i686 gnome-python2-canvas-2.28.1-4.fc15.i686 python-iniparse-0.4-3.fc15.noarch abrt-addon-python-2.0.3-1.fc15.i686 gnome-python2-desktop-2.32.0-4.fc15.i686 gnome-python2-bonobo-2.28.1-4.fc15.i686 libxml2-python-2.7.8-6.fc15.i686
The RPython to C translation needs a _lot_ of RAM. Upstream says "As of March 2011, you will need at least 2 GB of memory on a 32-bit machine and 4GB on a 64-bit machine.": http://doc.pypy.org/en/latest/getting-started-python.html#translating-the-pypy-python-interpreter and it may be that that estimate is out of date. Also, I suspect that this downstream-only patch: Patch4: pypy-1.5-more-readable-c-code.patch adds to the memory requirement. In my local builds on this x86_64 box, I've seen pypy use at least 7-8GB of RAM,(this box has 8GB, and was driven deep into swap); builds can take 2-3 hours IIRC. AFAIK, there's no way to specify: BuildMemoryRequires: 6GB or somesuch within a specfile. It may help the RAM requirements to do the translation with PyPy, rather than CPython: see the: %global use_self_when_building 0 variable within the specfile (obviously you need to have already done it once). There are some other notes on that upstream page on tweaking the build. Other than that, reducing the build-time RAM requirements significantly would require major reworking of the translation toolchain. If you're looking to hack on PyPy, have a look at the non-translated version upstream: http://doc.pypy.org/en/latest/getting-started-python.html#running-the-python-interpreter-without-translation That's what upstream do when working on the code. Hope this is helpful. Closing this out "CANTFIX" (sorry).