Applying tinyify to plotly.js crashes Node
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 30/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript, nodejs
- Ambito
- build-system, tooling
Direzione di ricerca
Inizia eseguendo il repository di esempio all’indirizzo https://github.com/m90/tinyify-crash con la configurazione segnalata Node v10.9.0, quindi esamina node_modules/transform-ast/index.js intorno a addHelpers e confronta tinyify con la pipeline funzionante di uglifyjs. Il lavoro è completato quando il bundle di Plotly.js viene completato con tinyify senza bloccarsi né esaurire l’heap di Node.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm trying to optimize a bundle that contains the (rather hefty) plotly.js library.
When I pass -p tinyify to my bundling command it will hang for quite a while and then crash, printing the following:
<--- Last few GCs --->
[9631:0x36f27f0] 56924 ms: Mark-sweep 1345.1 (1440.5) -> 1344.3 (1456.5) MB, 1270.8 / 0.0 ms (average mu = 0.103, current mu = 0.006) allocation failure scavenge might not succeed
[9631:0x36f27f0] 58143 ms: Mark-sweep 1344.3 (1456.5) -> 1344.3 (1456.5) MB, 1218.0 / 0.0 ms (average mu = 0.053, current mu = 0.000) allocation failure GC in old space requested
<--- JS stacktrace --->
==== JS stack trace =========================================
0: ExitFrame [pc: 0x292a09adc01d]
Security context: 0x37fbe811e549 <JSObject>
1: addHelpers [0x1401217d54e9] [/home/frederik/projects/tinyify-crash/node_modules/transform-ast/index.js:~87] [pc=0x292a0a5a7f5a](this=0x2f3e1e21aa09 <JSGlobal Object>,node=0x071fba8d11c1 <Node map $
0x213b1d12dc9>)
2: enter [0x208cdc2350f9] [/home/frederik/projects/tinyify-crash/node_modules/transform-ast/index.js:~33] [pc=0x292a09e5713a](this=0x2f...
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0x8c02c0 node::Abort() [node]
2: 0x8c030c [node]
3: 0xad15de v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
4: 0xad1814 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
5: 0xebe752 [node]
6: 0xebe858 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [node]
7: 0xeca982 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [node]
8: 0xecb2b4 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
9: 0xecdf21 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [node]
10: 0xe96236 [node]
11: 0xea8a87 v8::internal::Factory::NewLoadHandler(int) [node]
12: 0xf2828e v8::internal::LoadHandler::LoadFullChain(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Smi>)
[node]
13: 0xf3663d v8::internal::LoadIC::UpdateCaches(v8::internal::LookupIterator*) [node]
14: 0xf36b6c v8::internal::LoadIC::Load(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>) [node]
15: 0xf3b4a5 v8::internal::Runtime_LoadIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*) [node]
16: 0x292a09adc01d
Aborted (core dumped)
When I omit the plugin, I can bundle things just fine. I also can pipe the bundle through uglifyjs --mangle just fine.
I created a repo with an example case here: https://github.com/m90/tinyify-crash
As for Node internals, I am running the following on Ubuntu 16:
➜ ~ node -v
v10.9.0
➜ ~ npm -v
6.4.0
- Lingua principale
- JavaScript
- Stelle
- 405
- Fork
- 14
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di browserify/tinyify
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
browserify/tinyify#57 · 1 commento ·
-
tinyify makes bundle break Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
browserify/tinyify#56 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
browserify/tinyify#45 · 1 commento · 2 reazioni ·
-
Shakeify issue? Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
browserify/tinyify#26 · 1 commento ·
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
browserify/tinyify#25 · 9 commenti ·
Tutte le issue di browserify/tinyify
Issue simili
-
curation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
amponce/archive-movie-browser#186 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
clerk/javascript#9852 ·
-
bug p1 tools
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
HarperFast/skills#96 ·
-
factory-active factory-automatic task-bug-reproduction-cannot-reproduce task-identify-harness-labels-done task-identify-issue-type-done
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100