Summary: | media-libs/gstreamer-1.14.1: app-emulation/spice configure blocks while "checking for the appsrc GStreamer element..." when old media-libs/gst-plugins-bad-1.12.4 is installed | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Mirko Guenther <renegart> |
Component: | Current packages | Assignee: | GStreamer package maintainers <gstreamer> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | haubi, jstein, virtualization |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Mirko Guenther
2017-05-15 06:16:28 UTC
Portage 2.3.5 (python 3.4.5-final-0, default/linux/amd64/13.0, gcc-5.4.0, glibc-2.23-r3, 4.10.14-gentoo x86_64) ================================================================= System Settings ================================================================= System uname: Linux-4.10.14-gentoo-x86_64-Intel-R-_Core-TM-_i5-6300HQ_CPU_@_2.30GHz-with-gentoo-2.3 KiB Mem: 16189504 total, 13488604 free KiB Swap: 17104892 total, 17104892 free Timestamp of repository gentoo: Fri, 12 May 2017 10:22:11 +0000 sh bash 4.3_p48-r1 ld GNU ld (Gentoo 2.26.1 p1.0) 2.26.1 app-shells/bash: 4.3_p48-r1::gentoo dev-java/java-config: 2.2.0-r3::gentoo dev-lang/perl: 5.24.1-r1::gentoo dev-lang/python: 2.7.12::gentoo, 3.4.5::gentoo dev-util/cmake: 3.7.2::gentoo dev-util/pkgconfig: 0.28-r2::gentoo sys-apps/baselayout: 2.3::gentoo sys-apps/openrc: 0.24.2::gentoo sys-apps/sandbox: 2.10-r3::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69::gentoo sys-devel/automake: 1.11.6-r1::gentoo, 1.12.6::gentoo, 1.14.1::gentoo, 1.15-r2::gentoo sys-devel/binutils: 2.26.1::gentoo sys-devel/gcc: 4.9.3::gentoo, 5.4.0-r3::gentoo sys-devel/gcc-config: 1.7.3::gentoo sys-devel/libtool: 2.4.6-r3::gentoo sys-devel/make: 4.2.1::gentoo sys-kernel/linux-headers: 4.4::gentoo (virtual/os-headers) sys-libs/glibc: 2.23-r3::gentoo Repositories: gentoo location: /usr/portage sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo priority: -1000 unity-gentoo location: /home/mirgu/git/unity-gentoo masters: gentoo priority: 0 mirgu location: /home/mirgu/git/gentoo_mirgu masters: gentoo priority: 1 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps=y" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://de-mirror.org/gentoo/" LANG="de_DE.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="X a52 aac acl acpi alsa amd64 ayatana bash-completion battery berkdb bluetooth branding bzip2 cairo cdda cdr cli colord corefonts cracklib crypt cryptsetup cups cxx dbus device-mapper dhcpcd dri dts dvd dvdr eds egl emboss encode evo exif fam firefox flac fortran gdb gdbm gif git glamor gnome gnome-keyring gnome-online-accounts gpm gstreamer gtk gtk3 iconv introspection ipv6 jpeg lcms ldap libnotify libsecret lm_sensors mad mng modules mp3 mp4 mpeg mpi mtp multilib nautilus ncurses networkmanager nls nptl ntpl ogg opengl openmp pam pango pcre pdf plymouth png policykit ppds pulseaudio qml qt3support qt5 readline samba sdl seccomp session spell ssl startup-notification subversion svg systemd tcpd threads tiff truetype type3 udev udisks unicode upower usb uxa vaapi vala vdpau vorbis wifi wxwidgets x264 xattr xcb xinerama xml xv xvid xvmc zeitgeist zlib" ABI_X86="32 64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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 author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CURL_SSL="openssl" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput synaptics" KERNEL="linux" L10N="de en en-GB" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby21 ruby22" USERLAND="GNU" VIDEO_CARDS="intel i965" 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: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON ================================================================= Package Settings ================================================================= app-emulation/spice-0.12.7-r1::gentoo was built with the following: USE="(-libressl) -sasl -smartcard -static-libs" ABI_X86="64" running "gst-inspect-1.0 appsrc" as user 'portage' show following output: No protocol specified Failed to connect to Mir: Failed to connect to server socket: Datei oder Verzeichnis nicht gefunden (gst-plugin-scanner:22030): Clutter-CRITICAL **: Unable to initialize Clutter: Gdk konnte nicht initialisiert werden (gst-plugin-scanner:22030): GLib-GObject-WARNING **: cannot register existing type 'GstSdpSrc' (gst-plugin-scanner:22030): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed (gst-plugin-scanner:22030): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed (gst-plugin-scanner:22030): GStreamer-CRITICAL **: gst_element_register: assertion 'g_type_is_a (type, GST_TYPE_ELEMENT)' failed No protocol specified No protocol specified Factory Details: Rank none (0) Long-name AppSrc Klass Generic/Source Description Allow the application to feed buffers to a pipeline Author David Schleef <ds@schleef.org>, Wim Taymans <wim.taymans@gmail.com> Plugin Details: Name app Description Elements used to communicate with applications Filename /usr/lib64/gstreamer-1.0/libgstapp.so Version 1.10.3 License LGPL Source module gst-plugins-base Source release date 2017-01-30 Binary package Gentoo GStreamer ebuild Origin URL https://www.gentoo.org GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstBaseSrc +----GstAppSrc Implementierte Schnittstellen: GstURIHandler Pad Templates: SRC template: 'src' Availability: Always Capabilities: ANY Element Flags: no flags set Element Implementation: Has change_state() function: gst_base_src_change_state Element has no clocking capabilities. URI handling capabilities: Element can act as source. Supported URI protocols: appsrc Pads: SRC: 'src' Pad Template: 'src' Element Properties: name : The name of the object flags: lesbar, schreibbar String. Default: "appsrc0" parent : The parent of the object flags: lesbar, schreibbar Object of type "GstObject" blocksize : Size in bytes to read per buffer (-1 = default) flags: lesbar, schreibbar Unsigned Integer. Range: 0 - 4294967295 Default: 4096 num-buffers : Number of buffers to output before sending EOS (-1 = unlimited) flags: lesbar, schreibbar Integer. Range: -1 - 2147483647 Default: -1 typefind : Run typefind before negotiating flags: lesbar, schreibbar Boolean. Default: false do-timestamp : Apply current stream time to buffers flags: lesbar, schreibbar Boolean. Default: false caps : The allowed caps for the src pad flags: lesbar, schreibbar Caps (NULL) size : The size of the data stream in bytes (-1 if unknown) flags: lesbar, schreibbar Integer64. Range: -1 - 9223372036854775807 Default: -1 stream-type : the type of the stream flags: lesbar, schreibbar Enum "GstAppStreamType" Default: 0, "stream" (0): stream - GST_APP_STREAM_TYPE_STREAM (1): seekable - GST_APP_STREAM_TYPE_SEEKABLE (2): random-access - GST_APP_STREAM_TYPE_RANDOM_ACCESS max-bytes : The maximum number of bytes to queue internally (0 = unlimited) flags: lesbar, schreibbar Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 200000 format : The format of the segment events and seek flags: lesbar, schreibbar Enum "GstFormat" Default: 2, "bytes" (0): undefined - GST_FORMAT_UNDEFINED (1): default - GST_FORMAT_DEFAULT (2): bytes - GST_FORMAT_BYTES (3): time - GST_FORMAT_TIME (4): buffers - GST_FORMAT_BUFFERS (5): percent - GST_FORMAT_PERCENT block : Block push-buffer when max-bytes are queued flags: lesbar, schreibbar Boolean. Default: false is-live : Whether to act as a live source flags: lesbar, schreibbar Boolean. Default: false min-latency : The minimum latency (-1 = default) flags: lesbar, schreibbar Integer64. Range: -1 - 9223372036854775807 Default: -1 max-latency : The maximum latency (-1 = unlimited) flags: lesbar, schreibbar Integer64. Range: -1 - 9223372036854775807 Default: -1 emit-signals : Emit need-data, enough-data and seek-data signals flags: lesbar, schreibbar Boolean. Default: true min-percent : Emit need-data when queued bytes drops below this percent of max-bytes flags: lesbar, schreibbar Unsigned Integer. Range: 0 - 100 Default: 0 current-level-bytes : The number of currently queued bytes flags: lesbar Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 duration : The duration of the data stream in nanoseconds (GST_CLOCK_TIME_NONE if unknown) flags: lesbar, schreibbar Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 18446744073709551615 Element Signals: "need-data" : void user_function (GstElement* object, guint arg0, gpointer user_data); "enough-data" : void user_function (GstElement* object, gpointer user_data); "seek-data" : gboolean user_function (GstElement* object, guint64 arg0, gpointer user_data); Element Actions: "push-buffer" : GstFlowReturn user_function (GstElement* object, GstBuffer* arg0); "push-sample" : GstFlowReturn user_function (GstElement* object, GstSample* arg0); "end-of-stream" : GstFlowReturn user_function (GstElement* object); *When export DISPLAY=:0 the configure script works* Was $DISPLAY set to an invalid value? I cannot reproduce when compiling in a stage-3 (without unset DISPLAY variable). Same here in an "emerge --emptytree" on amd64 while at >>> Emerging (1216 of 1354) app-emulation/spice-0.14.0-r2::gentoo to be updated from 0.14.0-r1, having USE="gstreamer -libressl -lz4 -sasl -smartcard -static-libs" media-libs/gst* packages updated right before were (from 1.12.4): >>> Emerging (1082 of 1354) media-libs/gstreamer-1.14.1::gentoo >>> Installing (1082 of 1354) media-libs/gstreamer-1.14.1::gentoo >>> Emerging (1211 of 1354) media-libs/gst-plugins-base-1.14.1::gentoo >>> Installing (1211 of 1354) media-libs/gst-plugins-base-1.14.1::gentoo >>> Emerging (1215 of 1354) media-libs/gst-plugins-good-1.14.1::gentoo >>> Installing (1215 of 1354) media-libs/gst-plugins-good-1.14.1::gentoo AFAICS, the processes involved are: UID PID PPID C STIME TTY TIME CMD root 6551 31136 0 Aug27 pts/5 00:08:59 /usr/bin/python3.5 -b /usr/lib/python-exec/python3.5/emerge -qe @system @world portage 480 6551 0 00:24 pts/5 00:00:00 [app-emulation/spice-0.14.0-r2] sandbox /dev/shm/portage/._portage_reinstall_.rmm4jbm1/bin/ebuild.sh configure portage 481 480 0 00:24 pts/5 00:00:00 /bin/bash /dev/shm/portage/._portage_reinstall_.rmm4jbm1/bin/ebuild.sh configure portage 498 481 0 00:24 pts/5 00:00:00 /bin/bash /dev/shm/portage/._portage_reinstall_.rmm4jbm1/bin/ebuild.sh configure portage 578 498 0 00:24 pts/5 00:00:00 /bin/sh ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/spice-0.14.0-r2 --htmldir=/usr/share/doc/spice-0.14.0-r2/html --libdir=/usr/lib64 --disable-static --disable-lz4 --without-sasl --disable-smartcard --enable-gstreamer=1.0 --disable-celt051 portage 1557 578 0 00:24 pts/5 00:00:00 /usr/bin/gst-inspect-1.0 appsrc portage 1558 1557 0 00:24 pts/5 00:00:00 /usr/lib64/gstreamer-1.0/gst-plugin-scanner -l /usr/bin/gst-inspect-1.0 It turns out that it is gst-plugin-scanner waiting for some mutex, and that '/usr/bin/gst-inspect-1.0 appsrc' does run the 'gst-plugin-scanner' only if "~/.cache/gstreamer-1.0/registry.x86_64.bin" is missing - as it is the case for 'portage' user. When I remove my own ~/.cache/gstreamer-1.0/, gst-inspect-1.0 does hang as well. I'm going to kill that now to finish my "emerge --emptytree @world" - let's see if I can reproduce once rebooted. (In reply to Michael Haubenwallner from comment #4) > media-libs/gst* packages updated right before were (from 1.12.4): > >>> Emerging (1082 of 1354) media-libs/gstreamer-1.14.1::gentoo > >>> Installing (1082 of 1354) media-libs/gstreamer-1.14.1::gentoo > >>> Emerging (1211 of 1354) media-libs/gst-plugins-base-1.14.1::gentoo > >>> Installing (1211 of 1354) media-libs/gst-plugins-base-1.14.1::gentoo > >>> Emerging (1215 of 1354) media-libs/gst-plugins-good-1.14.1::gentoo > >>> Installing (1215 of 1354) media-libs/gst-plugins-good-1.14.1::gentoo Note that media-libs/gst-plugins-bad-1.12.4 update to 1.14.1 is still pending, scheduled after app-emulation/spice in 'emerge --resume'. Now since media-libs/gst-plugins-bad-1.14.1 is updated things do work again. I'd wonder if there's a way in RDEPEND, to get media-libs/gst-plugins-bad updated along media-libs/gstreamer before packages (not depending on media-libs/gst-plugins-bad) subsequently are merged during a larger world update. Are you sure this isn't just coincidence, with the freezing being random and it just didn't happen randomly after you got -bad upgraded, but could happen again after a couple tries? Doesn't seem so.
I've reproduced the hang by replaying the gstreamer upgrade path (from 1.12.4 to 1.14.1) seen during my world upgrade:
$ emerge -C gstreamer gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-gtk
$ emerge -1 '~gstreamer-1.12.4' '~gst-plugins-bad-1.12.4' '~gst-plugins-base-1.12.4' '~gst-plugins-good-1.12.4'
$ rm -rf ~/.cache/gstreamer-1.0 ; gst-inspect-1.0 appsrc
PASS
root$ emerge -pv1 spice gst-plugins-bad
[ebuild U ] media-libs/gstreamer-1.14.1:1.0::gentoo [1.12.4:1.0::gentoo]
[ebuild U ] media-libs/gst-plugins-base-1.14.1:1.0::gentoo [1.12.4:1.0::gentoo]
[ebuild R ] app-emulation/spice-0.14.0-r2::gentoo
[ebuild U ] media-libs/gst-plugins-good-1.14.1:1.0::gentoo [1.12.4:1.0::gentoo]
[ebuild N ] media-plugins/gst-plugins-gtk-1.14.1:1.0::gentoo
[ebuild U ] media-libs/gst-plugins-bad-1.14.1-r1:1.0::gentoo [1.12.4:1.0::gentoo]
[blocks b ] <media-libs/gst-plugins-bad-1.13.1:1.0 ("<media-libs/gst-plugins-bad-1.13.1:1.0" is blocking media-plugins/gst-plugins-gtk-1.14.1, media-libs/gstreamer-1.14.1, media-libs/gst-plugins-base-1.14.1)
Here, app-emulation/spice would be merged before gst-plugins-good, but in my world-emptytree update the order was:
>>> Emerging (1082 of 1354) media-libs/gstreamer-1.14.1::gentoo
>>> Installing (1082 of 1354) media-libs/gstreamer-1.14.1::gentoo
>>> Emerging (1211 of 1354) media-libs/gst-plugins-base-1.14.1::gentoo
>>> Installing (1211 of 1354) media-libs/gst-plugins-base-1.14.1::gentoo
>>> Emerging (1215 of 1354) media-libs/gst-plugins-good-1.14.1::gentoo
>>> Installing (1215 of 1354) media-libs/gst-plugins-good-1.14.1::gentoo
>>> Emerging (1216 of 1354) app-emulation/spice-0.14.0-r2::gentoo
>>> Failed to emerge app-emulation/spice-0.14.0-r2, Log file:
Ok, one by one using --nodeps: some need FEATURES=-protect-owned, as emerge won't know about subsequent unmerge of old gst-plugins-bad:
$ FEATURES=-protect-owned emerge -1 --nodeps gstreamer
$ rm -rf ~/.cache/gstreamer-1.0 ; gst-inspect-1.0 appsrc
GOOD
$ FEATURES=-protect-owned emerge -1 gst-plugins-base --nodeps
$ rm -rf ~/.cache/gstreamer-1.0 ; gst-inspect-1.0 appsrc
GOOD
$ emerge -1 gst-plugins-good
$ rm -rf ~/.cache/gstreamer-1.0 ; gst-inspect-1.0 appsrc
HANG
$ FEATURES=-protect-owned emerge -1 gst-plugins-gtk --nodeps
$ rm -rf ~/.cache/gstreamer-1.0 ; gst-inspect-1.0 appsrc
HANG
$ emerge -1 gst-plugins-bad
$ rm -rf ~/.cache/gstreamer-1.0 ; gst-inspect-1.0 appsrc
GOOD
|