mrjvs / neatojs

Collection of neat JS tools
https://neatojs.com/
MIT License
16 stars 2 forks source link

[Guider] Development builds sometimes throw runtime errors when using search #55

Open jonbarrow opened 2 months ago

jonbarrow commented 2 months ago

Describe the bug

Could not replicate in a production build.

When running a development build of Guider and search is used, a React runtime error will sometimes be thrown. This seems to be tied to the resource usage of the system, likely triggering some sort of race condition.

This was seen specifically when trying to use the Peek application on Ubuntu to record a gif of the search feature. It should also be noted that the project in question has around 500 pages in it, which may contribute to the load issue.

Killing some processes locally to free resources seems to have fixed this, which means it's likely tied to resource usage.

I understand this is hard to replicate and thus diagnose, so not expecting a fix anytime soon. Specific specs to try and replicate (taken straight from neofetch):

OS: Ubuntu 22.04.3 LTS x86_64
Host: OptiPlex 9020 00
Kernel: 6.5.0-26-generic
Uptime: 34 days, 20 hours, 37 mins
Packages: 3678 (dpkg), 24 (flatpak), 22 (snap
Shell: zsh 5.8.1
Resolution: 1600x900
DE: GNOME 42.9
WM: Mutter
WM Theme: Dracula
Theme: Dracula [GTK2/3]
Icons: Tela-circle-dracula-dark [GTK2/3]
Terminal: kitty
CPU: Intel i7-4790 (8) @ 4.000GHz
GPU: Intel HD Graphics
Memory: 21690MiB / 31995MiB

Which package/app is affected (leave empty if unsure)

@neato/guider

Link to the code that reproduces this issue

No response

Steps to reproduce

Try to use search in a project with lots of pages under heavy load. Specifics are unknown

Expected Behavior

To not have this error

Extra details

Gif of the error happening live Peek 2024-04-26 09-52

jonbarrow commented 2 months ago

I triggered it again and copied the full stack trace

Unhandled Runtime Error
    NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

Call Stack

React
    removeChild
        node_modules/react-dom/cjs/react-dom.development.js (11099:1)
    commitDeletionEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24067:1)
    recursivelyTraverseDeletionEffects
        node_modules/react-dom/cjs/react-dom.development.js (24028:1)
    commitDeletionEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24157:1)
    recursivelyTraverseDeletionEffects
        node_modules/react-dom/cjs/react-dom.development.js (24028:1)
    commitDeletionEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24157:1)
    commitDeletionEffects
        node_modules/react-dom/cjs/react-dom.development.js (24015:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24298:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24385:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24332:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24332:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24332:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24385:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24385:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24385:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24385:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24385:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24332:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24615:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24332:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24332:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24615:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24615:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24615:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24615:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24615:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24332:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24615:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)
    commitMutationEffectsOnFiber
        node_modules/react-dom/cjs/react-dom.development.js (24615:1)
    recursivelyTraverseMutationEffects
        node_modules/react-dom/cjs/react-dom.development.js (24312:1)