gristlabs / grist-core

Grist is the evolution of spreadsheets.
https://www.getgrist.com/
Apache License 2.0
6.95k stars 305 forks source link

New setup [pyodide sandbox] = warn: Sandbox sending SIGKILL #1131

Open Vladimir-Va opened 1 month ago

Vladimir-Va commented 1 month ago

Hello Grist team. I try to install gristlabs/grist on remote VPS (use Coolify) Running Grist as user 1001 with primary group 1001 Host folders same user 1001 with primary group 1001 Setup stops on row: 2024-07-29 18:07:59.226 - debug: Sandbox exited with code null signal SIGKILL sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test

The installation does not complete, what could be the problem?

2024-07-29 18:07:50.816 - debug: 3-pipe Sandbox started sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 18:07:55.065 - info: Sandbox stderr: [pyodide sandbox] [package] Loading astroid, asttokens, chardet, et_xmlfile, executing, friendly_traceback, iso8601, lazy_object_proxy, openpyxl, phonenumberslite, pure_eval, python_dateutil, roman, six, sortedcontainers, stack_data, typing_extensions, unittest_xml_reporting, wrapt sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 18:07:55.917 - info: Sandbox stderr: [pyodide sandbox] [package] Loaded et_xmlfile, executing, astroid, iso8601, pure_eval, python_dateutil, roman, six, sortedcontainers, stack_data, typing_extensions, unittest_xml_reporting, wrapt, asttokens, chardet, friendly_traceback, openpyxl, lazy_object_proxy, phonenumberslite sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 18:07:58.188 - info: Sandbox stderr: [pyodide sandbox] [py] [INFO] [main] Ready sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 18:07:58.201 - debug: NSandbox pyCall sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test, funcName=get_version, loadMs=7384
2024-07-29 18:07:58.202 - debug: Sandbox shutdown starting sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 18:07:59.203 - warn: Sandbox sending SIGKILL sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 18:07:59.226 - debug: Sandbox exited with code null signal SIGKILL sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
paulfitz commented 1 month ago

@Vladimir-Va those messages may be normal, Grist currently creates and then destroys a "sandbox" on startup just to make sure it is correctly configured. But you're saying the installation doesn't work, Grist doesn't come up? Are there any error messages just before the Sandbox set?

Vladimir-Va commented 1 month ago

@paulfitz Thank you for feedback The full log is below, this is the furthest I could get so far.

