Opened 10 years ago

Closed 10 years ago

#44253 closed defect (worksforme)

gtk2 @2.24.23 stuck during install

Reported by: frederic.stark@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: gtk2

Description (last modified by neverpanic (Clemens Lang))

Each time I try to install gtk2, it is stuck forever in "---> Building gtk2" with g-ir-scanner using 100% cpu. This happens even with -b for binray install. It makes install of anything that depends on gtk2 impossible. I let it ran several hours with no discernable change.

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python /opt/local/bin/g-ir-scanner --add-include-path=../gdk --namespace=Gtk --nsversion=2.0 --libtool=/bin/sh ../libtool --include=Atk-1.0 --include=Gdk-2.0 --library=libgtk-x11-2.0.la --warn-all --add-include-path=../gdk --add-include-path=../gdk/x11 -DG_LOG_DOMAIN="Gtk" -DGTK_LIBDIR="/opt/local/lib" -DGTK_DATADIR="/opt/local/share" -DGTK_DATA_PREFIX="/opt/local" -DGTK_SYSCONFDIR="/opt/local/etc" -DGTK_VERSION="2.24.23" -DGTK_BINARY_VERSION="2.10.0" -DGTK_HOST="x86_64-apple-darwin13.0.0" -DGTK_COMPILATION -DGTK_PRINT_BACKENDS="file,cups" -DGTK_PRINT_PREVIEW_COMMAND="evince --unlink-tempfile --preview --print-settings %s %f" -I.. -I../gtk -I.. -I../gdk -I../gdk -DGTK_DISABLE_DEPRECATED -DGTK_FILE_SYSTEM_ENABLE_UNSUPPORTED -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED -D_REENTRANT -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -DG_DISABLE_CAST_CHECKS -D_REENTRANT -I/opt/local/include/pango-1.0 -I/opt/local/include/gio-unix-2.0/ -I/opt/local/include -I/opt/local/include/cairo -I/opt/local/include/atk-1.0 -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/pango-1.0 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/freetype2 -UGDK_DISABLE_DEPRECATED -UGTK_DISABLE_DEPRECATED -DGTK_TEXT_USE_INTERNAL_UNSUPPORTED_API gtk.h gtkaboutdialog.h gtkaccelgroup.h gtkaccellabel.h gtkaccelmap.h gtkaccessible.h gtkaction.h gtkactiongroup.h gtkactivatable.h gtkadjustment.h gtkalignment.h gtkarrow.h gtkaspectframe.h gtkassistant.h gtkbbox.h gtkbin.h gtkbindings.h gtkbox.h gtkbuilder.h gtkbuildable.h gtkbutton.h gtkcalendar.h gtkcelleditable.h gtkcelllayout.h gtkcellrenderer.h gtkcellrendereraccel.h gtkcellrenderercombo.h gtkcellrendererpixbuf.h gtkcellrendererprogress.h gtkcellrendererspin.h gtkcellrendererspinner.h gtkcellrenderertext.h gtkcellrenderertoggle.h gtkcellview.h gtkcheckbutton.h gtkcheckmenuitem.h gtkclipboard.h gtkcolorbutton.h gtkcolorsel.h gtkcolorseldialog.h gtkcombobox.h gtkcomboboxentry.h gtkcomboboxtext.h gtkcontainer.h gtkdebug.h gtkdialog.h gtkdnd.h gtkdrawingarea.h gtkeditable.h gtkentry.h gtkentrybuffer.h gtkentrycompletion.h gtkenums.h gtkeventbox.h gtkexpander.h gtkfilechooser.h gtkfilechooserbutton.h gtkfilechooserdialog.h gtkfilechooserwidget.h gtkfilefilter.h gtkfixed.h gtkfontbutton.h gtkfontsel.h gtkframe.h gtkgc.h gtkhandlebox.h gtkhbbox.h gtkhbox.h gtkhpaned.h gtkhruler.h gtkhscale.h gtkhscrollbar.h gtkhseparator.h gtkhsv.h gtkiconfactory.h gtkicontheme.h gtkiconview.h gtkimage.h gtkimagemenuitem.h gtkimcontext.h gtkimcontextsimple.h gtkimmodule.h gtkimmulticontext.h gtkinfobar.h gtkinvisible.h gtkitem.h gtklabel.h gtklayout.h gtklinkbutton.h gtkliststore.h gtkmain.h gtkmenu.h gtkmenubar.h gtkmenuitem.h gtkmenushell.h gtkmenutoolbutton.h gtkmessagedialog.h gtkmisc.h gtkmodules.h gtkmountoperation.h gtknotebook.h gtkobject.h gtkoffscreenwindow.h gtkorientable.h gtkpagesetup.h gtkpaned.h gtkpapersize.h gtkplug.h gtkprintcontext.h gtkprintoperation.h gtkprintoperationpreview.h gtkprintsettings.h gtkprivate.h gtkprogressbar.h gtkradioaction.h gtkradiobutton.h gtkradiomenuitem.h gtkradiotoolbutton.h gtkrange.h gtkrc.h gtkrecentaction.h gtkrecentchooser.h gtkrecentchooserdialog.h gtkrecentchoosermenu.h gtkrecentchooserwidget.h gtkrecentfilter.h gtkrecentmanager.h gtkruler.h gtkscale.h gtkscalebutton.h gtkscrollbar.h gtkscrolledwindow.h gtkselection.h gtkseparator.h gtkseparatormenuitem.h gtkseparatortoolitem.h gtkshow.h gtksettings.h gtksizegroup.h gtksocket.h gtkspinbutton.h gtkspinner.h gtkstatusbar.h gtkstatusicon.h gtkstock.h gtkstyle.h gtktable.h gtktearoffmenuitem.h gtktestutils.h gtktextbuffer.h gtktextbufferrichtext.h gtktextchild.h gtktextdisplay.h gtktextiter.h gtktextmark.h gtktexttag.h gtktexttagtable.h gtktextview.h gtktoggleaction.h gtktogglebutton.h gtktoggletoolbutton.h gtktoolbar.h gtktoolbutton.h gtktoolitem.h gtktoolitemgroup.h gtktoolpalette.h gtktoolshell.h gtktooltip.h gtktreednd.h gtktreemodel.h gtktreemodelfilter.h gtktreemodelsort.h gtktreeselection.h gtktreesortable.h gtktreestore.h gtktreeview.h gtktreeviewcolumn.h gtktypeutils.h gtkuimanager.h gtkvbbox.h gtkvbox.h gtkviewport.h gtkvolumebutton.h gtkvpaned.h gtkvruler.h gtkvscale.h gtkvscrollbar.h gtkvseparator.h gtkwidget.h gtkwindow.h gtktext.h gtktree.h gtktreeitem.h gtkclist.h gtkcombo.h gtkctree.h gtkcurve.h gtkfilesel.h gtkgamma.h gtkinputdialog.h gtkitemfactory.h gtklist.h gtklistitem.h gtkoldeditable.h gtkoptionmenu.h gtkpixmap.h gtkpreview.h gtkprogress.h gtksignal.h gtktipsquery.h gtktooltips.h gtktextlayout.h gtkmarshal.h gtktypebuiltins.h gtkversion.h gtkquery.c gtksearchengine.c gtksearchenginesimple.c fnmatch.c gtkaboutdialog.c gtkaccelgroup.c gtkaccellabel.c gtkaccelmap.c gtkaccessible.c gtkaction.c gtkactiongroup.c gtkactivatable.c gtkadjustment.c gtkalignment.c gtkarrow.c gtkaspectframe.c gtkassistant.c gtkbbox.c gtkbin.c gtkbindings.c gtkbox.c gtkbuildable.c gtkbuilder.c gtkbuilderparser.c gtkbutton.c gtkcalendar.c gtkcelleditable.c gtkcelllayout.c gtkcellrenderer.c gtkcellrendereraccel.c gtkcellrenderercombo.c gtkcellrendererpixbuf.c gtkcellrendererprogress.c gtkcellrendererspin.c gtkcellrendererspinner.c gtkcellrenderertext.c gtkcellrenderertoggle.c gtkcellview.c gtkcheckbutton.c gtkcheckmenuitem.c gtkcolorbutton.c gtkcolorsel.c gtkcolorseldialog.c gtkcombobox.c gtkcomboboxentry.c gtkcomboboxtext.c gtkcontainer.c gtkdialog.c gtkdrawingarea.c gtkeditable.c gtkentry.c gtkentrybuffer.c gtkentrycompletion.c gtkeventbox.c gtkexpander.c gtkfilechooser.c gtkfilechooserbutton.c gtkfilechooserdefault.c gtkfilechooserdialog.c gtkfilechooserembed.c gtkfilechooserentry.c gtkfilechoosersettings.c gtkfilechooserutils.c gtkfilechooserwidget.c gtkfilefilter.c gtkfilesystem.c gtkfilesystemmodel.c gtkfixed.c gtkfontbutton.c gtkfontsel.c gtkframe.c gtkgc.c gtkhandlebox.c gtkhbbox.c gtkhbox.c gtkhpaned.c gtkhruler.c gtkhscale.c gtkhscrollbar.c gtkhseparator.c gtkhsv.c gtkiconcache.c gtkiconcachevalidator.c gtkiconfactory.c gtkicontheme.c gtkiconview.c gtkimage.c gtkimagemenuitem.c gtkimcontext.c gtkimcontextsimple.c gtkimmodule.c gtkimmulticontext.c gtkinfobar.c gtkinputdialog.c gtkinvisible.c gtkitem.c gtkkeyhash.c gtklabel.c gtklayout.c gtklinkbutton.c gtkliststore.c gtkmain.c gtkmarshal.c gtkmarshalers.c gtkmenu.c gtkmenubar.c gtkmenuitem.c gtkmenushell.c gtkmenutoolbutton.c gtkmessagedialog.c gtkmisc.c gtkmnemonichash.c gtkmodules.c gtkmountoperation.c gtknotebook.c gtkobject.c gtkoffscreenwindow.c gtkorientable.c gtkpagesetup.c gtkpaned.c gtkpango.c gtkpapersize.c gtkpathbar.c gtkplug.c gtkprintcontext.c gtkprintoperation.c gtkprintoperationpreview.c gtkprintsettings.c gtkprintutils.c gtkprogressbar.c gtkradioaction.c gtkradiobutton.c gtkradiomenuitem.c gtkradiotoolbutton.c gtkrange.c gtkrbtree.c gtkrc.c gtkrecentaction.c gtkrecentchooserdefault.c gtkrecentchooserdialog.c gtkrecentchoosermenu.c gtkrecentchooserwidget.c gtkrecentchooserutils.c gtkrecentchooser.c gtkrecentfilter.c gtkrecentmanager.c gtkruler.c gtkscale.c gtkscalebutton.c gtkscrollbar.c gtkscrolledwindow.c gtkselection.c gtkseparator.c gtkseparatormenuitem.c gtkseparatortoolitem.c gtksettings.c gtksizegroup.c gtkshow.c gtksocket.c gtkspinbutton.c gtkspinner.c gtkstatusbar.c gtkstatusicon.c gtkstock.c gtkstyle.c gtktable.c gtktearoffmenuitem.c gtktestutils.c gtktextbtree.c gtktextbuffer.c gtktextbufferrichtext.c gtktextbufferserialize.c gtktextchild.c gtktextdisplay.c gtktextiter.c gtktextlayout.c gtktextmark.c gtktextsegment.c gtktexttag.c gtktexttagtable.c gtktexttypes.c gtktextutil.c gtktextview.c gtkthemes.c gtktoggleaction.c gtktogglebutton.c gtktoggletoolbutton.c gtktoolbar.c gtktoolbutton.c gtktoolitem.c gtktoolitemgroup.c gtktoolpalette.c gtktoolshell.c gtktooltip.c gtktreedatalist.c gtktreednd.c gtktreemodel.c gtktreemodelfilter.c gtktreemodelsort.c gtktreeselection.c gtktreesortable.c gtktreestore.c gtktreeview.c gtktreeviewcolumn.c gtktypebuiltins.c gtktypeutils.c gtkuimanager.c gtkvbbox.c gtkvbox.c gtkvolumebutton.c gtkviewport.c gtkvpaned.c gtkvruler.c gtkvscale.c gtkvscrollbar.c gtkvseparator.c gtkwidget.c gtkwindow-decorate.c gtkwindow.c gtkclipboard.c gtkdnd.c gtktext.c gtktree.c gtktreeitem.c gtkclist.c gtkcombo.c gtkctree.c gtkcurve.c gtkfilesel.c gtkgamma.c gtkitemfactory.c gtklist.c gtklistitem.c gtkoldeditable.c gtkoptionmenu.c gtkpixmap.c gtkpreview.c gtkprogress.c gtksignal.c gtktipsquery.c gtktooltips.c gtkcustompaperunixdialog.c gtkpagesetupunixdialog.c gtkprinter.c gtkprinteroption.c gtkprinteroptionset.c gtkprinteroptionwidget.c gtkprintjob.c gtkprintoperation-unix.c gtkprintunixdialog.c gtkprintbackend.c gtksearchenginebeagle.c gtksearchenginetracker.c gtkprint-win32.c gtkprintoperation-win32.c gtkplug-x11.c gtksocket-x11.c gtkxembed.c gtktrayicon-x11.c gtkmountoperation-x11.c gtkplug-win32.c gtksocket-win32.c gtkwin32embed.c gtkwin32embedwidget.c gtkmountoperation-stub.c gtkplug-stub.c gtksocket-stub.c /opt/local/bin/g-ir-scanner libgtk-x11-2.0.la ../gdk/Gdk-2.0.gir Makefile --output Gtk-2.0.gir

