Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 424259 - sys-apps/portage-2.1.11.3: java.lang.IllegalArgumentException: Signal already used by VM: SIGUSR1 (Jython 2.7a2)
Summary: sys-apps/portage-2.1.11.3: java.lang.IllegalArgumentException: Signal already...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 423075
  Show dependency tree
 
Reported: 2012-06-30 17:44 UTC by wbrana
Modified: 2022-11-22 06:21 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wbrana 2012-06-30 17:44:18 UTC
emerge fails if started by Jython 2.7

Traceback (most recent call last):
  File "/usr/bin/emerge", line 29, in <module>
    signal.signal(signal.SIGUSR1, debug_signal)
  File "/usr/local/lib64/jython-2.7/Lib/signal.py", line 135, in signal
    prev = sun.misc.Signal.handle(signal, JythonSignalHandler(action))
	at sun.misc.Signal.handle(Signal.java:149)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)

java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Signal already used by VM: SIGUSR1

java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2012-07-02 10:35:30 UTC
Please post your `emerge --info' output in a comment.
Comment 2 wbrana 2012-07-02 11:55:40 UTC
Jython is incomplete to run emerge even if I disable line
signal.signal(signal.SIGUSR1, debug_signal)

Portage 2.1.11.3 (hardened/linux/amd64, gcc-4.4.7, glibc-2.14.1-r3, 3.4.4-hardened x86_64)
=================================================================
System uname: Linux-3.4.4-hardened-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q6600_@_2.40GHz-with-gentoo-2.1
Timestamp of tree: Sat, 30 Jun 2012 00:45:01 +0000
ccache version 3.1.7 [enabled]
app-shells/bash:          4.2_p29
dev-java/java-config:     2.1.12
dev-lang/python:          2.7.3-r2, 3.2.3-r1
dev-util/ccache:          3.1.7
dev-util/cmake:           2.8.8-r3
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.8.3-r1
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.5, 1.12.1
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.4.7, 4.7.1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.4 (virtual/os-headers)
sys-libs/glibc:           2.14.1-r3
Repositories: gentoo x-portage
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA PUEL dlj-1.1 ETQW RTCW-ETEULA googleearth AdobeFlash-10.3 Oracle-BCLA-JavaSE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind /var/lib/hsqldb"
CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/mnt/md3/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg ccache config-protect-if-modified distlocks ebuild-locks fixlafiles metadata-transfer news parallel-fetch parse-eapi-ebuild-head protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv webrsync-gpg"
FFLAGS="-O2 -pipe"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
LINGUAS="en_GB"
MAKEOPTS="-j2"
PKGDIR="/mnt/md3/cache/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/mnt/md3/cache"
PORTDIR="/mnt/md3/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acpi aio alsa amd64 amr apng berkdb bzip2 cairo caps chm cli consolekit cracklib crypt cxx dbus device-mapper dlz dri dts dvb eix enca exif extensions extras faad ffmpeg flac gdbm glib glibc-omitfp glitz gnutls gtk gudev handbook hardened iconv jit jpeg jpeg2k justify lcms lm_sensors logrotate lzma matroska mikmod minizip mmx mng modplug modules mp3 mpeg mudflap multilib mysqli ncurses nodrm nptl nsplugin ogg openal opengl openmp pam pax_kernel pcre pdf pic png pppd qt qt3support qt4 rar readline rtsp sandbox schroedinger session slang spell sqlite sqlite3 sse sse2 sse3 ssl ssse3 symlink theora threads tiff truetype unicode urandom usb userpriv v4l2 vlc vorbis vpx x264 xcb xcomposite xml xorg xv xvid zlib" ALSA_CARDS="virtuoso" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en_GB" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 3 Zac Medico gentoo-dev 2012-07-02 19:20:45 UTC
The SIGUSR1 issue is now fixed in git:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=7d6a0bc558bdfe5c3ca2b6e1638d1d4f31d2d8e1

NOTE: Generally, the unit tests are the best way to begin testing a new python platform. For example, run the following command from a checkout of the portage master branch:

  jython2.7 pym/portage/tests/runTests

You can checkout the master branch from here:

  http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git

Currently, the tests give the following error:

Traceback (most recent call last):
  File "pym/portage/tests/runTests", line 34, in <module>
    import portage
  File "pym/portage/__init__.py", line 295, in <module>
    _os_overrides = {
AttributeError: 'module' object has no attribute 'mkfifo'

It seems that the os.mkfifo() function is missing, so somebody may want to report that here:

  http://wiki.python.org/jython/ReportingBugs
Comment 4 Zac Medico gentoo-dev 2012-07-02 22:09:57 UTC
This is fixed in 2.1.11.4 and 2.2.0_alpha115.
Comment 5 Zac Medico gentoo-dev 2012-07-06 18:21:11 UTC
It seems that os.fork(), os.pipe(), pty module, subprocess module are also missing.
Comment 6 Fabian Groffen gentoo-dev 2012-07-06 18:59:56 UTC
that's all pretty unix-specific stuff, JVMs don't support that for a reason ;)
Comment 7 Zac Medico gentoo-dev 2012-07-06 20:08:43 UTC
Actually, subprocess appears to be working in jython-2.7a2. At least with that, it's conceivable that we could get portage running.
Comment 8 Zac Medico gentoo-dev 2012-10-18 16:28:17 UTC
The biggest blocker for Jython support is the lack of the fcntl module and os.O_NONBLOCK attribute, which portage relies on heavily in order to implement asynchronous non-blocking IO. Without fcntl + os.O_NONBLOCK, I guess we'd have to use threads with blocking IO, which isn't very desirable.
Comment 9 wbrana 2012-10-18 16:32:53 UTC
Jython is irrelevant because of low performance.
Comment 10 Larry the Git Cow gentoo-dev 2022-11-22 06:21:49 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=d9c1405f941ee131c15fdd24a46fcd6536773068

commit d9c1405f941ee131c15fdd24a46fcd6536773068
Author:     Oskari Pirhonen <xxc3ncoredxx@gmail.com>
AuthorDate: 2022-11-21 06:28:24 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2022-11-22 06:21:45 +0000

    Remove Jython compat
    
    Jython is stuck in Python 2-land. Remove Jython compatibility code.
    
    Bug: https://bugs.gentoo.org/424259
    Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
    Closes: https://github.com/gentoo/portage/pull/942
    Signed-off-by: Sam James <sam@gentoo.org>

 NEWS                                                    |  2 ++
 bin/ebuild                                              | 10 ++--------
 bin/ebuild-ipc.py                                       | 10 ++--------
 bin/egencache                                           | 10 ++--------
 bin/emerge                                              | 10 ++--------
 lib/portage/tests/process/test_PopenProcess.py          |  9 ++++++---
 .../tests/process/test_PopenProcessBlockingIO.py        |  7 +++++--
 lib/portage/tests/runTests.py                           | 10 ++--------
 lib/portage/util/_async/PipeReaderBlockingIO.py         | 17 ++++++++---------
 9 files changed, 31 insertions(+), 54 deletions(-)