# EMBER\_CLI\_PROD\_ASSETS a 1 causa il crash della precompilazione degli asset

**URL:** https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548
**Category:** Support
**Tags:** unsupported-install
**Created:** [17 Febbraio 2022, 1:46pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548 "2022-02-17T13:46:29Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![trobiyo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trobiyo/32/311872_2.png) [@trobiyo](https://meta.discourse.org/u/trobiyo)
#### Post date: [17 Febbraio 2022, 1:46pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/1 "2022-02-17T13:46:29Z")

</div>

Viene da [New installs will default to Ember CLI builds in Production - #36 by david](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/36)

Ciao Team,

Provando a impostare `EMBER_CLI_PROD_ASSETS` su `1`, ottengo quanto segue al momento della precompilazione degli asset (versione `2.9.0.beta2` commit: `d2de058ff51f204fcf85c86a00750a59505af3bb`):

```bash
yarn run v1.22.17
$ /var/www/discourse/app/assets/javascripts/node_modules/.bin/ember build -prod
WARNING: Node v16.13.2 is not tested against Ember CLI on your platform. We recommend that you use the most-recent "Active LTS" version of Node.js. See https://git.io/v7S5n for details.
DEPRECATION: The integration of jQuery into Ember has been deprecated and will be removed with Ember 4.0. You can either opt-out of using jQuery, or install the `@ember/jquery` addon to provide the jQuery integration. Please consult the deprecation guide for further details: https://emberjs.com/deprecations/v3.x#toc_jquery-apis
A system error occurred: uv_os_get_passwd returned ENOENT (no such file or directory)

node:internal/errors:464
    ErrorCaptureStackTrace(err);
    ^

SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_os_get_passwd returned ENOENT (no such file or directory)
    at new SystemError (node:internal/errors:233:5)
    at new NodeError (node:internal/errors:336:7)
    at Object.userInfo (node:os:347:11)
    at summarizeProcess (/var/www/discourse/app/assets/javascripts/node_modules/console-ui/lib/summarize-process.js:17:15)
    at writeError (/var/www/discourse/app/assets/javascripts/node_modules/console-ui/lib/write-error.js:114:3)
    at UI.writeError (/var/www/discourse/app/assets/javascripts/node_modules/console-ui/lib/index.js:167:20)
    at CLI.logError (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/lib/cli/cli.js:318:13)
    at CLI.run (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/lib/cli/cli.js:253:12)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async module.exports (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/lib/cli/index.js:145:12) {
  code: 'ERR_SYSTEM_ERROR',
  info: {
    errno: -2,
    code: 'ENOENT',
    message: 'no such file or directory',
    syscall: 'uv_os_get_passwd'
  },
  errno: [Getter/Setter],
  syscall: [Getter/Setter]
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

```

Qualche suggerimento sul perché sta succedendo?

Saluti,  
Ismael

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [17 Febbraio 2022, 2:51pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/2 "2022-02-17T14:51:24Z")

</div>

È un’installazione di produzione che utilizza la guida all’installazione?

Puoi provare una ricompilazione?

---

<div class="post-metadata">

### Author: ![trobiyo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trobiyo/32/311872_2.png) [@trobiyo](https://meta.discourse.org/u/trobiyo)
#### Post date: [17 Febbraio 2022, 3:53pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/3 "2022-02-17T15:53:01Z")

</div>

Nessun successo dopo la ricostruzione dell’istanza. Sto cercando di capire cosa causa la chiamata `uv_os_get_passwd`, o più in generale cosa causa questo errore, si aspetta che venga impostato un utente specifico nel sistema/impostazione?

Saluti,  
Ismael

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [17 Febbraio 2022, 5:57pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/4 "2022-02-17T17:57:12Z")

</div>

Come stai eseguendo esattamente l’immagine Discourse? Ci sono flag aggiuntivi per la sicurezza?

Seguendo questa traccia, il problema è che la build di Ember-CLI sta fallendo e, mentre si tenta di stampare l’errore, viene generata un’altra eccezione che maschera quella reale.

Puoi entrare nell’immagine Discourse e provare:

```plaintext
node
const os = require('os');
os.userInfo().shell

```

?

---

<div class="post-metadata">

### Author: ![trobiyo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trobiyo/32/311872_2.png) [@trobiyo](https://meta.discourse.org/u/trobiyo)
#### Post date: [18 Febbraio 2022, 8:19am UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/5 "2022-02-18T08:19:49Z")

</div>

Interessante, questo è quello che ottengo quando eseguo il tuo suggerimento (e ha perfettamente senso se l’intenzione è accedere a qualsiasi sistema di libreria interna con un utente casuale diverso da root):

```bash
node
Welcome to Node.js v16.13.2.
Type ".help" for more information.

> const os = require('os');
undefined

> os.userInfo().shell
Uncaught:
SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_os_get_passwd returned ENOENT (no such file or directory)
    at __node_internal_captureLargerStackTrace (node:internal/errors:464:5)
    at new SystemError (node:internal/errors:233:5)
    at new NodeError (node:internal/errors:336:7)
    at Object.userInfo (node:os:347:11) {
  code: 'ERR_SYSTEM_ERROR',
  info: {
    errno: -2,
    code: 'ENOENT',
    message: 'no such file or directory',
    syscall: 'uv_os_get_passwd'
  },
  errno: [Getter/Setter: -2],
  syscall: [Getter/Setter: 'uv_os_get_passwd']
}

>

```

> Come stai eseguendo esattamente l’immagine Discourse? Ci sono flag aggiuntivi per la sicurezza?

Abbiamo utilizzato una soluzione containerizzata basata su OpenShift, in cui Discourse viene eseguito con un ID utente casuale. Nessun problema finora, approccio molto simile alla guida di installazione ufficiale.  
È certamente possibile aggirare questo problema impostando `EMBER_CLI_PROD_ASSETS` su `0`, gli asset vengono precompilati come ai vecchi tempi, ma prima o poi, se i tuoi piani sono di muoverti in questa direzione, potrebbe rappresentare un vero problema per questo tipo di soluzioni se l’attuale processo di precompilazione viene abbandonato.

Quindi un paio di domande qui:

- Avete una stima di quando abbandonerete (se è il caso) la precompilazione degli asset nel vecchio modo?
- C’è un modo per accedere alla macchina `os` in un modo diverso, o considerare un approccio diverso, in modo che le soluzioni containerizzate con ID utente casuali possano ancora funzionare?

Molte grazie per aver esaminato questo problema, molto apprezzato.

Saluti,  
Ismael

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [18 Febbraio 2022, 12:32pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/6 "2022-02-18T12:32:29Z")

</div>

> [@trobiyo](#):
>
> Avete una stima su quando smetterete di precompilare gli asset nel vecchio modo (se è il caso)?

Rimuoveremo `EMBER_CLI_PROD_ASSETS` nelle prossime settimane.

> [@trobiyo](#):
>
> C’è un modo per accedere al meccanismo `os` in un altro modo, o considerare un approccio diverso, in modo che le soluzioni containerizzate con id utente casuali possano ancora funzionare?

Non lo stiamo utilizzando direttamente, ma una dipendenza, di una dipendenza, di una dipendenza… Penso che sia una chiamata strana anche per noi, ma non è qualcosa su cui abbiamo molto controllo.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [18 Febbraio 2022, 1:05pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/7 "2022-02-18T13:05:01Z")

</div>

> [@trobiyo](#):
>
> C’è un modo per accedere al meccanismo `os` in un modo diverso, o considerare un approccio diverso, in modo che le soluzioni containerizzate con ID utente casuali possano ancora funzionare?

Nota che l’errore che stai vedendo non è l’errore effettivo.  
È un errore che si verifica quando si tenta di mostrarti il vero errore…

---

<div class="post-metadata">

### Author: ![trobiyo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trobiyo/32/311872_2.png) [@trobiyo](https://meta.discourse.org/u/trobiyo)
#### Post date: [18 Febbraio 2022, 1:38pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/8 "2022-02-18T13:38:05Z")

</div>

È esattamente lo stesso problema di [Issue with non 'username' defined · Issue #2373 · nodejs/node-gyp · GitHub](https://github.com/nodejs/node-gyp/issues/2373) e [os.userInfo throws if no username in docker container · Issue #25714 · nodejs/node · GitHub](https://github.com/nodejs/node/issues/25714)

Utilizzando un ID utente casuale, node si lamenta al momento del caricamento dei metodi e delle proprietà di utilità relativi al sistema `os`.

> [@Falco](#):
>
> Stiamo rimuovendo quel `EMBER_CLI_PROD_ASSETS` nelle prossime settimane

Solo per confermare, il vecchio modo sarà totalmente deprecato/rimosso, giusto?

Saluti,  
Ismael

---

<div class="post-metadata">

### Author: ![trobiyo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trobiyo/32/311872_2.png) [@trobiyo](https://meta.discourse.org/u/trobiyo)
#### Post date: [18 Febbraio 2022, 1:42pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/9 "2022-02-18T13:42:26Z")

</div>

Sì, capito dopo il post qui sopra. A meno che il Team non intraprenda azioni/controlli speciali per consentirlo, l’era dell’uso di ID utente casuali è finita, secondo me.

Saluti,  
Ismael

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [18 Febbraio 2022, 1:48pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/10 "2022-02-18T13:48:48Z")

</div>

> [@trobiyo](#):
>
> Solo para confirmar, la forma antigua será totalmente obsoleta/eliminada, ¿verdad?

Sí, exactamente. Hemos estado lanzando gradualmente este nuevo pipeline de activos durante años, para que podamos seguir lo que recomienda el proyecto EmberJS y ser menos un caso aislado. Ya estamos en la fase final del despliegue.

---

<div class="post-metadata">

### Author: ![trobiyo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trobiyo/32/311872_2.png) [@trobiyo](https://meta.discourse.org/u/trobiyo)
#### Post date: [18 Febbraio 2022, 2:03pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/11 "2022-02-18T14:03:38Z")

</div>

Ottimo, tutto chiaro.

Come al solito, grazie mille per le tue informazioni dettagliate, molto apprezzate.

Saluti,  
Ismael

---

<div class="post-metadata">

### Author: ![trobiyo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trobiyo/32/311872_2.png) [@trobiyo](https://meta.discourse.org/u/trobiyo)
#### Post date: [18 Febbraio 2022, 4:25pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/12 "2022-02-18T16:25:38Z")

</div>

Per completezza, e se può essere utile a qualcuno. Esiste almeno un modo per far funzionare ember cli come previsto con un uid casuale, ed è assicurarsi che l’uid casuale assegnato abbia una voce in `/etc/passwd` al momento dell’esecuzione dell’operazione `rake assets:precompile`.

Qualcosa come:

```bash
if [`id -u` -ge 10000]; then
  cat /etc/passwd | sed -e "s/^discourse:/builder:/" > /tmp/passwd
  echo "discourse:x:`id -u`:`id -g`:,,,:/home/discourse:/bin/bash" >> /tmp/passwd
  cat /tmp/passwd > /etc/passwd
  rm /tmp/passwd
fi

```

Quindi, il comando `app/assets/javascripts/discourse run ember build -prod` (da [discourse/assets.rake at tests-passed · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/tests-passed/lib/tasks/assets.rake#L17)) lo farà.

```bash
yarn run v1.22.17
$ /discourse/app/assets/javascripts/node_modules/.bin/ember build -prod
WARNING: Node v16.13.2 is not tested against Ember CLI on your platform. We recommend that you use the most-recent "Active LTS" version of Node.js. See https://git.io/v7S5n for details.
DEPRECATION: The integration of jQuery into Ember has been deprecated and will be removed with Ember 4.0. You can either opt-out of using jQuery, or install the `@ember/jquery` addon to provide the jQuery integration. Please consult the deprecation guide for further details: https://emberjs.com/deprecations/v3.x#toc_jquery-apis 
- Building
Environment: production
- Building
- building... 
[WARN] (broccoli-terser-sourcemap) Minifying "assets/chunk.529.6ee9018498e97f872147.js" took: 24288ms (more than 20,000ms)
...

```

Ho anche notato che questa operazione è piuttosto costosa, consumando quasi 2 GB di RAM solo per la precompilazione 😱

Saluti,  
Ismael

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [18 Febbraio 2022, 5:10pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/13 "2022-02-18T17:10:39Z")

</div>

> [@trobiyo](#):
>
> Ho anche notato che questa operazione è piuttosto costosa, consumando quasi 2 GB di RAM solo per la precompilazione 😱

La settimana scorsa utilizzava oltre 4 GB, ma siamo riusciti a farlo funzionare di recente su server con 1 GB di RAM/2 GB di swap.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [20 Marzo 2022, 5:11pm UTC](https://meta.discourse.org/t/ember-cli-prod-assets-to-1-crashes-precompiling-assets/218548/14 "2022-03-20T17:11:26Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