The g-ir-scanner process is stuck at 100% cpu, is using 1.3 Gb of real & private memory and 6.37Gb of virtual memory. It is not stuck in an infinite loop as it did 2 million context switches, and is still doing around 500/second. It generates 200 page faults/second. It did more than 2 billion unix system call and the counter overflowed.

Machine have 8GB of RAM + SSD drive. Xcode 5.1

Attachments (2)

main.log (2.0 MB) - added by frederic.stark@… 10 years ago.
gtk2 install main.log
port-install-binary-gtk2.log (32.0 KB) - added by frederic.stark@… 10 years ago.
Output of "port -d -b install gtk2"

Change History (10)

comment:1 Changed 10 years ago by neverpanic (Clemens Lang)

Description: modified (diff)
Keywords: gtk2 stuck slow removed

Please preview your post before posting in Trac. Please attach the main.log.

Changed 10 years ago by frederic.stark@…

Attachment: main.log added

gtk2 install main.log

comment:2 Changed 10 years ago by frederic.stark@…

Sorry for the formatting bug. Attached main.log. Python process still running, 4 hours of CPU time, 18.37GB of virtual memory.

comment:3 Changed 10 years ago by neverpanic (Clemens Lang)

Can you try to find out what the process is doing, e.g., by using opensnoop or dtruss on it?

