unable to import gtk.Window -> gio: TypeError: type 'gio.MemoryOutputStream' is not dynamically allocated but its base type '__main__.GPollableOutputStream' is dynamically allocated

Bug #1426294 reported by James Page on 2015-02-27
102
This bug affects 21 people
Affects Status Importance Assigned to Milestone
pygobject-2 (Ubuntu)
High
Unassigned
python2.7 (Ubuntu)
High
Unassigned
python3.4 (Ubuntu)
High
Unassigned

Bug Description

Hit this after the most recent updates in vivid:

** (process:21949): WARNING **: couldn't make the type `gio.MemoryInputStream' ready

** (process:21949): WARNING **: couldn't make the type `gio.MemoryOutputStream' ready
TypeError: type 'gio.MemoryOutputStream' is not dynamically allocated but its base type '__main__.GPollableOutputStream' is dynamically allocated

** (process:21949): WARNING **: couldn't make the type `gio.unix.InputStream' ready

** (process:21949): WARNING **: couldn't make the type `gio.unix.OutputStream' ready
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: RuntimeWarning: tp_compare didn't return -1 or -2 for exception
  from gtk import _gtk
ImportError: could not import gio
ImportError: could not import gio
ImportError: cannot import name Object from gtk
Traceback (most recent call last):
  File "/usr/bin/terminator", line 102, in <module>
    TERMINATOR.create_layout(OPTIONS.layout)
  File "/usr/share/terminator/terminatorlib/terminator.py", line 240, in create_layout
    window, terminal = self.new_window()
  File "/usr/share/terminator/terminatorlib/terminator.py", line 166, in new_window
    window = maker.make('Window')
  File "/usr/share/terminator/terminatorlib/factory.py", line 94, in make
    output = func(**kwargs)
  File "/usr/share/terminator/terminatorlib/factory.py", line 100, in make_window
    import window
  File "/usr/share/terminator/terminatorlib/window.py", line 28, in <module>
    class Window(Container, gtk.Window):
AttributeError: 'module' object has no attribute 'Window'

As neither terminator or pyobject-2 has changed, I would suspect the python update that landed on the 26th.

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: terminator 0.97-4
ProcVersionSignature: Ubuntu 3.18.0-13.14-generic 3.18.5
Uname: Linux 3.18.0-13-generic x86_64
ApportVersion: 2.16.1-0ubuntu2
Architecture: amd64
CurrentDesktop: Unity
Date: Fri Feb 27 09:56:01 2015
EcryptfsInUse: Yes
InstallationDate: Installed on 2014-11-25 (93 days ago)
InstallationMedia: Ubuntu 15.04 "Vivid Vervet" - Alpha amd64 (20141124)
PackageArchitecture: all
SourcePackage: terminator
UpgradeStatus: No upgrade log present (probably fresh install)

James Page (james-page) wrote :
James Page (james-page) wrote :

Probably this:

     - Issue #22079: PyType_Ready() now checks that statically allocated type has
      no dynamically allocated bases.

summary: - unable to import gtk.Window -> gio
+ unable to import gtk.Window -> gio: TypeError: type
+ 'gio.MemoryOutputStream' is not dynamically allocated but its base type
+ '__main__.GPollableOutputStream' is dynamically allocated
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in terminator (Ubuntu):
status: New → Confirmed
no longer affects: terminator
Changed in hamster-applet (Ubuntu):
status: New → Confirmed
Iain Lane (laney) wrote :

Reverting the commit in python2.7, but likely the real fix is in pygobject-2

Changed in hamster-applet (Ubuntu):
status: Confirmed → Invalid
Changed in terminator (Ubuntu):
status: Confirmed → Invalid
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in pygobject-2 (Ubuntu):
status: New → Confirmed
Changed in python2.7 (Ubuntu):
status: New → Confirmed
Matthias Klose (doko) wrote :

we should revert that in python3.4 as well, if we cannot fix this in pygobject

Changed in python3.4 (Ubuntu):
status: New → Confirmed
no longer affects: terminator (Ubuntu)
no longer affects: hamster-applet (Ubuntu)
Changed in pygobject-2 (Ubuntu):
importance: Undecided → High
Changed in python2.7 (Ubuntu):
importance: Undecided → High
Changed in python3.4 (Ubuntu):
importance: Undecided → High
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package python2.7 - 2.7.9-1ubuntu2

