udevbe / greenfield

HTML5 Wayland compositor :seedling:
GNU Affero General Public License v3.0
913 stars 28 forks source link

Error: Cannot find module 'app-endpoint-native #52

Closed jschueller closed 3 years ago

jschueller commented 3 years ago

Hello,

I'm trying to get the demo running on ubuntu 18.04 host, firefox 83, as told in the README.

First I tried to fix the server build with fix from #51 and this patch:

--- a/app-endpoint-server/package.json
+++ b/app-endpoint-server/package.json
@@ -17,13 +17,13 @@
     "start": "node index.js"
   },
   "dependencies": {
-    "app-endpoint-native": "link:../app-endpoint-native",
+    "app-endpoint-native": "file:../app-endpoint-native",
     "epoll": "^4.0.0",
     "json5": "^2.1.3",
     "pino": "^6.8.0",
     "pino-pretty": "^4.1.0",
     "websocket-stream": "^5.5.2",
-    "westfield-endpoint": "link:../../westfield/server/node/endpoint",
+    "westfield-endpoint": "^0.3.2",
     "ws": "^7.4.1"

(seems the "link" keyword is not accepted by npm anymore, and I dont have westfield-endpoint package, trying the npm one)

then I follow the procedure to run the gt3 demo and get the following trace from the server:

Starting local_app-endpoint-server_1 ... 
Starting local_app-endpoint-server_1
Starting local_nginx_1 ... 
Starting local_nginx_1
Starting local_xdummy_1 ... 
Starting local_app-endpoint-server_1 ... done
Attaching to local_xdummy_1, local_nginx_1, local_app-endpoint-server_1
xdummy_1               | libudev: udev_has_devtmpfs: name_to_handle_at on /dev: Operation not permitted
nginx_1                | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
nginx_1                | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
xdummy_1               | 
xdummy_1               | X.Org X Server 1.16.4
nginx_1                | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
xdummy_1               | Release Date: 2014-12-20
nginx_1                | 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
xdummy_1               | X Protocol Version 11, Revision 0
xdummy_1               | Build Operating System: Linux 4.9.0-4-amd64 x86_64 Debian
nginx_1                | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
xdummy_1               | Current Operating System: Linux ef1a8293ccf7 5.4.0-56-generic #62~18.04.1-Ubuntu SMP Tue Nov 24 10:07:50 UTC 2020 x86_64
xdummy_1               | Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-56-generic root=UUID=7765602d-adb4-4b91-b769-46d886c76334 ro quiet splash vt.handoff=1
nginx_1                | /docker-entrypoint.sh: Configuration complete; ready for start up
xdummy_1               | Build Date: 14 October 2017  10:41:31AM
xdummy_1               | xorg-server 2:1.16.4-1+deb8u2 (http://www.debian.org/support) 
xdummy_1               | Current version of pixman: 0.32.6
xdummy_1               |        Before reporting problems, check http://wiki.x.org
xdummy_1               |        to make sure that you have the latest version.
xdummy_1               | Markers: (--) probed, (**) from config file, (==) default setting,
xdummy_1               |        (++) from command line, (!!) notice, (II) informational,
xdummy_1               |        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
xdummy_1               | (++) Log file: "./xdummy.log", Time: Mon Dec 14 17:43:36 2020
xdummy_1               | (++) Using config file: "/etc/X11/xorg.conf"
xdummy_1               | (==) Using system config directory "/usr/share/X11/xorg.conf.d"
app-endpoint-server_1  | 
app-endpoint-server_1  | > greenfield-app-endpoint-server@0.0.0 start /app/app-endpoint-server
app-endpoint-server_1  | > node index.js
app-endpoint-server_1  | 
app-endpoint-server_1  | {"level":30,"time":1607967818589,"pid":18,"hostname":"1152a378e0f2","name":"app-endpoint-server","msg":"Listening on 0.0.0.0:8081."}
nginx_1                | 2020/12/14 17:44:43 [error] 21#21: *1 upstream prematurely closed connection while reading response header from upstream, client: 172.19.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "http://172.19.0.3:8081/", host: "localhost"
nginx_1                | 172.19.0.1 - - [14/Dec/2020:17:44:43 +0000] "GET / HTTP/1.1" 502 157 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0"
app-endpoint-server_1  | {"level":30,"time":1607968009095,"pid":18,"hostname":"1152a378e0f2","name":"app-endpoint-server","msg":"Received web socket upgrade request with compositor session id: 1f69cd08-4410-435a-98c6-64e97bb12755. Delegating to a session child process."}
app-endpoint-server_1  | {"level":30,"time":1607968009096,"pid":18,"hostname":"1152a378e0f2","name":"app-endpoint-server","msg":"Creating new session child process."}
app-endpoint-server_1  | internal/modules/cjs/loader.js:638
app-endpoint-server_1  |     throw err;
app-endpoint-server_1  |     ^
app-endpoint-server_1  | 
app-endpoint-server_1  | Error: Cannot find module 'app-endpoint-native'
app-endpoint-server_1  |     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
app-endpoint-server_1  |     at Function.Module._load (internal/modules/cjs/loader.js:562:25)
app-endpoint-server_1  |     at Module.require (internal/modules/cjs/loader.js:692:17)
app-endpoint-server_1  |     at require (internal/modules/cjs/helpers.js:25:18)
app-endpoint-server_1  |     at Object.<anonymous> (/app/app-endpoint-server/src/encoding/X264OpaqueEncoder.js:27:27)
app-endpoint-server_1  |     at Module._compile (internal/modules/cjs/loader.js:778:30)
app-endpoint-server_1  |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
app-endpoint-server_1  |     at Module.load (internal/modules/cjs/loader.js:653:32)
app-endpoint-server_1  |     at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
app-endpoint-server_1  |     at Function.Module._load (internal/modules/cjs/loader.js:585:3)
app-endpoint-server_1  | {"level":30,"time":1607968009272,"pid":18,"hostname":"1152a378e0f2","name":"app-endpoint-server","msg":"Session child [25] exit."}
Zubnix commented 3 years ago

Indeed, I can reproduce it here as well. Will investigate.

Zubnix commented 3 years ago

Could you try again with latest master and confirm it is fixed now?

jschueller commented 3 years ago

yes, I still got an error: "Error: Cannot find module './protocol/wl_surface_interceptor'"

app-endpoint-server_1  | {"level":30,"time":1608108294969,"pid":18,"hostname":"6e7a6c80d735","name":"app-endpoint-server","msg":"Received web socket upgrade request with compositor session id: ae974bf1-3ef1-417e-b7c4-a6a45f1e8cc0. Delegating to a session child process."}
app-endpoint-server_1  | {"level":30,"time":1608108294969,"pid":18,"hostname":"6e7a6c80d735","name":"app-endpoint-server","msg":"Creating new session child process."}
app-endpoint-server_1  | internal/modules/cjs/loader.js:638
app-endpoint-server_1  |     throw err;
app-endpoint-server_1  |     ^
app-endpoint-server_1  | 
app-endpoint-server_1  | Error: Cannot find module './protocol/wl_surface_interceptor'
app-endpoint-server_1  |     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
app-endpoint-server_1  |     at Function.Module._load (internal/modules/cjs/loader.js:562:25)
app-endpoint-server_1  |     at Module.require (internal/modules/cjs/loader.js:692:17)
app-endpoint-server_1  |     at require (internal/modules/cjs/helpers.js:25:18)
app-endpoint-server_1  |     at Object.<anonymous> (/app/app-endpoint-server/src/SurfaceBufferEncoding.js:29:30)
app-endpoint-server_1  |     at Module._compile (internal/modules/cjs/loader.js:778:30)
app-endpoint-server_1  |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
app-endpoint-server_1  |     at Module.load (internal/modules/cjs/loader.js:653:32)
app-endpoint-server_1  |     at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
app-endpoint-server_1  |     at Function.Module._load (internal/modules/cjs/loader.js:585:3)
app-endpoint-server_1  | {"level":30,"time":1608108295151,"pid":18,"hostname":"6e7a6c80d735","name":"app-endpoint-server","msg":"Session child [25] exit."}
Zubnix commented 3 years ago

It seems the protocol generation, tied to the prepare hook, is no longer automatically triggered by an npm install. Unfortunately it was picking up my locally generated sources which hid the error for me. I've enabled it explicitly now and tested on a clean build. Could you try again?

jschueller commented 3 years ago

it works! thanks