Closed Bug 1150041 Opened 9 years ago Closed 9 years ago

Incorrect variable assignment of max_len in GeckoDriver#multiAction

Categories

(Remote Protocol :: Marionette, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(firefox40 fixed)

RESOLVED FIXED
mozilla40
Tracking Status
firefox40 --- fixed

People

(Reporter: njpark, Assigned: ato)

Details

(Keywords: pi-marionette-server, regression, Whiteboard: fbimage)

Attachments

(2 files, 1 obsolete file)

STR:
This started around roughly the same time when the bug 1149167 started, but backing out bug 1075670, it still reproduces.
Using pinch() method in gestures.py (in my case, ran https://github.com/npark-mozilla/gaia/blob/master/tests/python/gaia-ui-tests/gaiatest/tests/graphics/test_orientation_zoom.py) causes following error:

TEST-UNEXPECTED-ERROR | test_orientation_zoom.py TestGfxSmokeTestOZ.test_orientation_zoom | MarionetteException: MarionetteException: assignment to undeclared variable value
stacktrace:
	GeckoDriver.prototype.multiAction@chrome://marionette/content/driver.js:1927:1
	TaskImpl_run@resource://gre/modules/Task.jsm:330:41
	TaskImpl@resource://gre/modules/Task.jsm:275:3
	createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14
	Task_spawn@resource://gre/modules/Task.jsm:164:12
	TaskImpl_handleResultValue@resource://gre/modules/Task.jsm:381:1
	TaskImpl_run@resource://gre/modules/Task.jsm:322:13
	TaskImpl@resource://gre/modules/Task.jsm:275:3
	createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14
	Task_spawn@resource://gre/modules/Task.jsm:164:12
	CommandProcessor.prototype.execute@chrome://marionette/content/command.js:158:13
	Dispatcher.prototype.onPacket@chrome://marionette/content/dispatcher.js:75:5
	DebuggerTransport.prototype._onJSONObjectReady/<@chrome://marionette/content/server.js -> resource://gre/modules/devtools/transport/transport.js:471:9
	makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14
	makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14



Traceback (most recent call last):
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_client-0.9-py2.7.egg/marionette/marionette_test.py", line 290, in run
    testMethod()
  File "/Users/mozilla/GitRepo/gaia/tests/python/gaia-ui-tests/gaiatest/tests/graphics/test_orientation_zoom.py", line 11, in test_orientation_zoom
    self.orientation_zoom_check()
  File "/Users/mozilla/GitRepo/gaia/tests/python/gaia-ui-tests/gaiatest/tests/graphics/orientation_zoom_base.py", line 57, in orientation_zoom_check
    self.pinch(image._current_frame_locator, 'in', 20)
  File "/Users/mozilla/GitRepo/gaia/tests/python/gaia-ui-tests/gaiatest/gaia_graphics_test.py", line 197, in pinch
    -disp_x, -disp_y, disp_x, disp_y, duration)
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/gestures.py", line 71, in pinch
    multiAction.add(action1).add(action2).perform()
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/marionette.py", line 455, in perform
    return self.marionette._send_message('multiAction', 'ok', value=self.multi_actions, max_length=self.max_length)
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/decorators.py", line 36, in _
    return func(*args, **kwargs)
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/marionette.py", line 670, in _send_message
    self._handle_error(response)
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/marionette.py", line 755, in _handle_error
    raise errors.MarionetteException(message=message, status=status, stacktrace=stacktrace)

Version Info:
Build ID               20150401010204
Gaia Revision          03164bd160809747e6a198e0dba1b7c3ee7789f5
Gaia Date              2015-03-31 14:48:14
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/18a8ea7c2c62
Gecko Version          40.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150401.043608
Firmware Date          Wed Apr  1 04:36:19 EDT 2015
Bootloader             L1TC000118D0

Perhaps this could be caused by what davehunt suggested, as in https://bugzilla.mozilla.org/show_bug.cgi?id=1149167#c2.  Is there a way to verify this?
Keywords: regression
Whiteboard: fbimage
OS: Mac OS X → Gonk (Firefox OS)
Hardware: x86 → ARM
This is due to an incorrect variable assignment in https://dxr.mozilla.org/mozilla-central/source/testing/marionette/driver.js?from=marionette/driver.js#1927
Assignee: nobody → ato
Status: NEW → ASSIGNED
Also, thanks for the stack trace.  That's immensely helpful!
Summary: Flame: pinch() method in gestures.py crashes → Incorrect variable assignment of max_len in GeckoDriver#multiAction
This regressed after bug 1107706.
Attached file MozReview Request: bz://1150041/ato (obsolete) —
/r/6473 - Bug 1150041: Fix max_len extraction in GeckoDriver#multiAction

Pull down this commit:

hg pull -r a22302712be7cf2eb8ac49fa2d221b8a2ea923f8 https://reviewboard-hg.mozilla.org/gecko/
Attachment #8586808 - Flags: review?(dburns)
Comment on attachment 8586808 [details]
MozReview Request: bz://1150041/ato

https://reviewboard.mozilla.org/r/6471/#review5355

Ship It!
Attachment #8586808 - Flags: review?(dburns) → review+
Wow, thanks for the fast response!  I'll check out the moz inbound build this afternoon.
https://hg.mozilla.org/mozilla-central/rev/f8270f649eb3
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
I tested the latest nightly, which is after the above changelog, but I still get the error as below.

Here is my version info:
Build ID               20150402010204
Gaia Revision          fb7414fa6f5dbb898adc5bd2bbd9fb75df0d0054
Gaia Date              2015-04-01 17:30:27
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/d222742756c4
Gecko Version          40.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150402.043758
Firmware Date          Thu Apr  2 04:38:07 EDT 2015
Bootloader             L1TC000118D0

TEST-UNEXPECTED-ERROR | test_orientation_zoom.py TestGfxSmokeTestOZ.test_orientation_zoom | MarionetteException: MarionetteException: assignment to undeclared variable value
stacktrace:
	GeckoDriver.prototype.multiAction@chrome://marionette/content/driver.js:1927:1
	TaskImpl_run@resource://gre/modules/Task.jsm:330:41
	TaskImpl@resource://gre/modules/Task.jsm:275:3
	createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14
	Task_spawn@resource://gre/modules/Task.jsm:164:12
	TaskImpl_handleResultValue@resource://gre/modules/Task.jsm:381:1
	TaskImpl_run@resource://gre/modules/Task.jsm:322:13
	TaskImpl@resource://gre/modules/Task.jsm:275:3
	createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14
	Task_spawn@resource://gre/modules/Task.jsm:164:12
	CommandProcessor.prototype.execute@chrome://marionette/content/command.js:158:13
	Dispatcher.prototype.onPacket@chrome://marionette/content/dispatcher.js:75:5
	DebuggerTransport.prototype._onJSONObjectReady/<@chrome://marionette/content/server.js -> resource://gre/modules/devtools/transport/transport.js:471:9
	makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14
	makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14



Traceback (most recent call last):
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_client-0.9-py2.7.egg/marionette/marionette_test.py", line 290, in run
    testMethod()
  File "/Users/mozilla/GitRepo/gaia/tests/python/gaia-ui-tests/gaiatest/tests/graphics/test_orientation_zoom.py", line 11, in test_orientation_zoom
    self.orientation_zoom_check()
  File "/Users/mozilla/GitRepo/gaia/tests/python/gaia-ui-tests/gaiatest/tests/graphics/orientation_zoom_base.py", line 57, in orientation_zoom_check
    self.pinch(image._current_frame_locator, 'in', 20)
  File "/Users/mozilla/GitRepo/gaia/tests/python/gaia-ui-tests/gaiatest/gaia_graphics_test.py", line 197, in pinch
    -disp_x, -disp_y, disp_x, disp_y, duration)
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/gestures.py", line 71, in pinch
    multiAction.add(action1).add(action2).perform()
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/marionette.py", line 455, in perform
    return self.marionette._send_message('multiAction', 'ok', value=self.multi_actions, max_length=self.max_length)
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/decorators.py", line 36, in _
    return func(*args, **kwargs)
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/marionette.py", line 670, in _send_message
    self._handle_error(response)
  File "/Users/mozilla/.virtualenvs/2.2/lib/python2.7/site-packages/marionette_driver-0.2-py2.7.egg/marionette_driver/marionette.py", line 755, in _handle_error
    raise errors.MarionetteException(message=message, status=status, stacktrace=stacktrace)
TEST-INFO took 127689ms

am I mistaken something? I also get the same result in the latest mozilla-inbound build.
Flags: needinfo?(ato)
Reading your stack trace more carefully, I see it refers to the `value` variable and not `max_len` which I fixed.  `max_len` was still wrong, but it didn't address the issue you reported.

According to https://dxr.mozilla.org/mozilla-central/source/testing/marionette/driver/marionette_driver/marionette.py#501 `value` is the correct parameter to extract, so to know more about what’s wrong I’ll need to look at the gecko.log.

Sorry for the inconvenience!
Flags: needinfo?(ato) → needinfo?(npark)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
great! so I wasn't mistaken :).  thanks for looking at this!
Flags: needinfo?(npark)
Attached file 1150041.log
B2G log when the bug happened.  (The error happens almost at the end of the log)
Hi Andreas, did I provide the correct log in Comment 12? Let me know if you need anything else from me, since this bug makes some of the test suites to fail at the moment.
Flags: needinfo?(ato)
Bug 1153240 fixes this.
Status: REOPENED → RESOLVED
Closed: 9 years ago9 years ago
Flags: needinfo?(ato)
Resolution: --- → FIXED
Attachment #8586808 - Attachment is obsolete: true
Attachment #8619942 - Flags: review+
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: