New issue
Advanced search Search tips

Issue 801701 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 801715



Sign in to add a comment

platform_AddPrinter is flaky

Project Member Reported by jdufault@chromium.org, Jan 12 2018

Issue description

Failed in https://luci-milo.appspot.com/buildbot/chromeos.chrome/peach_pit-tot-chrome-pfq-informational/9315, I'm guessing because the network request the test relies on failed?

01/12 10:41:11.195 INFO |      fake_printer:0028| waiting for a printing request
01/12 10:41:11.396 INFO |      base_sysinfo:0395| ChromeOS BOARD = peach_pit_1.9GHz_3GB
01/12 10:41:11.424 INFO |platform_AddPrinte:0155| download component:epson-inkjet-printer-escpr
01/12 10:41:16.098 WARNI|              test:0637| The test failed with the following exception
Traceback (most recent call last):
  File "/usr/local/autotest/common_lib/test.py", line 631, in _exec
    _call_test_function(self.execute, *p_args, **p_dargs)
  File "/usr/local/autotest/common_lib/test.py", line 831, in _call_test_function
    return func(*args, **dargs)
  File "/usr/local/autotest/common_lib/test.py", line 495, in execute
    dargs)
  File "/usr/local/autotest/common_lib/test.py", line 362, in _call_run_once_with_retry
    postprocess_profiled_run, args, dargs)
  File "/usr/local/autotest/common_lib/test.py", line 400, in _call_run_once
    self.run_once(*args, **dargs)
  File "/usr/local/autotest/tests/platform_AddPrinter/platform_AddPrinter.py", line 170, in run_once
    self.download_component(component)
  File "/usr/local/autotest/tests/platform_AddPrinter/platform_AddPrinter.py", line 162, in download_component
    '"string:%s"' % (component))
  File "/usr/local/autotest/common_lib/utils.py", line 1056, in system_output
    args=args).stdout
  File "/usr/local/autotest/common_lib/utils.py", line 748, in run
    "Command returned non-zero exit status")
CmdError: Command <dbus-send --system --type=method_call --print-reply --dest=org.chromium.ComponentUpdaterService /org/chromium/ComponentUpdaterService org.chromium.ComponentUpdaterService.LoadComponent "string:epson-inkjet-printer-escpr"> failed, rc=1, Command returned non-zero exit status
* Command: 
    dbus-send --system --type=method_call --print-reply
    --dest=org.chromium.ComponentUpdaterService
    /org/chromium/ComponentUpdaterService
    org.chromium.ComponentUpdaterService.LoadComponent "string:epson-inkjet-
    printer-escpr"
Exit status: 1
Duration: 4.54683613777

stderr:
Error org.freedesktop.DBus.Error.InternalError: Failed to load component
 
The component installation fails which involves downloading from internet and mounting locally in a proper way.

Is there a good way to check if Internet is actually accessible? I will add more debug ability into component updater API to give more detailed info.
Blockedon: 801715
Cc: derat@chromium.org wutao@chromium.org

Comment 4 by wutao@chromium.org, Jan 16 2018

This could be one of the reasons why veyron_minnie-tot-chrome-pfq-informational:7073 failed: https://sheriff-o-matic.appspot.com/gardener#

Comment 6 by derat@chromium.org, Jan 17 2018

Where is the component being downloaded from? Making tests depend on network access usually makes them flaky. Can the component be packaged alongside the test (or included in test images) and e.g. downloaded from a local HTTP server that's started on the DUT by the test?
Component is downloaded from open internet (from Omaha). Component updater needs to communicate with Omaha to decide where to download component. Plus the component needs to be properly signed in order to be loaded by imageloader.

platform_AddPrinter includes two tests:

platform_AddPrinter.generic
platform_AddPrinter.epson

'generic' one tests CUPS printing stack.
'epson' tests component download in addition to what 'generic' tests.

If we only care about testing CUPS, we can exercise only 'generic' in CQ.

Comment 8 by derat@chromium.org, Jan 17 2018

Cc: dchan@chromium.org
Have there been any efforts to build a fake Omaha server that can be used by tests to avoid network flakiness? That seems like it'd be desirable here.
Cc: skau@chromium.org
re #4 #5, no that is a separate issue which is caused by seccomp failure:

2018-01-15T21:58:23.198497+00:00 WARNING minijail0[10430]: libminijail[10430]: allowing syscall: socket
2018-01-15T21:58:23.198564+00:00 WARNING minijail0[10430]: libminijail[10430]: allowing syscall: connect
2018-01-15T21:58:23.198581+00:00 WARNING minijail0[10430]: libminijail[10430]: allowing syscall: gettimeofday
2018-01-15T21:58:23.198753+00:00 WARNING minijail0[10430]: libminijail[10430]: allowing syscall: send
2018-01-15T21:58:23.204832+00:00 DEBUG kernel: [ 1169.867526] SELinux: initialized (dev proc, type proc), uses genfs_contexts
2018-01-15T21:58:23.288412+00:00 WARNING cryptohomed[1830]: GetTpmTokenSlotForPath: Path not found.
2018-01-15T21:58:23.306381+00:00 WARNING cupsd[10431]: libminijail[1]: logging seccomp filter failures


Comment 10 by derat@chromium.org, Jan 19 2018

This test appears to be failing consistently on the PFQ now:  issue 803681 
Status: Fixed (was: Assigned)
This test was moved to bvt-perbuild a while ago due to its dependency to real omaha server. In the next iteration of chrome os component, this is going to be addressed and platform_AddPrinter.epson will be brought back to CQ.

Sign in to add a comment