Running Grist as user 1001 with primary group 1001
Welcome to Grist.
Setting up database...
Database setup complete.
2024-07-29 21:23:46.957 - info: Loading config file from /persist/config.json
2024-07-29 21:23:49.379 - info: == Grist version is 1.1.16 (commit unknown)
2024-07-29 21:23:49.389 - debug: skipping incomplete language ar (set GRIST_OFFER_ALL_LANGUAGES if you want it)
2024-07-29 21:23:49.397 - debug: skipping incomplete language cs (set GRIST_OFFER_ALL_LANGUAGES if you want it)
2024-07-29 21:23:49.416 - debug: skipping incomplete language fa (set GRIST_OFFER_ALL_LANGUAGES if you want it)
2024-07-29 21:23:49.436 - debug: skipping incomplete language nl (set GRIST_OFFER_ALL_LANGUAGES if you want it)
2024-07-29 21:23:49.469 - debug: skipping incomplete language th (set GRIST_OFFER_ALL_LANGUAGES if you want it)
2024-07-29 21:23:50.287 - info: OIDCConfig: initialized with issuer https://sso.server.tld/application/o/grist/.well-known/openid-configuration
2024-07-29 21:23:50.311 - warn: did not find an appropriately named example workspace in deployment
2024-07-29 21:23:50.321 - info: No plugins found in directory: /grist/.grist/plugins
2024-07-29 21:23:50.337 - info: Found 2 valid plugins on the system
2024-07-29 21:23:50.338 - debug: PLUGIN builtIn/core -- /grist/plugins/core
2024-07-29 21:23:50.338 - debug: PLUGIN bundled/grist-bundled -- /grist/node_modules/@gristlabs/grist-widget/dist/plugins/grist-bundled
2024-07-29 21:23:50.393 - info: Server timeouts: keepAliveTimeout 305000 headersTimeout 306000
2024-07-29 21:23:50.396 - info: server(home,docs,static) available at 0.0.0.0:8484
2024-07-29 21:23:50.425 - warn: Failed to create GoogleAuth endpoint: GOOGLE_CLIENT_SECRET is not defined
2024-07-29 21:23:50.427 - info: DocWorkerMap.addWorker testDocWorkerId_8484
2024-07-29 21:23:50.436 - info: activity docCount=0, orgCount=1, orgInGoodStandingCount=1, userCount=5, userWithLoginCount=5
2024-07-29 21:23:50.437 - info: DocWorkerMap.setWorkerAvailability testDocWorkerId_8484 true
2024-07-29 21:23:50.446 - info: Server timeouts: keepAliveTimeout 305000 headersTimeout 306000
2024-07-29 21:23:50.446 - info: pluginServer available at 0.0.0.0:42275
2024-07-29 21:23:50.448 - warn: Setting an ALLOWED_WEBHOOK_DOMAINS wildcard without a GRIST_HTTPS_PROXY exposes your internal network
2024-07-29 21:23:50.448 - info: == appRoot: /grist
2024-07-29 21:23:50.449 - info: == i18:namespace: client,server
2024-07-29 21:23:50.449 - info: == docsRoot: /doc
2024-07-29 21:23:50.449 - info: == defaultBaseDomain: grist.server.tld
2024-07-29 21:23:50.449 - info: == tag: unknown
2024-07-29 21:23:50.449 - info: == database: postgres://192.168.0.4:5432/grist
2024-07-29 21:23:50.449 - info: == userRoot: /grist/.grist
2024-07-29 21:23:50.450 - info: == bundledRoot: /grist/node_modules/@gristlabs/grist-widget/dist
2024-07-29 21:23:50.450 - info: == instanceRoot: /persist
2024-07-29 21:23:50.450 - info: == loginMiddlewareComment: oidc
2024-07-29 21:23:50.450 - info: == docWorkerId: testDocWorkerId_8484
2024-07-29 21:23:50.450 - info: == pluginUrl: http://0.0.0.0:42275/
2024-07-29 21:23:50.450 - info: == willServePlugins: true
2024-07-29 21:23:50.451 - info: == grist.access.supportEmail: info@grist.server.tld [GRIST_SUPPORT_EMAIL]
2024-07-29 21:23:50.451 - info: == grist.access.listPublicSites: false [default] [GRIST_LIST_PUBLIC_SITES]
2024-07-29 21:23:50.452 - info: == grist.access.installAdminEmail: admin@mail.tld [GRIST_DEFAULT_EMAIL]
2024-07-29 21:23:50.452 - info: == grist.integrations.sql.timeout: 1000 [default] [GRIST_SQL_TIMEOUT_MSEC]
2024-07-29 21:23:50.452 - info: == grist.integrations.allowedWebhookDomains: * [ALLOWED_WEBHOOK_DOMAINS]
2024-07-29 21:23:50.452 - info: == grist.integrations.proxy: - [GRIST_HTTPS_PROXY]
2024-07-29 21:23:50.452 - info: == grist.locale.offerAllLanguages: - [GRIST_OFFER_ALL_LANGUAGES]
2024-07-29 21:23:50.452 - info: == grist.login.system.oidc.spHost: https://grist.server.tld/oauth2/callback [GRIST_OIDC_SP_HOST]
2024-07-29 21:23:50.452 - info: == grist.login.system.oidc.issuer: https://sso.server.tld/application/o/grist/.well-known/openid-configuration [GRIST_OIDC_IDP_ISSUER]
2024-07-29 21:23:50.453 - info: == grist.login.system.oidc.clientId: SOMEKEY [GRIST_OIDC_IDP_CLIENT_ID]
2024-07-29 21:23:50.453 - info: == grist.login.system.oidc.clientSecret: ***** [GRIST_OIDC_IDP_CLIENT_SECRET]
2024-07-29 21:23:50.453 - info: == grist.login.system.oidc.namePropertyKey: - [GRIST_OIDC_SP_PROFILE_NAME_ATTR]
2024-07-29 21:23:50.453 - info: == grist.login.system.oidc.emailPropertyKey: email [default] [GRIST_OIDC_SP_PROFILE_EMAIL_ATTR]
2024-07-29 21:23:50.453 - info: == grist.login.system.oidc.endSessionEndpoint:  [default] [GRIST_OIDC_IDP_END_SESSION_ENDPOINT]
2024-07-29 21:23:50.453 - info: == grist.login.system.oidc.skipEndSessionEndpoint: true [GRIST_OIDC_IDP_SKIP_END_SESSION_ENDPOINT]
2024-07-29 21:23:50.453 - info: == grist.login.system.oidc.ignoreEmailVerified: true [GRIST_OIDC_SP_IGNORE_EMAIL_VERIFIED]
2024-07-29 21:23:50.453 - info: == grist.login.skipSession: - [GRIST_IGNORE_SESSION]
2024-07-29 21:23:50.454 - info: == grist.login.forced: false [GRIST_FORCE_LOGIN]
2024-07-29 21:23:50.454 - info: == grist.externalStorage.minio.bucket: - [GRIST_DOCS_MINIO_BUCKET]
2024-07-29 21:23:50.454 - info: == grist.externalStorage.disable: - [GRIST_DISABLE_S3]
2024-07-29 21:23:50.454 - info: == grist.externalStorage.active: false
2024-07-29 21:23:50.461 - debug: 3-pipe Sandbox started sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 21:23:54.510 - info: Sandbox stderr: [pyodide sandbox] [package] Loading astroid, asttokens, chardet, et_xmlfile, executing, friendly_traceback, iso8601, lazy_object_proxy, openpyxl, phonenumberslite, pure_eval, python_dateutil, roman, six, sortedcontainers, stack_data, typing_extensions, unittest_xml_reporting, wrapt sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 21:23:55.409 - info: Sandbox stderr: [pyodide sandbox] [package] Loaded astroid, asttokens, chardet, et_xmlfile, iso8601, executing, pure_eval, roman, six, sortedcontainers, stack_data, typing_extensions, unittest_xml_reporting, python_dateutil, wrapt, friendly_traceback, openpyxl, phonenumberslite, lazy_object_proxy sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 21:23:57.605 - info: Sandbox stderr: [pyodide sandbox] [py] [INFO] [main] Ready sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 21:23:57.609 - debug: NSandbox pyCall sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test, funcName=get_version, loadMs=7147
2024-07-29 21:23:57.610 - debug: Sandbox shutdown starting sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 21:23:58.612 - warn: Sandbox sending SIGKILL sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
2024-07-29 21:23:58.658 - debug: Sandbox exited with code null signal SIGKILL sandboxPid=36, flavor=pyodide, command=undefined, entryPoint=(default), docId=test
paulfitz commented 1 month ago

@Vladimir-Va when I try:

docker run -e GRIST_SANDBOX_FLAVOR=pyodide --name /grist --rm -p 8484:8484 -it gristlabs/grist

I get a log file that looks a lot like yours, and a working Grist app. Does the docker image actually terminate for you? The SIGKILL message at the end relates to a test sandbox, not the Grist app.

Vladimir-Va commented 1 month ago

Thank you @paulfitz There may be some problem with the auto setup of traefik proxy in coolify.