Closed Bug 1538996 Opened 7 years ago Closed 7 years ago

running tc-web-server fails

Categories

(Taskcluster :: Services, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: dustin, Assigned: dustin)

Details

I can replicate on three systems to which I have access. Here's an unedited reproduction:

dustin@jemison ~/tmp $ nvm use 10.15.3
Now using node v10.15.3 (npm v6.4.1)
dustin@jemison ~/tmp $ git clone https://github.com/taskcluster/taskcluster
Cloning into 'taskcluster'...
remote: Enumerating objects: 54934, done.
remote: Total 54934 (delta 0), reused 0 (delta 0), pack-reused 54934
Receiving objects: 100% (54934/54934), 26.77 MiB | 8.53 MiB/s, done.
Resolving deltas: 100% (34856/34856), done.
dustin@jemison ~/tmp $ cd taskcluster
dustin@jemison ~/tmp/taskcluster $ npm install --global yarn
/home/dustin/.nvm/versions/node/v10.15.3/bin/yarn -> /home/dustin/.nvm/versions/node/v10.15.3/lib/node_modules/yarn/bin/yarn.js
/home/dustin/.nvm/versions/node/v10.15.3/bin/yarnpkg -> /home/dustin/.nvm/versions/node/v10.15.3/lib/node_modules/yarn/bin/yarn.js
+ yarn@1.13.0
updated 1 package in 0.566s
dustin@jemison ~/tmp/taskcluster $ yarn
yarn install v1.13.0
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
info fsevents@1.2.7: The platform "linux" is incompatible with this module.
info "fsevents@1.2.7" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
warning " > @neutrinojs/mocha@9.0.0-rc.0" has incorrect peer dependency "mocha@^5.0.0".
[5/5] Building fresh packages...
Done in 6.72s.
dustin@jemison ~/tmp/taskcluster $ yarn workspace taskcluster-web-server start
yarn workspace v1.13.0
yarn run v1.13.0
$ NODE_ENV=development webpack

webpack is watching the files…

Hash: 286e0143862bd2760f80
Version: webpack 4.29.6
Time: 1122ms
Built at: 03/25/2019 6:58:17 PM
   Asset     Size  Chunks             Chunk Names
index.js  495 KiB   index  [emitted]  index
GraphQLError: Syntax Error: Unexpected [
    at syntaxError (/home/dustin/tmp/taskcluster/node_modules/graphql/error/syntaxError.js:24:10)
    at unexpected (/home/dustin/tmp/taskcluster/node_modules/graphql/language/parser.js:1483:33)
    at parseDefinition (/home/dustin/tmp/taskcluster/node_modules/graphql/language/parser.js:155:9)
    at many (/home/dustin/tmp/taskcluster/node_modules/graphql/language/parser.js:1513:16)
    at parseDocument (/home/dustin/tmp/taskcluster/node_modules/graphql/language/parser.js:115:18)
    at Object.parse (/home/dustin/tmp/taskcluster/node_modules/graphql/language/parser.js:50:10)
    at Object.buildSchemaFromTypeDefinitions (/home/dustin/tmp/taskcluster/node_modules/graphql-tools/dist/generate/buildSchemaFromTypeDefinitions.js:19:33)
    at makeExecutableSchema (/home/dustin/tmp/taskcluster/node_modules/graphql-tools/dist/makeExecutableSchema.js:26:29)
    at module.exports../src/createSchema.js.__webpack_exports__.default.options (/home/dustin/tmp/taskcluster/services/web-server/build/index.js:774:157)
    at setup (/home/dustin/tmp/taskcluster/services/web-server/build/index.js:1383:80)
    at Promise (/home/dustin/tmp/taskcluster/libraries/loader/src/loader.js:148:33)
    at new Promise (<anonymous>)
    at loaded.(anonymous function).Promise.all.then.deps (/home/dustin/tmp/taskcluster/libraries/loader/src/loader.js:146:18)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
    at startup (internal/bootstrap/node.js:283:19)

Debugging what it's trying to parse, it's trying to parse the string "[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]"

One of these systems is Ubuntu 18.04.2, and two are Fedora 29.

services/web-server/build/index.js

1381   schema: {
1382     requires: [],
1383     setup: () => Object(_createSchema__WEBPACK_IMPORTED_MODULE_13__["default"])({                                                                                                                                                                                                                                                                                                                                                                                                                                         
1384       typeDefs: (_graphql__WEBPACK_IMPORTED_MODULE_16___default()),
1385       resolvers: (_resolvers__WEBPACK_IMPORTED_MODULE_15___default()),
1386       resolverValidationOptions: {
1387         requireResolversForResolveType: false
1388       },
1389       validationRules: [graphql_depth_limit__WEBPACK_IMPORTED_MODULE_1___default()(10), Object(graphql_validation_complexity__WEBPACK_IMPORTED_MODULE_2__["createComplexityLimitRule"])(1000)]
1390     })
1391   },

Applying

diff --git a/services/web-server/src/index.js b/services/web-server/src/index.js
index 927f4de5..5f4056cd 100644
--- a/services/web-server/src/index.js
+++ b/services/web-server/src/index.js
@@ -85,25 +85,27 @@ const load = loader(
         new PulseEngine({
           pulseClient,
           monitor: monitor.monitor('pulse-engine'),
         }),
     },
 
     schema: {
       requires: [],
-      setup: () =>
-        createSchema({
+      setup: () => {
+        console.log(`typeDefs: ${JSON.stringify(typeDefs)}`);
+        return createSchema({
           typeDefs,
           resolvers,
           resolverValidationOptions: {
             requireResolversForResolveType: false,
           },
           validationRules: [depthLimit(10), createComplexityLimitRule(1000)],
-        }),
+        });
+      },
     },
 
     context: {
       requires: ['cfg', 'pulseEngine'],
       setup: ({ cfg, pulseEngine }) =>
         createContext({
           pulseEngine,
           rootUrl: cfg.taskcluster.rootUrl,

gives

typeDefs: "[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]\n[object Module]"

I'm guessing that the magic in services/web-server/src/graphql/index.js

  1 const importer = require.context('./', true, /\.graphql$/);                                                                                                                                                                                                                                                                                                                                                                                                                                                                
  2 const keys = [...new Set(['./Root.graphql', ...importer.keys()])];
  3 
  4 module.exports = [
  5   ...keys.reduce((typeDefs, key) => typeDefs.add(importer(key)), new Set()),
  6 ].join('\n');

no longer works?

aed11bbf3b0eba07caba51db539027090ce42ce0 is the first bad commit
commit aed11bbf3b0eba07caba51db539027090ce42ce0
Author: Renovate Bot <bot@renovateapp.com>
Date:   Mon Mar 25 13:34:31 2019 +0000

    Update dependency raw-loader to v2

:100644 100644 597bf6e32da99581f929cf35c8129f0c55c7642f 31ce4687f90e6cc05d26dc464e14e6aa64a9c67e M	package.json
:100644 100644 b058944a6f9f92bc4d2a48cf8946854d15563739 944bc68834afa0031b62854def977a9c4c532a31 M	yarn.lock

haha, ok, that's on me, I merged that.

Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.