---------------
python2.7 (2.7.9-1ubuntu2) vivid; urgency=medium

  * Revert change from previous upload
    - Issue #22079: PyType_Ready() now checks that statically allocated type has
      no dynamically allocated bases.
    As it causes 'gio' from pygobject-2 to fail to initialise, which breaks
    several consuming applications. (LP: #1426294)
 -- Iain Lane <email address hidden> Fri, 27 Feb 2015 17:53:39 +0000

Changed in python2.7 (Ubuntu):
status: Confirmed → Fix Released

On Fri, Feb 27, 2015 at 07:17:22PM -0000, Matthias Klose wrote:
> we should revert that in python3.4 as well, if we cannot fix this in
> pygobject

AIUI this is only available for python 2

--
Iain Lane [ <email address hidden> ]
Debian Developer [ <email address hidden> ]
Ubuntu Developer [ <email address hidden> ]

Matthias Klose (doko) wrote :

On 02/27/2015 11:44 PM, Iain Lane wrote:
> On Fri, Feb 27, 2015 at 07:17:22PM -0000, Matthias Klose wrote:
>> we should revert that in python3.4 as well, if we cannot fix this in
>> pygobject
>
> AIUI this is only available for python 2

the commit itself was done on all python branches.

Changed in python2.7 (Ubuntu):
status: Fix Released → New
Iain Lane (laney) wrote :

On Sat, Feb 28, 2015 at 09:43:14AM -0000, Matthias Klose wrote:
> On 02/27/2015 11:44 PM, Iain Lane wrote:
> > On Fri, Feb 27, 2015 at 07:17:22PM -0000, Matthias Klose wrote:
> >> we should revert that in python3.4 as well, if we cannot fix this in
> >> pygobject
> >
> > AIUI this is only available for python 2
>
> the commit itself was done on all python branches.

I know. But if you think that fixing pygobject-2 is enough then it
follows that you don't need the revert in python3.4 too, because
pygobject-2 isn't available there.

Unless you're aware of other instances of the same kind of bug.

--
Iain Lane [ <email address hidden> ]
Debian Developer [ <email address hidden> ]
Ubuntu Developer [ <email address hidden> ]

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in python2.7 (Ubuntu):
status: New → Confirmed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package python2.7 - 2.7.9-2ubuntu3

---------------
python2.7 (2.7.9-2ubuntu3) vivid; urgency=medium

  * Update to 20150401, taken from the 2.7 release branch.
    - Issue #23629: Fix the default __sizeof__ implementation for
      variable-sized objects.
    - Issue #21526: Tkinter now supports new boolean type in Tcl 8.5.
    - Issue #23838: linecache now clears the cache and returns an empty
      result on MemoryError.
    - Issue #23742: ntpath.expandvars() no longer loses unbalanced single
      quotes.
    - Issue #21802: The reader in BufferedRWPair now is closed even when
      closing writer failed in BufferedRWPair.close().
    - Issue #23671: string.Template now allows to specify the "self" parameter
      as keyword argument. string.Formatter now allows to specify the "self"
      and the "format_string" parameters as keyword arguments.
    - Issue #21560: An attempt to write a data of wrong type no longer cause
      GzipFile corruption.
    - Issue #23647: Increase imaplib's MAXLINE to accommodate modern mailbox
      sizes.
    - Issue #23539: If body is None, http.client.HTTPConnection.request now
      sets Content-Length to 0 for PUT, POST, and PATCH headers to avoid
      411 errors from some web servers.
    - Issue #23136: _strptime now uniformly handles all days in week 0,
      including Dec 30 of previous year.
    - Issue #23138: Fixed parsing cookies with absent keys or values in
      cookiejar.
    - Issue #23051: multiprocessing.Pool methods imap() and imap_unordered()
      now handle exceptions raised by an iterator.
    - Issue #22928: Disabled HTTP header injections in httplib.
    - Issue #23615: Module tarfile now can be reloaded with imp.reload().
    - Issue #23799: Added test.test_support.start_threads() for running and
      cleaning up multiple threads.
    - Issue #22390: test.regrtest now emits a warning if temporary files or
      directories are left after running a test.
    - Issue #23583: Added tests for standard IO streams in IDLE.
    - Issue #23583: Fixed writing unicode to standard output stream in IDLE.
  * Re-apply the fix for issue #22079. This is now a warning instead of an
    error. LP: #1426294.
  * Fix issue #23842, SystemError in os.minor, os.major. LP: #1435242.
 -- Matthias Klose <email address hidden> Thu, 02 Apr 2015 16:13:26 +0200

Changed in python2.7 (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.