Skip to content

Update to Node.js v12#8245

Closed
kumavis wants to merge 21 commits intodevelopfrom
ci-node-v12
Closed

Update to Node.js v12#8245
kumavis wants to merge 21 commits intodevelopfrom
ci-node-v12

Conversation

@kumavis
Copy link
Member

@kumavis kumavis commented Mar 28, 2020

💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐

:::.    :::.    ...    :::::::-.  .,::::::            .:.   .:::.  
`;;;;,  `;;; .;;;;;;;.  ;;,   `';,;;;;''''             ;;  ,;'``;. 
  [[[[[. '[[,[[     \[[,`[[     [[ [[cccc    .:.   .:. [[  ''  ,[['
  $$$ "Y$c$$$$$,     $$$ $$,    $$ $$""""     Y$c.$$"  $$  .c$$P'  
  888    Y88"888,_ _,88P 888_,o8P' 888oo,__    Y88P    88 d88 _,oo,
  MMM     YM  "YMMMMMP"  MMMMP"`   """"YUMMM    MP     MM MMMUP*"^^

💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐 🦊 💐

I created this draft PR to help track barriers to v12 and test progress against CI

node v10 is about to go from 'active LTS' to 'maintenance'
a good time to move us on to the next LTS, v12

https://github.com/nodejs/Release#release-schedule
image

known issues

 SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 79
  • e2e-firefox failure ?

[2020-04-21 15:17:53.647][e2e] TypeError [ERR_MISSING_ARGS]: The "actual" and "expected" arguments must be specified

@kumavis

This comment has been minimized.

@kumavis

This comment has been minimized.

@kumavis kumavis changed the title node v12 Update to Node.js v12 Mar 28, 2020
@kumavis
Copy link
Member Author

kumavis commented Apr 20, 2020

noticed our install script actually had a failing command
improved here #8368

@kumavis
Copy link
Member Author

kumavis commented Apr 20, 2020

( moved todo's in comments into the header )

@kumavis
Copy link
Member Author

kumavis commented Apr 20, 2020

using the github url for ethereumjs-wallet doesnt work, likely some gitignore build file that it exports

/home/circleci/project/app/scripts/account-import-strategies/index.js
  2:20  error  Unable to resolve path to module 'ethereumjs-wallet'             import/no-unresolved
  3:23  error  Unable to resolve path to module 'ethereumjs-wallet/thirdparty'  import/no-unresolved

@kumavis
Copy link
Member Author

kumavis commented Apr 20, 2020

couldnt get the build script to work either

@kumavis
Copy link
Member Author

kumavis commented Apr 20, 2020

ok now we have a "normal" test failure in unit tests

  74 passing (151ms)
  1 failing

  1) permissions middleware
       eth_requestAccounts
         requests accounts for unpermitted origin, and approves on user approval:
      AssertionError [ERR_ASSERTION]: domain should have correct number of permissions
      + expected - actual
      -0
      +1
      at Context.equal (test/unit/app/controllers/permissions/permissions-middleware-test.js:542:14)

@kumavis
Copy link
Member Author

kumavis commented Apr 21, 2020

rebased off of develop

@kumavis
Copy link
Member Author

kumavis commented Apr 23, 2020

e2e-firefox failure: oh yeah this is definitely not correct, only one argument
https://github.com/MetaMask/metamask-extension/blob/develop/test/e2e/metamask-ui.spec.js#L639

@danjm what is this assertion supposed to test?
(edit: see #8388)
added here f81676f#diff-b00929238ad0453812af55a40336e889R518

TypeError [ERR_MISSING_ARGS]: The "actual" and "expected" arguments must be specified

curious how that test passes as is! is it matching false to undefined ?

@kumavis
Copy link
Member Author

kumavis commented Apr 23, 2020

on this image

circleci@9e3b575b76ac:~$ google-chrome --version
Google Chrome 81.0.4044.122 

@kumavis
Copy link
Member Author

kumavis commented Apr 23, 2020

test fix cherry-picked here #8388

@kumavis
Copy link
Member Author

kumavis commented Apr 23, 2020

DevToolsActivePort file doesn't exist

😿

prev attempts:
#7991
#7996

      .addArguments(
        '--disable-dev-shm-usage',
        '--headless',
        '--no-sandbox',
      )

some recommendations in threads

do not run chrome as root.
Also, as a personal suggestion, if dealing with custom Chromium-like binaries, use Operadriver like so: driver = webdriver.Chrome("operadriver", options=options), you won't run into so many issues regarding versions.

  1. Explicitly set the remote debugging port as an argument
  2. Make your driver headless, using chrome Options
options.add_argument("--no-sandbox")
options.add_argument("--remote-debugging-port=9222")
options.headless = True
command_executor = "http://localhost:4444/wd/hub"
driver = webdriver.Remote(command_executor, desired_capabilities=options.to_capabilities())
driver.get("https://google.com")

@kumavis
Copy link
Member Author

kumavis commented Apr 24, 2020

wao somehow e2e-chrome passed ??
edit: failed again, guess its a race condition

@kumavis
Copy link
Member Author

kumavis commented Apr 24, 2020

ok back to the chromedriver problems

more thread finds

Turns out we were setting chromeOptions: instead of goog:chromeOptions:.
Not sure what the difference is, since chromeOptions: always worked for us in the past.

@kumavis
Copy link
Member Author

kumavis commented Apr 24, 2020

 I would suggest you try to use Operadriver instead like so: Selenium::WebDriver::Chrome.driver_path = '/usr/bin/operadriver'.
It's Chrome's responsibility to create DevToolsActivePort file. So if it doesn't exist, it generally means Chrome didn't start up correctly. It's usually not possible for us to remotely find out why Chrome didn't start up.

https://bugs.chromium.org/p/chromedriver/issues/detail?id=3415&can=2&q=DevToolsActivePort

@kumavis
Copy link
Member Author

kumavis commented Apr 24, 2020

Since the error is intermittent, add retry loop.

@kumavis
Copy link
Member Author

kumavis commented Apr 24, 2020

new error:

       can send a simple transaction from one account to another:
     JavascriptError: javascript error: Cannot read property 'shadowRoot' of null
 
  (Session info: headless chrome=81.0.4044.122)
      at Object.throwDecodedError (node_modules/selenium-webdriver/lib/error.js:550:15)
      at parseHttpResponse (node_modules/selenium-webdriver/lib/http.js:563:13)
      at Executor.execute (node_modules/selenium-webdriver/lib/http.js:489:26)
      at processTicksAndRejections (internal/process/task_queues.js:97:5)
      at thenableWebDriverProxy.execute (node_modules/selenium-webdriver/lib/webdriver.js:699:17)
      at ChromeDriver.getExtensionIdByName (test/e2e/webdriver/chrome.js:56:12)
      at Function.build (test/e2e/webdriver/chrome.js:33:25)
      at buildBrowserWebDriver (test/e2e/webdriver/index.js:28:14)
      at buildWebDriver (test/e2e/webdriver/index.js:11:65)
      at withFixtures (test/e2e/helpers.js:20:24)
      at Context.<anonymous> (test/e2e/tests/simple-send.spec.js:14:5)

@kumavis
Copy link
Member Author

kumavis commented Apr 24, 2020

seems like an improvement, maybe a retry wrapper will make the difference

@kumavis
Copy link
Member Author

kumavis commented Oct 15, 2020

closing in favor of #9514

@kumavis kumavis closed this Oct 15, 2020
@rekmarks rekmarks deleted the ci-node-v12 branch March 12, 2021 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants