Closed Bug 1644327 Opened 4 years ago Closed 4 years ago

mozdevice 3.2.3 doesn't work on non-rooted device w/ mozregression

Categories

(Testing :: mozregression, defect)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: agi, Assigned: bc)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

This used to work, it broke recently.

$ ./mach mozregression --good 2020-05-20  --app gve  
**********
You should use a config file. Please use the --write-config command line flag to help you create one.
**********

 0:00.00 INFO: No 'bad' option specified, using 2020-06-08
 0:00.12 INFO: Getting mozilla-central builds between 2020-05-20 and 2020-06-08
 0:00.49 INFO: Using 522db850edb38c34ddfc20860901e5db71a1c8cb (pushed on 2020-05-20 03:37:17) for date 2020-05-20
 0:00.49 INFO: Using 63dc5e9b1b02b0aebd6badfe5eaef7bb9aa8f430 (pushed on 2020-06-08 21:38:11) for date 2020-06-08
 0:01.21 WARNING: Skipping build 522db850edb3: Unable to find build info using the taskcluster route 'gecko.v2.mozilla-central.revision.522db850edb38c34ddfc20860901e5db71a1c8cb.mobile.android-api-16-opt'
 0:01.46 INFO: Testing good and bad builds to ensure that they are really good and bad...
 0:01.46 INFO: Downloading build from: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/Oa9UQnw1QR6iFqT62-cjzA/runs/0/artifacts/public%2Fbuild%2Fgeckoview_example.apk
===== Downloaded 100% =====
 0:02.56 INFO: Running mozilla-central build built on 2020-05-20 03:58:24.760000, revision 855249e5
 0:02.58 WARNING: Unable to find application.ini
 0:02.58 WARNING: Unable to find platform.ini
 0:02.59 INFO: Using adb 1.0.41
 0:03.12 INFO: adbd not restarted as root
 0:03.23 INFO: su -c setenforce 0 exitcode 0, stdout: None
 0:03.55 INFO: /system/bin/ls -1A supported
 0:03.66 INFO: Native cp support: True
 0:03.77 INFO: Native chmod -R support: True
 0:03.87 INFO: Native chown -R support: True
 0:03.98 INFO: Ignoring attempt to set SELinux Permissive.
 0:04.09 INFO: Native pidof support: True
 0:27.41 ERROR: Unable to start the application (error: Can not run command chmod -R 777 /data/local/tmp/tests as root!)
 0:27.41 ERROR: Unable to start the application (error: Can not run command chmod -R 777 /data/local/tmp/tests as root!)
 0:27.42 INFO: Last good revision: 855249e545c361516a65bcba8f5bc6b423e2d131
 0:27.42 INFO: First bad revision: 63dc5e9b1b02b0aebd6badfe5eaef7bb9aa8f430
 0:27.42 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=855249e545c361516a65bcba8f5bc6b423e2d131&tochange=63dc5e9b1b02b0aebd6badfe5eaef7bb9aa8f430

This looks like a mozdevice problem, looks like 3.2.3 was released in the last couple days though I'm not seeing anything in the commit log that's obviously at fault. The only thing that remotely looks like it could be responsible would be this changeset:

https://hg.mozilla.org/mozilla-central/rev/826588d52381e4dc29d776141b77cf09d0c27ae8

:agi, :sotaro, can you try installing mozregression inside a virtualenv per these instructions and see if it works? If so, the issue is almost certainly with mozdevice (per requirements we are pinning to mozdevice 3.1.0 in mozregression itself: https://github.com/mozilla/mozregression/blob/master/requirements/all.txt#L249)

Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(agi)

It does work when I install it from source, only the mach version has this problem for me.

Flags: needinfo?(agi)

(In reply to Agi Sferro | :agi | ⏰ PST | he/him from comment #3)

It does work when I install it from source, only the mach version has this problem for me.

Did you install from requirements? If so, can you try pip install mozdevice==3.2.3 inside the virtualenv and then re-run?

I am making progress with bug 1486004 and hope to have a solution for rootless devices soon.

(In reply to William Lachance (:wlach) (use needinfo!) from comment #1)

:agi, :sotaro, can you try installing mozregression inside a virtualenv per these instructions and see if it works?

It worked for me!
And since "pip install mozdevice==3.2.3", GeckoView example app did not start during mozregression.

Flags: needinfo?(sotaro.ikeda.g)

Thanks Sotaro + Agi.

:bc, I know you just said you're working on larger refactorings around this issue in bug 1486004, but is there any chance you could do an interim fix for this particular issue? mozregression doesn't really use much of mozdevice, and it would help reduce confusion. People have been using mozregression to bisect gve a whole bunch in the last few months, I'd expect this issue to continue to cause problems until it's fixed:

https://sql.telemetry.mozilla.org/queries/71917

See comment 1 for the likely culprit.

Flags: needinfo?(bob)
Summary: Cannot run mozregression on non-rooted device → mozdevice 3.2.3 doesn't work on non-rooted device w/ mozregression

Sure. Part of the changes I am considering are to relax the requirement that /data/local/tmp exist or be accessible. I'll make that change and test it locally with mozregression and then release a minor update once it lands.

Assignee: nobody → bob
Flags: needinfo?(bob)

agi: You don't have a /data/local/tmp on your device at all? What device is it?

Flags: needinfo?(agi)

I do have a /data/local/tmp, I use a Samsung Galaxy S7

Flags: needinfo?(agi)

The issue is not completely due to the lack of root but is also due to the location and permissions of the profile /data/local/tmp/tests. The default location of the test root was changed to /data/local/tmp/tests in Bug 1631671 to work around scoped storage issues. The profile is created with permissions: drwxrwxr-x 2 shell shell 4096 2020-06-10 12:13 tmpcpofamv9.mozrunner. Once the root requirement is relaxed we still fail to start due to E AndroidRuntime: java.lang.IllegalArgumentException: Profile directory must be writable if specified: /data/local/tmp/tests/tmpcpofamv9.mozrunner. To work around that would require dead-end work for a short term gain. Until this is fixed, the out-of-tree mozregression should be used. I'm going to wontfix this so I can continue the rootless development in bug 1486004 which will eliminate this issue. I will make sure mozregression works as a separate package and in tree via mach with the new release. I expect to have bug 1486004 resolved within a week.

Blocks: mach-busted
Status: NEW → RESOLVED
Closed: 4 years ago
Regressed by: 1631671
Resolution: --- → WONTFIX
See Also: → 1486004

Thanks :bc, I just gave a few heads-ups about this on Matrix. At least we have a workaround until this is fixed!

I've just confirmed that the current wip root less change to mozdevice combined with a one line change to mozregression suffices to allow mozregression to complete a bisection using the same arguments as comment 0. So, this is looking good so far.

See Also: → 1654852

agi: mozdevice 4.0.0 and mozregression 4.0.11 have been released and you should now be able to use mozregression with an unrooted phone. Let me know if you have any problems.

You need to log in before you can comment on or make changes to this bug.