SQID icon indicating copy to clipboard operation
SQID copied to clipboard

Huge memory leak in Firefox!

Open Openstreetmapler opened this issue 6 months ago • 3 comments

When I loaded the volcano example in my Firefox 128.0.3 browser, the RAM spiked heavily, as the website now uses several GIGABYTES of RAM!

=> Unusable!

While writing this, RAM usage increased to 6 GB for a moment! There’s a memory leak for sure!

By the way, I also use uMatrix.

Screenshot

Leftmost yellow spike in the graph is when I loaded the page.

Image

Openstreetmapler avatar Jun 22 '25 17:06 Openstreetmapler

These errors appear in the browser console during the 6 GB RAM spike (notice the JSON data being over a billion characters long):

20:02:53.123 Error: JSON.parse: expected ',' or ']' after array element at line 1 column 1073629993 of the JSON data
Y@https://sqid.toolforge.org/app/dist.min.js:736:24726
St@https://sqid.toolforge.org/app/dist.min.js:737:30555
Pt/<@https://sqid.toolforge.org/app/dist.min.js:737:31024
s@https://sqid.toolforge.org/app/dist.min.js:736:19550
Pt@https://sqid.toolforge.org/app/dist.min.js:737:31006
a@https://sqid.toolforge.org/app/dist.min.js:737:31733
o@https://sqid.toolforge.org/app/dist.min.js:738:18667
yi/l/<@https://sqid.toolforge.org/app/dist.min.js:738:18840
$eval@https://sqid.toolforge.org/app/dist.min.js:738:26340
$digest@https://sqid.toolforge.org/app/dist.min.js:738:24848
$apply@https://sqid.toolforge.org/app/dist.min.js:738:26623
s@https://sqid.toolforge.org/app/dist.min.js:738:1500
g@https://sqid.toolforge.org/app/dist.min.js:738:3549
At/</w.onload@https://sqid.toolforge.org/app/dist.min.js:738:4092
EventHandlerNonNull*At/<@https://sqid.toolforge.org/app/dist.min.js:738:3929
m@https://sqid.toolforge.org/app/dist.min.js:738:2218
u@https://sqid.toolforge.org/app/dist.min.js:738:861
o@https://sqid.toolforge.org/app/dist.min.js:738:18667
yi/l/<@https://sqid.toolforge.org/app/dist.min.js:738:18840
$eval@https://sqid.toolforge.org/app/dist.min.js:738:26340
$digest@https://sqid.toolforge.org/app/dist.min.js:738:24848
$apply@https://sqid.toolforge.org/app/dist.min.js:738:26623
s@https://sqid.toolforge.org/app/dist.min.js:738:1500
g@https://sqid.toolforge.org/app/dist.min.js:738:3549
At/</w.onload@https://sqid.toolforge.org/app/dist.min.js:738:4092
EventHandlerNonNull*At/<@https://sqid.toolforge.org/app/dist.min.js:738:3929
m@https://sqid.toolforge.org/app/dist.min.js:738:2218
u@https://sqid.toolforge.org/app/dist.min.js:738:861
o@https://sqid.toolforge.org/app/dist.min.js:738:18667
yi/l/<@https://sqid.toolforge.org/app/dist.min.js:738:18840
$eval@https://sqid.toolforge.org/app/dist.min.js:738:26340
$digest@https://sqid.toolforge.org/app/dist.min.js:738:24848
$apply@https://sqid.toolforge.org/app/dist.min.js:738:26623
oe/a/<@https://sqid.toolforge.org/app/dist.min.js:736:26937
a@https://sqid.toolforge.org/app/dist.min.js:737:5251
a@https://sqid.toolforge.org/app/dist.min.js:736:26858
oe@https://sqid.toolforge.org/app/dist.min.js:736:27145
@https://sqid.toolforge.org/app/dist.min.js:790:17515
h@https://sqid.toolforge.org/app/dist.min.js:735:1168
add@https://sqid.toolforge.org/app/dist.min.js:735:1474
ready@https://sqid.toolforge.org/app/dist.min.js:734:10569
init@https://sqid.toolforge.org/app/dist.min.js:734:10131
re@https://sqid.toolforge.org/app/dist.min.js:734:9102
@https://sqid.toolforge.org/app/dist.min.js:790:17495
execCb@https://sqid.toolforge.org/lib/require.js:1693:33
check@https://sqid.toolforge.org/lib/require.js:881:51
enable@https://sqid.toolforge.org/lib/require.js:1173:22
init@https://sqid.toolforge.org/lib/require.js:786:26
newContext/makeRequire/localRequire/<@https://sqid.toolforge.org/lib/require.js:1457:36
setTimeout handler*req.nextTick<@https://sqid.toolforge.org/lib/require.js:1812:19
localRequire@https://sqid.toolforge.org/lib/require.js:1446:29
requirejs@https://sqid.toolforge.org/lib/require.js:1794:24
@https://sqid.toolforge.org/app/dist.min.js:790:17430
dist.min.js:738:11800
    r https://sqid.toolforge.org/app/dist.min.js:738
    get https://sqid.toolforge.org/app/dist.min.js:737
    o https://sqid.toolforge.org/app/dist.min.js:738
    l https://sqid.toolforge.org/app/dist.min.js:738
    $eval https://sqid.toolforge.org/app/dist.min.js:738
    $digest https://sqid.toolforge.org/app/dist.min.js:738
    $apply https://sqid.toolforge.org/app/dist.min.js:738
    s https://sqid.toolforge.org/app/dist.min.js:738
    g https://sqid.toolforge.org/app/dist.min.js:738
    onload https://sqid.toolforge.org/app/dist.min.js:738
    (Async: EventHandlerNonNull)
    At https://sqid.toolforge.org/app/dist.min.js:738
    m https://sqid.toolforge.org/app/dist.min.js:738
    u https://sqid.toolforge.org/app/dist.min.js:738
    o https://sqid.toolforge.org/app/dist.min.js:738
    l https://sqid.toolforge.org/app/dist.min.js:738
    $eval https://sqid.toolforge.org/app/dist.min.js:738
    $digest https://sqid.toolforge.org/app/dist.min.js:738
    $apply https://sqid.toolforge.org/app/dist.min.js:738
    s https://sqid.toolforge.org/app/dist.min.js:738
    g https://sqid.toolforge.org/app/dist.min.js:738
    onload https://sqid.toolforge.org/app/dist.min.js:738
    (Async: EventHandlerNonNull)
    At https://sqid.toolforge.org/app/dist.min.js:738
    m https://sqid.toolforge.org/app/dist.min.js:738
    u https://sqid.toolforge.org/app/dist.min.js:738
    o https://sqid.toolforge.org/app/dist.min.js:738
    l https://sqid.toolforge.org/app/dist.min.js:738
    $eval https://sqid.toolforge.org/app/dist.min.js:738
    $digest https://sqid.toolforge.org/app/dist.min.js:738
    $apply https://sqid.toolforge.org/app/dist.min.js:738
    a https://sqid.toolforge.org/app/dist.min.js:736
    a https://sqid.toolforge.org/app/dist.min.js:737
    a https://sqid.toolforge.org/app/dist.min.js:736
    oe https://sqid.toolforge.org/app/dist.min.js:736
    <anonym> https://sqid.toolforge.org/app/dist.min.js:790
    h https://sqid.toolforge.org/app/dist.min.js:735
    add https://sqid.toolforge.org/app/dist.min.js:735
    ready https://sqid.toolforge.org/app/dist.min.js:734
    init https://sqid.toolforge.org/app/dist.min.js:734
    re https://sqid.toolforge.org/app/dist.min.js:734
    <anonym> https://sqid.toolforge.org/app/dist.min.js:790
    execCb https://sqid.toolforge.org/lib/require.js:1693
    check https://sqid.toolforge.org/lib/require.js:881
    enable https://sqid.toolforge.org/lib/require.js:1173
    init https://sqid.toolforge.org/lib/require.js:786
    localRequire https://sqid.toolforge.org/lib/require.js:1457
    (Async: setTimeout handler)
    nextTick https://sqid.toolforge.org/lib/require.js:1812
    localRequire https://sqid.toolforge.org/lib/require.js:1446
    requirejs https://sqid.toolforge.org/lib/require.js:1794
    <anonym> https://sqid.toolforge.org/app/dist.min.js:790

