FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- javascript, webpack
- Domain
- build-system, web-dev
Research direction
Start with the workerize-loader!../../workers/headerWorker import, the corresponding ../../workers/headerWorker module, and the supplied webpack build output; reproduce the heap failure with the TypeScript/React usage shown. Done means determining whether this loader usage is supported and documenting a reproducible fix or clear guidance.
Written by the indexing model from the issue text.
Description
Hi, I'm trying to use your package but I'm not able to make it work. If I remove my worker from the application compiles fine, once I uncomment the code I get the error message:
69% building 3094/3117 modules 23 active C:\Desarrollo\uiserpreco2\uiserpreco\node_modules\ts-loader\index.js!C:\Desarrollo\uiserpreco2\uiserpreco\src\app\components\Maintenance\Clients\ClientWizardRedirect.tsx
<--- Last few GCs --->
[7332:000001A3BF8073C0] 211369 ms: Mark-sweep (reduce) 2039.2 (2082.9) -> 2038.6 (2083.4) MB, 2201.3 / 0.0 ms (average mu = 0.085, current mu = 0.013) allocation failure scavenge might not succeed
[7332:000001A3BF8073C0] 213807 ms: Mark-sweep (reduce) 2039.7 (2083.4) -> 2038.9 (2083.9) MB, 2432.5 / 0.0 ms (average mu = 0.046, current mu = 0.002) allocation failure scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
1: 00007FF6D0B9BD2F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+112159
2: 00007FF6D0B2CD66 v8::internal::WebSnapshotDeserializer::context_count+65430
3: 00007FF6D0B2DC1D node::OnFatalError+301
4: 00007FF6D1467BBE v8::Isolate::ReportExternalAllocationLimitReached+94
5: 00007FF6D145283D v8::SharedArrayBuffer::Externalize+781
6: 00007FF6D12D532C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1468
7: 00007FF6D12D2662 v8::internal::Heap::CollectGarbage+3778
8: 00007FF6D12D01B5 v8::internal::Heap::AllocateExternalBackingStore+1909
9: 00007FF6D12F35D1 v8::internal::Factory::NewFillerObject+209
10: 00007FF6D1023175 v8::internal::DateCache::Weekday+1349
11: 00007FF6D14EFF01 v8::internal::SetupIsolateDelegate::SetupHeap+472849
12: 000001A3C26AA381
I'm using your package with path, not with webpack. And I'm using it like this:
I'm importing the worker in my class component like this:
import createFooWorker from 'workerize-loader!../../workers/headerWorker';
import * as headerWorker from '../../workers/headerWorker';
const workerHeader = createFooWorker<typeof headerWorker>();
and I'm using it like this:
componentWillUnmount() {
workerHeader.terminate();
}
async handleCreateExcel() {
const { excelData } = this.state;
await workerHeader.getExcelData(excelData);
}
async getNotifications(emitLang = false) {
if (!this.searchingNotifications) {
this.searchingNotifications = true;
updateTaskGridObs.send();
await workerHeader.getNotifications().then((response: any) => {
this.setState(
{
notifications: is.existy(response) && hasItems(response.Result) ? response.Result : [],
},
() => {
this.searchingNotifications = false;
if (emitLang) this.props.i18n.changeLanguage(this.state.selectedLang);
},
);
});
}
}
I've defined the module package in my typings.d.ts like this (I've found this code looking the package isssues):
declare module 'workerize-loader!*' {
type AnyFunction = (...args: any[]) => any;
type Async<F extends AnyFunction> = (...args: Parameters<F>) => Promise<ReturnType<F>>;
type Workerized<T> = Worker & { [K in keyof T]: T[K] extends AnyFunction ? Async<T[K]> : never };
function createInstance<T>(): Workerized<T>;
export = createInstance;
}
I've also tried to increase the memory with: SET NODE_OPTIONS=--max_old_space_size=8192, but didn't solve the problem.
I don't understand what I'm doing wrong,. any help will be apreciated. Thanks in advance
- Dominant language
- JavaScript
- Stars
- 2.3k
- Forks
- 85
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from developit/workerize-loader
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
developit/workerize-loader#131 · 6 comments · 1 reaction ·
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
developit/workerize-loader#130 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 52/100
developit/workerize-loader#129 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
developit/workerize-loader#128 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
developit/workerize-loader#126 · 4 comments ·
All issues in developit/workerize-loader
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
mksglu/context-mode#1200 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
neondatabase/website#5944 ·
-
module: core
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
bigbluebutton/bigbluebutton#25849 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
jaegertracing/jaeger-ui#4506 ·