Hello,
in my opinion this is caused this way:
- synaptic calls vte_terminal_forkpty which calls __vte_pty_fork
- Now we have a parent process which gets in the variable pid the pid of
  the child process. A call to vte_terminal_watch_child is needed and
  gives no warning.
- But also we have now the child process, which has in variable pid a 0 (man 
fork(2)).
  In the child process we call now vte_terminal_watch_child with pid=0
  and get therefore the warning.

Therefore I think:
- problem lies in package libvte-2.90-9
- with attached patch the warning could be avoided.

Kind regards,
Bernhard



pid_t
vte_terminal_forkpty(VteTerminal *terminal,
                     char **envv, const char *working_directory,
                     gboolean lastlog, gboolean utmp, gboolean wtmp)
{
#ifdef HAVE_FORK
        VtePty *pty;
        GPid pid;

        g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);

        pty = vte_pty_new(__vte_pty_get_pty_flags(lastlog, utmp, wtmp), NULL);
        if (pty == NULL)
                return FALSE;

        if (!__vte_pty_fork(pty,
                            &pid,
                            NULL)) {
                g_object_unref(pty);
                return FALSE;
        }

        vte_terminal_set_pty_object(terminal, pty);
        // FIXMEchpe is that really right?
        vte_terminal_watch_child(terminal, pid);

        return pid;
#else
        return -1;
#endif
}
Description: Avoid call to vte_terminal_watch_child in child process
Author: Bernhard Übelacker <bernha...@vr-web.de>

Bug-Debian: https://bugs.debian.org/743995
Bug-Ubuntu: https://launchpad.net/bugs/1282542
Last-Update: <2014-11-17>

--- vte3-0.36.3.orig/src/vte.c
+++ vte3-0.36.3/src/vte.c
@@ -4020,7 +4020,8 @@ vte_terminal_forkpty(VteTerminal *termin
 
         vte_terminal_set_pty_object(terminal, pty);
         // FIXMEchpe is that really right?
-        vte_terminal_watch_child(terminal, pid);
+        if (pid > 0) /* call this only in parent process, in child process pid==0 */
+                vte_terminal_watch_child(terminal, pid);
 
         return pid;
 #else

Reply via email to