[Pkg-chromium-maint] Chromium 14 backport "Aw, Snap!"

Fabien C. et1w9zppao6hlkl at jetable.org
Mon Oct 10 22:44:14 UTC 2011


> It's a crash in the renderer processes, so that won't help.  The
> upstream instructions [0] are more useful in this case, but like I
> said the crash somehow goes away when run under the debugger...weird.

Not only the debugger. 

Actually, the crash disappears as soon as you use the --renderer-cmd-prefix option. 

I tried with it with a stupid script that only runs the command it receives as an argument: 

 chromium --renderer-cmd-prefix='/tmp/test.sh'

The source of 'test.sh' being: 
 #!/bin/sh 
 echo $*
 $*

And surprisingly, everything works... 

The little side effect however is that you have 2 processes spawned whenever a renderer is created. 


You can avoid this with a little C program that will make use of execve() as follows: 

-------[myexec.c]-------
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>

int main(int argc, char* argv[], char* envp[]) {
        if( argc < 2) {
                fprintf(stderr, "Usage: %s <command> [ args ... ]\n", argv[0]);
                return -1; 
        }

        execve(argv[1], &argv[1], envp);

        int last_errno = errno;
        fprintf(stderr, "Impossible to launch %s\n", argv[1]);
        fprintf(stderr, "%s\n", strerror(last_errno));
        return last_errno;
}
-------[myexec.c]-------

Let's try it: 

 chromium --renderer-cmd-prefix='/tmp/myexec'

It works... And only one process is created. 


This is quite a strange bug... If someone is willing to report it upstream, that would be nice. :)

Maybe you can implement this workaround in your backport, if it works for you Michael. It's probably less painful than the --single-process option. 

Fab 



More information about the Pkg-chromium-maint mailing list