Page MenuHomePhabricator

CI: Selenium extensions/Popups fails
Closed, DuplicatePublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

  • Submit a patch for an extension that requires Selenium extensions/Popups (such as Math)
  • Investigate failing tests

What happens?:

  • see for example

https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php74-selenium/60205/console

INFO:quibble.commands:Running webdriver test in /workspace/src/extensions/Popups
13:33:02 npm warn EBADENGINE Unsupported engine {
13:33:02 npm warn EBADENGINE   package: undefined,
13:33:02 npm warn EBADENGINE   required: { node: '18.20.2' },
13:33:02 npm warn EBADENGINE   current: { node: 'v20.16.0', npm: '10.8.1' }
13:33:02 npm warn EBADENGINE }
13:33:02 npm warn EBADENGINE Unsupported engine {
13:33:02 npm warn EBADENGINE   package: 'eslint-plugin-jsdoc@42.0.0',
13:33:02 npm warn EBADENGINE   required: { node: '^14 || ^16 || ^17 || ^18 || ^19' },
13:33:02 npm warn EBADENGINE   current: { node: 'v20.16.0', npm: '10.8.1' }
13:33:02 npm warn EBADENGINE }
13:33:06 npm warn deprecated @types/easy-table@1.2.0: This is a stub types definition. easy-table provides its own type definitions, so you do not need this installed.
13:33:06 npm warn deprecated har-validator@5.1.5: this library is no longer supported
13:33:06 npm warn deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
13:33:07 npm warn deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
13:33:08 npm warn deprecated iltorb@2.4.5: The zlib module provides APIs for brotli compression/decompression starting with Node.js v10.16.0, please use it over iltorb
13:33:10 npm warn deprecated core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
13:33:32 npm error code 1
13:33:32 npm error path /workspace/src/extensions/Popups/node_modules/iltorb
13:33:32 npm error command failed
13:33:32 npm error command sh -c node ./scripts/install.js || node-gyp rebuild
13:33:32 npm error make: Entering directory '/workspace/src/extensions/Popups/node_modules/iltorb/build'
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/common/dictionary.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/common/transform.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/dec/bit_reader.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/dec/decode.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/dec/huffman.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/dec/state.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/backward_references.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/backward_references_hq.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/bit_cost.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/block_splitter.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/brotli_bit_stream.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/cluster.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/compress_fragment.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/compress_fragment_two_pass.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/dictionary_hash.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/encode.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/encoder_dict.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/entropy_encode.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/histogram.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/literal_cost.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/memory.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/metablock.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/static_dict.o
13:33:32 npm error   CC(target) Release/obj.target/iltorb/brotli/c/enc/utf8_util.o
13:33:32 npm error   CXX(target) Release/obj.target/iltorb/src/common/allocator.o
13:33:32 npm error make: Leaving directory '/workspace/src/extensions/Popups/node_modules/iltorb/build'
13:33:32 npm error info install installing standalone, skipping download.
13:33:32 npm error gyp info it worked if it ends with ok
13:33:32 npm error gyp info using node-gyp@10.1.0
13:33:32 npm error gyp info using node@20.16.0 | linux | x64
13:33:32 npm error gyp info find Python using Python version 3.7.3 found at "/usr/bin/python3"
13:33:32 npm error gyp http GET https://nodejs.org/download/release/v20.16.0/node-v20.16.0-headers.tar.gz
13:33:32 npm error gyp http 200 https://nodejs.org/download/release/v20.16.0/node-v20.16.0-headers.tar.gz
13:33:32 npm error gyp http GET https://nodejs.org/download/release/v20.16.0/SHASUMS256.txt
13:33:32 npm error gyp http 200 https://nodejs.org/download/release/v20.16.0/SHASUMS256.txt
13:33:32 npm error gyp info spawn /usr/bin/python3
13:33:32 npm error gyp info spawn args [
13:33:32 npm error gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
13:33:32 npm error gyp info spawn args 'binding.gyp',
13:33:32 npm error gyp info spawn args '-f',
13:33:32 npm error gyp info spawn args 'make',
13:33:32 npm error gyp info spawn args '-I',
13:33:32 npm error gyp info spawn args '/workspace/src/extensions/Popups/node_modules/iltorb/build/config.gypi',
13:33:32 npm error gyp info spawn args '-I',
13:33:32 npm error gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
13:33:32 npm error gyp info spawn args '-I',
13:33:32 npm error gyp info spawn args '/cache/node-gyp/20.16.0/include/node/common.gypi',
13:33:32 npm error gyp info spawn args '-Dlibrary=shared_library',
13:33:32 npm error gyp info spawn args '-Dvisibility=default',
13:33:32 npm error gyp info spawn args '-Dnode_root_dir=/cache/node-gyp/20.16.0',
13:33:32 npm error gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
13:33:32 npm error gyp info spawn args '-Dnode_lib_file=/cache/node-gyp/20.16.0/<(target_arch)/node.lib',
13:33:32 npm error gyp info spawn args '-Dmodule_root_dir=/workspace/src/extensions/Popups/node_modules/iltorb',
13:33:32 npm error gyp info spawn args '-Dnode_engine=v8',
13:33:32 npm error gyp info spawn args '--depth=.',
13:33:32 npm error gyp info spawn args '--no-parallel',
13:33:32 npm error gyp info spawn args '--generator-output',
13:33:32 npm error gyp info spawn args 'build',
13:33:32 npm error gyp info spawn args '-Goutput_dir=.'
13:33:32 npm error gyp info spawn args ]
13:33:32 npm error gyp info spawn make
13:33:32 npm error gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
13:33:32 npm error In file included from ../../nan/nan.h:178,
13:33:32 npm error                  from ../src/common/allocator.cc:1:
13:33:32 npm error ../../nan/nan_callbacks.h:55:23: error: ‘AccessorSignature’ is not a member of ‘v8’
13:33:32 npm error  typedef v8::Local<v8::AccessorSignature> Sig;
13:33:32 npm error                        ^~~~~~~~~~~~~~~~~
13:33:32 npm error ../../nan/nan_callbacks.h:55:23: note: suggested alternative: ‘Signature’
13:33:32 npm error  typedef v8::Local<v8::AccessorSignature> Sig;
13:33:32 npm error                        ^~~~~~~~~~~~~~~~~
13:33:32 npm error                        Signature
13:33:32 npm error ../../nan/nan_callbacks.h:55:40: error: template argument 1 is invalid
13:33:32 npm error  typedef v8::Local<v8::AccessorSignature> Sig;
13:33:32 npm error                                         ^
13:33:32 npm error In file included from ../src/common/allocator.cc:1:
13:33:32 npm error ../../nan/nan.h: In function ‘void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, Nan::imp::Sig)’:
13:33:32 npm error ../../nan/nan.h:2551:16: error: no matching function for call to ‘v8::ObjectTemplate::SetAccessor(v8::Local<v8::String>&, void (*&)(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value>&), void (*&)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&), v8::Local<v8::Object>&, v8::AccessControl&, v8::PropertyAttribute&, Nan::imp::Sig&)’
13:33:32 npm error      , signature);
13:33:32 npm error                 ^
13:33:32 npm error In file included from /cache/node-gyp/20.16.0/include/node/v8-function.h:15,
13:33:32 npm error                  from /cache/node-gyp/20.16.0/include/node/v8.h:33,
13:33:32 npm error                  from /cache/node-gyp/20.16.0/include/node/node.h:73,
13:33:32 npm error                  from ../../nan/nan.h:58,
13:33:32 npm error                  from ../src/common/allocator.cc:1:
13:33:32 npm error /cache/node-gyp/20.16.0/include/node/v8-template.h:809:8: note: candidate: ‘void v8::ObjectTemplate::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)’
13:33:32 npm error    void SetAccessor(
13:33:32 npm error         ^~~~~~~~~~~
13:33:32 npm error /cache/node-gyp/20.16.0/include/node/v8-template.h:809:8: note:   no known conversion for argument 7 from ‘Nan::imp::Sig’ {aka ‘int’} to ‘v8::SideEffectType’
13:33:32 npm error /cache/node-gyp/20.16.0/include/node/v8-template.h:816:8: note: candidate: ‘void v8::ObjectTemplate::SetAccessor(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, v8::AccessorNameSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)’
13:33:32 npm error    void SetAccessor(
13:33:32 npm error         ^~~~~~~~~~~
13:33:32 npm error /cache/node-gyp/20.16.0/include/node/v8-template.h:816:8: note:   no known conversion for argument 7 from ‘Nan::imp::Sig’ {aka ‘int’} to ‘v8::SideEffectType’
13:33:32 npm error make: *** [iltorb.target.mk:144: Release/obj.target/iltorb/src/common/allocator.o] Error 1
13:33:32 npm error gyp ERR! build error 
13:33:32 npm error gyp ERR! stack Error: `make` failed with exit code: 2
13:33:32 npm error gyp ERR! stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:209:23)
13:33:32 npm error gyp ERR! System Linux 6.1.0-0.deb11.7-cloud-amd64
13:33:32 npm error gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
13:33:32 npm error gyp ERR! cwd /workspace/src/extensions/Popups/node_modules/iltorb
13:33:32 npm error gyp ERR! node -v v20.16.0
13:33:32 npm error gyp ERR! node-gyp -v v10.1.0
13:33:32 npm error gyp ERR! not ok
13:33:32 npm error A complete log of this run can be found in: /cache/npm/_logs/2024-12-15T12_33_01_526Z-debug-0.log
13:33:32 INFO:quibble.commands:<<< Finish: Browser tests: mediawiki/extensions/Math, mediawiki/core, mediawiki/extensions/AbuseFilter, mediawiki/extensions/AntiSpoof, mediawiki/extensions/ArticlePlaceholder, mediawiki/extensions/BetaFeatures, mediawiki/extensions/CentralAuth, mediawiki/extensions/CheckUser, mediawiki/extensions/CirrusSearch, mediawiki/extensions/Cite, mediawiki/extensions/CodeEditor, mediawiki/extensions/CommunityConfiguration, mediawiki/extensions/CommunityConfigurationExample, mediawiki/extensions/ConfirmEdit, mediawiki/extensions/DiscussionTools, mediawiki/extensions/Echo, mediawiki/extensions/Elastica, mediawiki/extensions/EventBus, mediawiki/extensions/EventLogging, mediawiki/extensions/EventStreamConfig, mediawiki/extensions/FlaggedRevs, mediawiki/extensions/Flow, mediawiki/extensions/Gadgets, mediawiki/extensions/GeoData, mediawiki/extensions/GlobalBlocking, mediawiki/extensions/GlobalPreferences, mediawiki/extensions/GuidedTour, mediawiki/extensions/Linter, mediawiki/extensions/MobileApp, mediawiki/extensions/MobileFrontend, mediawiki/extensions/PageImages, mediawiki/extensions/ParserFunctions, mediawiki/extensions/PdfHandler, mediawiki/extensions/Popups, mediawiki/extensions/PropertySuggester, mediawiki/extensions/Renameuser, mediawiki/extensions/Scribunto, mediawiki/extensions/SecurePoll, mediawiki/extensions/SiteMatrix, mediawiki/extensions/SpamBlacklist, mediawiki/extensions/SyntaxHighlight_GeSHi, mediawiki/extensions/TemplateData, mediawiki/extensions/TextExtracts, mediawiki/extensions/Thanks, mediawiki/extensions/TimedMediaHandler, mediawiki/extensions/TorBlock, mediawiki/extensions/UniversalLanguageSelector, mediawiki/extensions/VisualEditor, mediawiki/extensions/WikiEditor, mediawiki/extensions/Wikibase, mediawiki/extensions/WikibaseCirrusSearch, mediawiki/extensions/WikibaseLexeme, mediawiki/extensions/WikibaseLexemeCirrusSearch, mediawiki/extensions/WikibaseMediaInfo, mediawiki/extensions/WikibaseQualityConstraints, mediawiki/extensions/WikimediaBadges, mediawiki/extensions/WikimediaEvents, mediawiki/extensions/cldr, mediawiki/skins/MinervaNeue, mediawiki/skins/Vector, mediawiki/vendor, in 380.138 s
13:33:32 DEBUG:quibble.cmd:No quibble.yaml in /workspace/src/extensions/Math
13:33:32 INFO:backend.ChromeWebDriver:Terminating ChromeWebDriver
13:33:32 INFO:backend.Xvfb:Terminating Xvfb
13:33:32 INFO:backend.MySQL:Terminating MySQL
13:33:34 Traceback (most recent call last):
13:33:34   File "/usr/local/bin/quibble", line 8, in <module>
13:33:34     sys.exit(main())
13:33:34   File "/usr/local/lib/python3.7/dist-packages/quibble/cmd.py", line 960, in main
13:33:34     dry_run=args.dry_run,
13:33:34   File "/usr/local/lib/python3.7/dist-packages/quibble/cmd.py", line 620, in execute
13:33:34     raise called_process_error
13:33:34   File "/usr/local/lib/python3.7/dist-packages/quibble/cmd.py", line 611, in execute
13:33:34     quibble.commands.execute_command(command)
13:33:34   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 47, in execute_command
13:33:34     command.execute()
13:33:34   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 1352, in execute
13:33:34     self._run_webdriver(project_dir)
13:33:34   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 1372, in _run_webdriver
13:33:34     _npm_install(project_dir)
13:33:34   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 103, in _npm_install
13:33:34     run([quibble.get_npm_command(), cmd], cwd=project_dir)
13:33:34   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 94, in run
13:33:34     output=collected_output.decode('utf-8', errors='backslashreplace'),
13:33:34 subprocess.CalledProcessError: Command '['npm', 'ci']' returned non-zero exit status 1.
13:33:35 Build step 'Execute shell' marked build as failure
13:33:35 [PostBuildScript] - [INFO] Executing post build scripts.
13:33:35 [quibble-vendor-mysql-php74-selenium] $ /bin/bash /tmp/jenkins13592668565038471503.sh
13:33:35 + set -o pipefail
13:33:35 ++ pwd
13:33:35 + '[' '!' -d /srv/jenkins/workspace/quibble-vendor-mysql-php74-selenium/log ']'
13:33:35 ++ pwd
13:33:35 + exec docker run --entrypoint=/bin/rm --volume /srv/jenkins/workspace/quibble-vendor-mysql-php74-selenium/log:/log --security-opt seccomp=unconfined --init --rm --label jenkins.job=quibble-vendor-mysql-php74-selenium --label jenkins.build=60205 --env-file /dev/fd/63 docker-registry.wikimedia.org/buster:latest -fR /log/rawSeleniumVideoGrabs
13:33:35 ++ /usr/bin/env
13:33:35 ++ egrep -v '^(HOME|SHELL|PATH|LOGNAME|MAIL)='
13:33:36 [PostBuildScript] - [INFO] Executing post build scripts.
13:33:36 [quibble-vendor-mysql-php74-selenium] $ /bin/bash -xe /tmp/jenkins10414650140683431194.sh
13:33:36 + find log/ -name 'mw-debug-*.log' -exec gzip '{}' +

What should have happened instead?:

  • Test should pass

Software version (on Special:Version page; skip for WMF-hosted wikis like Wikipedia):

Other information (browser name/version, screenshots, etc.):

I tried to update to the lastet version from within the math extension, but this is not picked up by ci, see https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Math/+/1104480