Hi all,
I'm working on getting third party Android devices set up for GPU testing, e.g. Samsung phones. This requires getting all of our testing infrastructure to work with non-rooted devices since we aren't able to root non-Google devices. One of the issues we're running into this is retrieving dumps for symbolization if something crashes during a test.
We specify where to store dumps using the `--breakpad-dump-location` flag, so you would think we could just specify a location that's readable without root permissions so we can later read/pull them. However, doing so seems to run into what I believe are SELinux permission issues, e.g. Chrome will
complain that `flock` is not implemented when trying to open `settings.dat` when using the non-root directory but will work fine when using the root directory.
A few workarounds for this that we've thought of:
- Allow the storing of dumps in a different directory than `settings.dat`. This assumes that Crashpad can create minidumps fine in non-root directories and that the only actual issue is with accessing `settings.dat`. We haven't confirmed this is actually the case, but at the very least, Crashpad is capable of creating directories and `settings.dat` in the non-root directory.
- Automatically copy dumps to another location once. This has the same assumptions as workaround #1.
- Send the dump information over something like a socket. This seems iffy to me since Crashpad will be doing all of this while the process is crashing, right?
Are any of those workarounds something that would be feasible to actually add to Crashpad? If so, any pointers on where I could hack things in to see if they actually work?
Thanks,
Brian