I wonder why your system doesn't use the prebuilt archive. Did you explicitly disable binary downloads?

comment:4 Changed 10 years ago by frederic.stark@…

Sure! Snoop gives nothing (after a couple of minutes)

> sudo opensnoop -p 43014
  UID    PID COMM          FD PATH                 
^C
> 

dtruss spawn thousands of those:

> sudo dtruss -p 43014
dtrace: 342049 dynamic variable drops with non-empty dirty list
SYSCALL(args) 		 = return
ioctl(0xD, 0x4004667A, 0x7FFF5785E6C4)		 = -1 Err#25
ioctl(0xD, 0x40487413, 0x7FFF5785E678)		 = -1 Err#25
ioctl(0xD, 0x4004667A, 0x7FFF5785E6C4)		 = -1 Err#25
ioctl(0xD, 0x40487413, 0x7FFF5785E678)		 = -1 Err#25
ioctl(0xD, 0x4004667A, 0x7FFF5785E6C4)		 = -1 Err#25
ioctl(0xD, 0x40487413, 0x7FFF5785E678)		 = -1 Err#25
ioctl(0xD, 0x4004667A, 0x7FFF5785E6C4)		 = -1 Err#25
ioctl(0xD, 0x40487413, 0x7FFF5785E678)		 = -1 Err#25
^C
> 