followed by:

20:02:53.126 Broken interceptor detected: Config object not supplied in rejection:
 https://github.com/chieffancypants/angular-loading-bar/pull/50 dist.min.js:738:11800
    r https://sqid.toolforge.org/app/dist.min.js:738
    responseError https://sqid.toolforge.org/app/dist.min.js:790
    o https://sqid.toolforge.org/app/dist.min.js:738
    l https://sqid.toolforge.org/app/dist.min.js:738
    $eval https://sqid.toolforge.org/app/dist.min.js:738
    $digest https://sqid.toolforge.org/app/dist.min.js:738
    $apply https://sqid.toolforge.org/app/dist.min.js:738
    s https://sqid.toolforge.org/app/dist.min.js:738
    g https://sqid.toolforge.org/app/dist.min.js:738
    onload https://sqid.toolforge.org/app/dist.min.js:738
    (Async: EventHandlerNonNull)
    At https://sqid.toolforge.org/app/dist.min.js:738
    m https://sqid.toolforge.org/app/dist.min.js:738
    u https://sqid.toolforge.org/app/dist.min.js:738
    o https://sqid.toolforge.org/app/dist.min.js:738
    l https://sqid.toolforge.org/app/dist.min.js:738
    $eval https://sqid.toolforge.org/app/dist.min.js:738
    $digest https://sqid.toolforge.org/app/dist.min.js:738
    $apply https://sqid.toolforge.org/app/dist.min.js:738
    s https://sqid.toolforge.org/app/dist.min.js:738
    g https://sqid.toolforge.org/app/dist.min.js:738
    onload https://sqid.toolforge.org/app/dist.min.js:738
    (Async: EventHandlerNonNull)
    At https://sqid.toolforge.org/app/dist.min.js:738
    m https://sqid.toolforge.org/app/dist.min.js:738
    u https://sqid.toolforge.org/app/dist.min.js:738
    o https://sqid.toolforge.org/app/dist.min.js:738
    l https://sqid.toolforge.org/app/dist.min.js:738
    $eval https://sqid.toolforge.org/app/dist.min.js:738
    $digest https://sqid.toolforge.org/app/dist.min.js:738
    $apply https://sqid.toolforge.org/app/dist.min.js:738
    a https://sqid.toolforge.org/app/dist.min.js:736
    a https://sqid.toolforge.org/app/dist.min.js:737
    a https://sqid.toolforge.org/app/dist.min.js:736
    oe https://sqid.toolforge.org/app/dist.min.js:736
    <anonym> https://sqid.toolforge.org/app/dist.min.js:790
    h https://sqid.toolforge.org/app/dist.min.js:735
    add https://sqid.toolforge.org/app/dist.min.js:735
    ready https://sqid.toolforge.org/app/dist.min.js:734
    init https://sqid.toolforge.org/app/dist.min.js:734
    re https://sqid.toolforge.org/app/dist.min.js:734
    <anonym> https://sqid.toolforge.org/app/dist.min.js:790
    execCb https://sqid.toolforge.org/lib/require.js:1693
    check https://sqid.toolforge.org/lib/require.js:881
    enable https://sqid.toolforge.org/lib/require.js:1173
    init https://sqid.toolforge.org/lib/require.js:786
    localRequire https://sqid.toolforge.org/lib/require.js:1457
    (Async: setTimeout handler)
    nextTick https://sqid.toolforge.org/lib/require.js:1812
    localRequire https://sqid.toolforge.org/lib/require.js:1446
    requirejs https://sqid.toolforge.org/lib/require.js:1794
    <anonym> https://sqid.toolforge.org/app/dist.min.js:790

Openstreetmapler avatar Jun 22 '25 18:06 Openstreetmapler

While I know what the issue is, it'll require some architectural changes to fix. I've started working on something, but I'm already occupied with other projects for at least the next three weeks, so I wouldn't expect to have something ready before August.

mmarx avatar Jun 22 '25 19:06 mmarx

Okay, I won’t use the tool until then.

Openstreetmapler avatar Jun 23 '25 08:06 Openstreetmapler