Cubic crashes with error 'Vte.Terminal.feed_child() takes exactly 2 arguments (3 given)'.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cubic |
Fix Released
|
Critical
|
Cubic PPA | ||
Classic-development |
Fix Released
|
Critical
|
Cubic PPA | ||
Release-2018-07-34 |
Fix Released
|
Critical
|
Cubic PPA |
Bug Description
As reported by Binu Kuriakose...
Cubic (Custom Ubuntu ISO Creator) is a graphical user interface application and should be run using the application launcher. See "man cubic" for more information.
Using Vte version.
The user name is.....
The home directory is.....
The user id is.....
The group id is.....
The current GTK theme is............... Ambiance
The working directory is............... /usr/share/cubic
The builder is.....
(cubic.py:3098): Gtk-WARNING **: 08:41:47.740: Content added to the action area of a dialog using header bars
(cubic.py:3098): Gtk-WARNING **: 08:41:47.740: Content added to the action area of a dialog using header bars
(cubic.py:3098): Gtk-WARNING **: 08:41:47.761: Content added to the action area of a dialog using header bars
(cubic.py:3098): Gtk-WARNING **: 08:41:47.761: Content added to the action area of a dialog using header bars
(cubic.py:3098): Gtk-WARNING **: 08:41:47.782: Content added to the action area of a dialog using header bars
(cubic.py:3098): Gtk-WARNING **: 08:41:47.782: Content added to the action area of a dialog using header bars
(cubic.py:3098): Gtk-WARNING **: 08:41:47.802: Content added to the action area of a dialog using header bars
(cubic.py:3098): Gtk-WARNING **: 08:41:47.803: Content added to the action area of a dialog using header bars
(cubic.py:3098): Gtk-WARNING **: 08:41:47.823: Content added to the action area of a dialog using header bars
(cubic.py:3098): Gtk-WARNING **: 08:41:47.823: Content added to the action area of a dialog using header bars
The current page name is............... project_
Created new thread
Current page...
New page...
Running thread with id................. 140223147566848
Interrupting previous thread with id... No previous thread to interrupt
Performing requested transition action
Transition from...
Transition to.....
Finished running thread with id........ 140223147566848
The project directory is............... /home/issac/Cubic
The configuration filepath is.......... /home/issac/
The original ISO image mount point
is.
The custom squashfs directory is....... /home/issac/
The custom live ISO directory is....... /home/issac/
Is project directory page, original
section, valid?.
Button clicked.
Created new thread
Current page...
New page...
Running thread with id................. 140223147566848
Interrupting previous thread with id... No previous thread to interrupt
Performing requested transition action
Transition from...
Transition to.....
Propagate assigned values to
calculate dependant values?............ False
The original ISO image release name
The custom ISO image version number
Is success copy boot files............. False
Is success extract squashfs?
Hiding old page...
Showing new page...
The current page name is............... new_project_page
Is new project page, original
section, valid?.
Is new project page, custom section,
valid?
Propagate assigned values to
calculate dependant values?............ True
Finished running thread with id........ 140223147566848
Created new thread
Current page...
New page...
Previous thread id.....
Running thread with id................. 140223147566848
Interrupting previous thread with id... No previous thread to interrupt
Created new thread
Performing requested transition action
Current page...
Transition from...
New page...
Transition to.....
Previous thread id.....
Running thread with id................. 140222867142400
Is existing project page, original
section, valid?.
Is existing project page, custom
section, valid?.
Finished running thread with id........ 140223147566848
Performing requested transition action
Transition from...
Transition to.....
Is existing project page, original
section, valid?.
Is existing project page, custom
section, valid?.
Finished running thread with id........ 140222867142400
Created new thread
Current page...
New page...
Previous thread id.....
Running thread with id................. 140223155959552
Interrupting previous thread with id... No previous thread to interrupt
Performing requested transition action
Transition from...
Transition to.....
Propagate assigned values to
calculate dependant values?............ False
The original ISO image filepath is..... /home/issac/
The original ISO image filename is..... ubuntu-
The original ISO image directory is.... /home/issac
Check if ISO image is mounted
ISO image..
Mount point..
Execute synchronously.
Is mounted?
Mount ISO image
ISO image..
Mount point..
Create the mount point if it does
not exist..
Execute synchronously.
Set a new process for thread id........ 140223155959552
The new process id is.....
Mount.
Execute synchronously.
Set a new process for thread id........ 140223155959552
The new process id is.....
Check if ISO image is mounted
ISO image..
Mount point..
Execute synchronously.
Is mounted?
Execute synchronously.
Set a new process for thread id........ 140223155959552
The new process id is.....
The original ISO image volume id is.... Ubuntu 18.04 LTS amd64
Execute synchronously.
Set a new process for thread id........ 140223155959552
The new process id is.....
The original ISO image release name
is.
Execute synchronously.
Set a new process for thread id........ 140223155959552
The new process id is.....
The original ISO image disk name is.... Ubuntu 18.04 LTS "Bionic Beaver" -
Get directory for
filesystem.
filesystem.
The casper relative directory is....... casper
The custom ISO image version number
is.
Create custom ISO image filename
The original ISO image filename is..... ubuntu-
The custom ISO image version number
is.
• text a......
• release.
• point release.
• text b......
• new point_release.
The custom iso image filename is....... ubuntu-
The custom ISO image filename is....... ubuntu-
The custom ISO image directory is...... /home/issac/Cubic
The custom ISO image filepath is....... /home/issac/
Create custom ISO image volume id
The original ISO image volume id is.... Ubuntu 18.04 LTS amd64
The custom ISO image version number
is.
• text a......
• release.
• point release.
• text b......
• new point_release.
The custom iso image volume id is...... Ubuntu 18.04.0 2018.06.26 LTS amd64
The custom ISO image volume id is...... Ubuntu 18.04.0 2018.06.26 LTS amd64
The custom ISO image release name is... Custom Bionic Beaver
The custom ISO image disk name is...... Ubuntu 18.04.0 2018.06.26 LTS amd64
The custom ISO image md5 filename is... ubuntu-
The custom ISO image md5 filepath is... /home/issac/Cubic/
Check if ISO image is mounted
ISO image..
Mount point..
Execute synchronously.
The custom ISO image version number
is.
Is new project page, custom section,
valid?
The custom ISO image filename is....... ubuntu-
The custom ISO image filepath is....... /home/issac/
The custom ISO image md5 filename is... ubuntu-
The custom ISO image md5 filepath is... /home/issac/
Is new project page, custom section,
valid?
The custom ISO image directory is...... /home/issac/Cubic
The custom ISO image filepath is....... /home/issac/
The custom ISO image md5 filepath is... /home/issac/
Is new project page, custom section,
valid?
The custom ISO image volume id is...... Ubuntu 18.04.0 2018.06.26 LTS am
Is new project page, custom section,
valid?
The custom ISO image release name is... Custom Bionic Beaver
Is new project page, custom section,
valid?
The custom ISO image disk name is...... Ubuntu 18.04.0 2018.06.26 LTS amd64
Is new project page, custom section,
valid?
Is mounted?
Is new project page, original
section, valid?.
Is new project page, custom section,
valid?
Propagate assigned values to
calculate dependant values?............ True
Finished running thread with id........ 140223155959552
The custom ISO image filename is....... ubuntu-
The custom ISO image filepath is....... /home/issac/
The custom ISO image md5 filename is... ubuntu-
The custom ISO image md5 filepath is... /home/issac/
Is new project page, custom section,
valid?
The custom ISO image volume id is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image disk name is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image volume id is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image disk name is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image volume id is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image disk name is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image volume id is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image disk name is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image volume id is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image disk name is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image filename is....... ubuntu-
The custom ISO image filepath is....... /home/issac/
The custom ISO image md5 filename is... ubuntu-
The custom ISO image md5 filepath is... /home/issac/
Is new project page, custom section,
valid?
The custom ISO image filename is....... ubuntu-
The custom ISO image filepath is....... /home/issac/
The custom ISO image md5 filename is... ubuntu-
The custom ISO image md5 filepath is... /home/issac/
Is new project page, custom section,
valid?
The custom ISO image filename is....... ubuntu-
The custom ISO image filepath is....... /home/issac/
The custom ISO image md5 filename is... ubuntu-
The custom ISO image md5 filepath is... /home/issac/
Is new project page, custom section,
valid?
The custom ISO image volume id is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image disk name is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image volume id is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image disk name is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image volume id is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image disk name is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image release name is... Bionic Beaver
Is new project page, custom section,
valid?
The custom ISO image disk name is...... ubuntu-
Is new project page, custom section,
valid?
The custom ISO image disk name is...... Ubuntu 18.04 LTS "Bionic Beaver" -
Is new project page, custom section,
valid?
Button clicked.
Created new thread
Current page...
New page...
Running thread with id................. 140223155959552
Interrupting previous thread with id... No previous thread to interrupt
Performing requested transition action
Transition from...
Transition to.....
Save configuration.
Hiding old page...
Showing new page...
The current page name is............... unsquashfs_page
Copy the original ISO files
The source path is.....
The target path is.....
filesystem.
in.
Include filesystem.
filesystem.
not found in.....
Include filesystem.
remove?
Execute asynchronously.
Set a new process for thread id........ 140223155959552
The new process id is.....
Is success copy boot files............. True
Extract squashfs
The target path is.....
Delete file...
/home/
not exist..
The source path is.....
Execute asynchronously.
Set a new process for thread id........ 140223155959552
The new process id is.....
Is success extract squashfs?
Save configuration.
Prepare chroot environment
Execute synchronously.
Set a new process for thread id........ 140223155959552
The new process id is.....
Execute synchronously.
Set a new process for thread id........ 140223155959552
The new process id is.....
Enter chroot environment
The chroot environment directory is.... /home/issac/
The terminal pid is.....
Exception encountered in thread........ 140223155959552
Ignore exception?
The tracekback is.....
Finished running thread with id........ 140223155959552
Changed in cubic: | |
importance: | Undecided → High |
status: | New → Confirmed |
assignee: | nobody → Cubic PPA (cubic-wizard) |
This is very interesting (and disconcerting)...
(1) On ~unmodified~ Ubuntu 18.04,
dpkg lists the following version info for the "Vte" packages...
$ dpkg -l gir1.2-vte-2.91 libvte-2.91-0 libvte-2.91-common
Name Version ======= ======= ==== ======= ======= ======= == 2-vte-2. 91:amd64 0.52.2- 1ubuntu1~ 18.04.1 2.91-0: amd64 0.52.2- 1ubuntu1~ 18.04.1 2.91-common 0.52.2- 1ubuntu1~ 18.04.1
===
gir1.
libvte-
libvte-
Using these versions, we get the following behavior...
If we pass ~two~ arguments to the feed_child() function,
terminal. feed_child( "abc", -1)
we get ~no~ error.
If we try to pass only one argument to the feed_child() function,
terminal. feed_child( "abc") feed_child( ) takes exactly 3 arguments (2 given)
we get the error:
TypeError: Vte.Terminal.
(2) After upgrading these three packages in Ubuntu 18.04,
dpkg lists the following version info for the same "Vte" packages...
$ dpkg -l gir1.2-vte-2.91 libvte-2.91-0 libvte-2.91-common
Name Version ======= ======= ==== ======= ======= ======= == 2-vte-2. 91:amd64 0.52.2- 1ubuntu1~ 18.04.1 2.91-0: amd64 0.52.2- 1ubuntu1~ 18.04.1 2.91-common 0.52.2- 1ubuntu1~ 18.04.1
===
gir1.
libvte-
libvte-
Notice the version numbers are EXACTLY the same as before the upgrade.
Using these "upgraded" versions, we get the following behavior...
If we pass only ~one~ argument to the feed_child() function,
terminal. feed_child( "abc")
we get ~no~ error.
If we try to pass two arguments to the feed_child() function,
terminal. feed_child( "abc", -1) feed_child( ) takes exactly 2 arguments (3 given)
we get the error:
TypeError: Vte.Terminal.
It is clear that the signature for function Vte.Terminal. feed_child( ) has changed.
In the previous version, it required two arguments. Now it requires one.
I was able to find an archive of a web page showing the "original" 2.91 signature: /web.archive. org/web/ 20170311221231/ https:/ /lazka. github. io/pgi- docs/Vte- 2.91/classes/ Terminal. html#Vte. Terminal. feed_child
https:/
(I've attached a screenshot, for posterity).
feed_ child(text, length)
Parameters:
text (str or None) – data to send to the child
length (int) – length of text in bytes, or -1 if text is NUL-terminated
Sends a block of UTF-8 text to the child as if it were entered by the user
at the keyboard.
In the "newer" 2.91 version, feed_child() requires one argument): /lazka. github. io/pgi- docs/Vte- 2.91/classes/ Terminal. html#Vte. Terminal. feed_child
https:/
feed_ child(text)
Parameters:
text ([int] or None) – data to send to the child
Sends a block of UTF-8 text to the child as if it were entered by the user
at the keyboard.
It is disconcerting that the signature of the feed_child() function changed, but the ~version~ of Vte has remained the same! There is no way to tell if you have a library with the older version installed, or an updated library with the newer version installed!