Err 25 is ENOTTY, and according to man pages:

[ENOTTY] fildes is not associated with a character special device.

[ENOTTY] The specified request does not apply to the kind of object that the descriptor fildes references.

On the binary side of the stuff, I put the '-b' at the wrong place in the command line. When I do it correctly, I get the following:

> sudo port -b install gtk2
Password:
--->  Computing dependencies for gtk2
--->  Cleaning gtk2
--->  Scanning binaries for linking errors: 100.0%
--->  Found 30 broken file(s), matching files to ports
--->  Found 3 broken port(s), determining rebuild order
--->  Rebuilding in order
     gtk2 @2.24.23 +x11
     harfbuzz-icu @0.9.27 
     texlive-bin @2013 +x11
--->  Computing dependencies for gtk2
--->  Cleaning gtk2
--->  Computing dependencies for harfbuzz-icu
--->  Cleaning harfbuzz-icu
--->  Computing dependencies for texlive-bin
--->  Cleaning texlive-bin
--->  Scanning binaries for linking errors: 100.0%
--->  Found 30 broken file(s), matching files to ports
Port gtk2 still broken after reinstalling -- can't rebuild due to binary-only mode
    while executing
"error "Port $portname still broken after reinstalling -- can't rebuild due to binary-only mode""
    (procedure "revupgrade_scanandrebuild" line 270)
    invoked from within
