Aircoookie / WLED

Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi!
https://kno.wled.ge
MIT License
15.05k stars 3.25k forks source link

Deleting segments is not handled properly #4304

Open DedeHai opened 1 day ago

DedeHai commented 1 day ago

What happened?

When having multiple segments, deleting one of them results in broken segment configuration with one exception: if it is the last segment that is deleted.

To Reproduce Bug

I tested like this on a 16x16 matrix, setting-up 3 overlapping segments:

setup any FX you like, I used "Black Hole" on all three segments delete the middle segment -> the last segment gets broken and has to be deleted before it can work again

Expected Behavior

deleting a segment should not mess up other segments, it should be properly handled.

Install Method

Binary from WLED.me

What version of WLED?

Not working on 14.4 and 15 B7

Which microcontroller/board are you seeing the problem on?

ESP32-C3

Relevant log/trace output

No response

Anything else?

No response

Code of Conduct

softhack007 commented 1 day ago

This might be a case of "it was always like this", however would be good to understand the root cause before releasing 0.15.0-RC1

DedeHai commented 14 hours ago

I stumbled upon this when working on the new memory management for the particle system. When deleting the middle segment, there is a particle memory request (which is done when initializing a new FX i.e. call==0) with a segment of nonsensical size of x=0, y=16 which I confirmed is created by deserializeSegment calling the segment setUp() function. So the root cause may be even coming from the UI or incorrect handling of the UI decoding.