New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 834130 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: May 2018
Cc:
EstimatedDays: 0
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Circular imports break build_event_unittest.

Project Member Reported by cra...@chromium.org, Apr 18 2018

Issue description

Chrome Version: No
OS: (e.g. Win10, MacOS 10.12, etc...)

What steps will reproduce the problem?
(1) Follow the instructions at chromiumos/infra/suite_scheduler/README.md

What is the expected result?
Passing unit tests.

What happens instead?
Failed import:

$ python runner.py --test_path build_event_unittest
Traceback (most recent call last):
  File "runner.py", line 101, in <module>
    result = main(args)
  File "runner.py", line 49, in main
    input_args.test_path, TEST_PATTERN_MAP[input_args.test_type])
  File "/usr/lib/python2.7/unittest/loader.py", line 192, in discover
    __import__(start_dir)
  File "/usr/local/google/home/craigb/src/chromiumos/infra/suite_scheduler/build_event_unittest.py", line 10, in <module>
    import build_event
  File "/usr/local/google/home/craigb/src/chromiumos/infra/suite_scheduler/build_event.py", line 9, in <module>
    import base_event
  File "/usr/local/google/home/craigb/src/chromiumos/infra/suite_scheduler/base_event.py", line 14, in <module>
    import task
  File "/usr/local/google/home/craigb/src/chromiumos/infra/suite_scheduler/task.py", line 13, in <module>
    import task_executor
  File "/usr/local/google/home/craigb/src/chromiumos/infra/suite_scheduler/task_executor.py", line 11, in <module>
    import swarming_lib
  File "/usr/local/google/home/craigb/src/chromiumos/infra/suite_scheduler/swarming_lib.py", line 11, in <module>
    import config_reader
  File "/usr/local/google/home/craigb/src/chromiumos/infra/suite_scheduler/config_reader.py", line 16, in <module>
    import timed_event
  File "/usr/local/google/home/craigb/src/chromiumos/infra/suite_scheduler/timed_event.py", line 16, in <module>
    class TimedEvent(base_event.BaseEvent):
AttributeError: 'module' object has no attribute 'BaseEvent'



 
Project Member

Comment 1 by bugdroid1@chromium.org, May 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/infra/suite_scheduler/+/3212fb431b5942123e81a53278f167425171f8ff

commit 3212fb431b5942123e81a53278f167425171f8ff
Author: Craig Bergstrom <craigb@google.com>
Date: Tue May 01 15:31:35 2018

suite_scheduler: Break circular imports.

A circular import caused build_event_unittest to fail with the stack
trace shown in the associated bug.  This change factors SchedulingError
out of the task module and into the task_exceptions module to break the
circular import loop.

BUG= chromium:834130 
TEST=Ran unit tests.

Change-Id: Id701f314d13a2e64b833727da39287d41c93c5dc
Reviewed-on: https://chromium-review.googlesource.com/1016130
Commit-Ready: Craig Bergstrom <craigb@chromium.org>
Tested-by: Craig Bergstrom <craigb@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Craig Bergstrom <craigb@chromium.org>

[modify] https://crrev.com/3212fb431b5942123e81a53278f167425171f8ff/task_executor_unittest.py
[modify] https://crrev.com/3212fb431b5942123e81a53278f167425171f8ff/swarming_lib.py
[modify] https://crrev.com/3212fb431b5942123e81a53278f167425171f8ff/cron.py
[modify] https://crrev.com/3212fb431b5942123e81a53278f167425171f8ff/gae_test.py
[modify] https://crrev.com/3212fb431b5942123e81a53278f167425171f8ff/task_executor.py
[modify] https://crrev.com/3212fb431b5942123e81a53278f167425171f8ff/swarming_lib_unittest.py

Project Member

Comment 2 by bugdroid1@chromium.org, May 4 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/infra/suite_scheduler/+/bdf4521711cf58b5aa0b41a000945831a267410c

commit bdf4521711cf58b5aa0b41a000945831a267410c
Author: Craig Bergstrom <craigb@google.com>
Date: Fri May 04 18:07:59 2018

suite_scheduler: Fix TaskProcessor call.

In Change-Id Id701f314d13a2e64b833727da39287d41c93c5dc, I refactored
calls to TaskProcessor.__init__, but missed one.  Hence, I caused a stack
trace during the push to staging:

__init__() takes exactly 3 arguments (2 given) (/base/alloc/tmpfs/dynamic_runtimes/python27/c5586dbb532f7e5f_unzipped/python27_lib/versions/third_party/webapp2-2.3/webapp2.py:1528)
Traceback (most recent call last):
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/c5586dbb532f7e5f_unzipped/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1511, in __call__
    rv = self.handle_exception(request, response, e)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/c5586dbb532f7e5f_unzipped/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1505, in __call__
    rv = self.router.dispatch(request, response)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/c5586dbb532f7e5f_unzipped/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/c5586dbb532f7e5f_unzipped/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1077, in __call__
    return handler.dispatch()
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/c5586dbb532f7e5f_unzipped/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 547, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/c5586dbb532f7e5f_unzipped/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch
    return method(*args, **kwargs)
  File "/base/data/home/apps/s~google.com:suite-scheduler-staging/20180504t114757.409486509978209887/cron.py", line 124, in get
    task_processor = task_executor.TaskProcessor(task_executor.SUITES_QUEUE)
TypeError: __init__() takes exactly 3 arguments (2 given)

BUG= chromium:834130 
TEST=Ran TestPush locally.

Change-Id: I34937e9da718f39963325cb4b5b9b5753e5b20a8

[modify] https://crrev.com/bdf4521711cf58b5aa0b41a000945831a267410c/cron.py

Comment 3 by cra...@chromium.org, May 17 2018

Status: Fixed (was: Assigned)

Sign in to add a comment