core-ds/core-components

При обновлении версии выше 42.12.0 появляются утечеки памяти в BottomSheet

rainmanxn opened this issue · 17 comments

Опишите проблему

При обновлении версии выше 42.12.0 появляются утечеки памяти в BottomSheet на определенных устройствах в вебвью. На вебе сложно отследить данную проблему. Пробовали много кейсов, разные браузеры, возникает точечено примерно у 5-10% пользователей.
BottomSheetMemoryLeaks

BottomSheetScreen
BottomSheet.mp4

Выложил скринкасты и скриншоты как должно быть и скрин с дебагера реального устройства из консоли. На скринкасте видно, как появляются провалы в ui (становится прозрачным фон BottomSheet) а так же пропадают элементы на BottomSheet.
Со своей стороны проверял, у нас нет утечек памяти в коде, так же убрал все important из стилей и все остальное, что может как-то повлиять на родительский css.

Шаги для воспроизведения

Сылка на код в репозиторири
Воспроизводится в вебвью прод тест
1.

  • на проде можно выбрать любую станцию и пройти на шаг 2
  • на тесте надо замокать геолокацию в хроме на latitude 57,41 longitude 60,211, там будет 1 тестовая станция и дальше шаг 2
  1. кликныть по станции и дойти до шага выбора колонки
  2. на этапе выбора колонки появляются утечки памяти

Ожидаемое поведение

Утечек паямяти и провалов в ui быть не должно

Чек лист

  • Тесты
  • Документация

Внешний вид

приложил скрины и скринкаст

Тестовый стенд

тест

Десктоп (если данных нет оставьте блок пустым):

не поддерживается. пока только webView

Смартфон (если данных нет оставьте блок пустым):

Воспроизводитсяч рандомно на различных устройствах. Какую-либо закономерность выявить не удалось. Есть Вероятность что проявляется чаще на ios 17.

Дополнительная информация

У меня в Android на Pixel6 тоже воспроизвелось на БоттомШите с фильтрами.

  1. Можете плиз точно найти версию, с которой эта проблема начинается?
    После 42.12.0 в шторке были следующие исправления
  1. Как быстро проблема начинает воспроизводиться? На первый рендер? Или шторку надо несколько раз открыть/закрыть? В вебе вообще удалось проблему воспроизвести или только webview?

В простом сценарии открыть/закрыть утечек не вижу. Тест проводил около 10 мин, начальный heap size ~3.5 Мб

Screencast.from.2024-01-09.12-31-36.webm

Вы предлагаете мне протестировать все версии и найти в какой может быть баг?)
На первый взгляд кажется, что это свзяно с фиксом скролла, потому что проблема возникает как раз на тех экранах, где есть скролл.
Воспроизводится на первый рендер. В вебе отследить у меня не получилось. Появляется на некоторых версия вебвью.

Не все, а те что перечислил:) Но тут я с тобой согласен, если проблемы где и могла появиться, то только тут #927

@rainmanxn, для начала я бы попробовал вернуть css к виду, который был в 42.12.0 (выставить для touch-action и overscroll-behavior дефолтные значения). Могу ПР сделать и бетку выпустить, ну или можешь через css класс это переопределить. Как поступим?

Лучше бы конечно через бетку, так наверняка, и тестировщикам проще будет доказать)

Выпустил 44.5.1-beta.0. Удалил только overscroll-behavior

Как протестируем - отпишусь. Сейчас пока ресурсов тестриовщиков не хватает

@v-gevak не помогло. проблема осталась

@rainmanxn Выпустил 44.5.1-beta.3. Удалил touch-action

А 1, 2, 3, 4 на скрине это что за компоненты?
Мы в 43 релизе добавили к кнопкам и тэгам backdrop-filter: blur, а он довольно забагован, думаю, не исключено что и в этом причина может быть

Ok, спасибо! сегодня протестим.
Да, 1,2,3, 4 - Tag
Но кажется, что проблема была и на другом экране, где Tag нет

@rainmanxn внизу большая кнопка тоже скорее всего с backdrop-filter, если у нее view='secondary' или view='primary' c disabled

BUG_1.mp4

не помогло. см с 35 сек

@rainmanxn к нам еще обратились с похожей проблемой. Говорят, что баг воспроизводится, начиная с 43.1.0 версии, в этой версии как раз блюр и был добавлен

Выпустил 44.5.1-beta.4 без блюра у кнопок и тегов

Приложи также плиз видео после теста, если будет возможность и баг останется

@v-gevak спасибо большое! помогло!) ждем стаб версию <3