"revupgrade_scanandrebuild broken_port_counts $opts"
    (procedure "macports::revupgrade" line 5)
    invoked from within
"macports::revupgrade $opts"
    (procedure "action_revupgrade" line 2)
    invoked from within
"action_revupgrade $action $portlist $opts"
    (procedure "action_target" line 96)
    invoked from within
"$action_proc $action $portlist [array get global_options]"
    (procedure "process_cmd" line 93)
    invoked from within
"process_cmd $remaining_args"
    invoked from within
"if { [llength $remaining_args] > 0 } {

    # If there are remaining arguments, process those as a command
    set exit_status [process_cmd $remaining..."
    (file "/opt/local/bin/port" line 4857)
> 

Changed 10 years ago by frederic.stark@…

Output of "port -d -b install gtk2"

comment:5 Changed 10 years ago by dbevans (David B. Evans)

Based on this, I would run

sudo port -d rev-upgrade

to see why it considers gtk2 and the others to be broken and address those issues directly.

comment:6 Changed 10 years ago by dbevans (David B. Evans)

Actually your log file contains this information and it looks like atk and icu are outdated and need to be upgraded. There may be others. Have you tried

sudo port selfupdate
sudo port upgrade outdated
Last edited 10 years ago by dbevans (David B. Evans) (previous) (diff)

comment:7 Changed 10 years ago by frederic.stark@…

This solved it. I had to mix '-b' and not, but after a few hours, everything seems fine. Weird problem that gtk2 does an endless loop at install due to outdated ports, thought.

comment:8 Changed 10 years ago by dbevans (David B. Evans)

Resolution: worksforme
Status: newclosed
Version: 2.2.1

It actually did install (from binary archive). I think, the rest was post install attempts to fix the broken binary dependencies. Glad we got it working for you.

Note: See TracTickets for help on using tickets.