dignifiedquire / dignifiedquire/dreamer

When clicking around fast ui locks up

Open
#18 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Rust
Stars
15
Forks
4
PR merge metrics
No merged PRs in 30d

Description

Steps to reproduce: build in release mode and switch chats fast (clicking around fast for some time)

What happens: it locks up with a spinning/waiting cursor

where does this happen: https://github.com/dignifiedquire/dreamer/pull/17 (it seemed to also happen on main branch)

End of the log with log level trace:
```
2024-05-10T06:32:08.785437Z TRACE winit::platform_impl::platform::window: Locked shared state in `fullscreen`
2024-05-10T06:32:08.785439Z TRACE winit::platform_impl::platform::window: Unlocked shared state in `fullscreen`
2024-05-10T06:32:08.785661Z INFO dreamer::widgets::mainpanel: rendering body
2024-05-10T06:32:08.785696Z INFO dreamer::widgets::mainpanel: inserted 5 rows (5 cache hits)
2024-05-10T06:32:08.856628Z TRACE winit::platform_impl::platform::view: Triggered `mouseUp:`
2024-05-10T06:32:08.856656Z TRACE winit::platform_impl::platform::view: Completed `mouseUp:`
2024-05-10T06:32:08.856892Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:32:08.856899Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:32:08.856902Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:32:08.856906Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:32:08.856910Z TRACE eframe::native::run: request_redraw for WindowId(WindowId(5763437504))
2024-05-10T06:32:08.856930Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:32:08.856936Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:32:08.856966Z TRACE winit::platform_impl::platform::window: Locked shared state in `fullscreen`
2024-05-10T06:32:08.856970Z TRACE winit::platform_impl::platform::window: Unlocked shared state in `fullscreen`
2024-05-10T06:32:08.857403Z INFO dreamer::widgets::mainpanel: rendering body
2024-05-10T06:32:13.853788Z TRACE async_imap::imap_stream: decode: input: Ok("* OK Still here\r\n")
2024-05-10T06:32:13.853947Z TRACE async_imap::imap_stream: decode: input: Ok("")
2024-05-10T06:32:13.853958Z TRACE async_imap::imap_stream: decode: incomplete data, need minimum 1 bytes
```

end of log in debug build with log level trace:
```
2024-05-10T06:47:22.110203Z TRACE eframe::native::run: UserEvent::RequestRepaint scheduling repaint at Instant { tv_sec: 1764533, tv_nsec: 521171958 }
2024-05-10T06:47:22.110224Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.110234Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.110242Z TRACE eframe::native::run: request_redraw for WindowId(WindowId(5787164400))
2024-05-10T06:47:22.110263Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.110271Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.110328Z TRACE winit::platform_impl::platform::window: Locked shared state in `fullscreen`
2024-05-10T06:47:22.110333Z TRACE winit::platform_impl::platform::window: Unlocked shared state in `fullscreen`
2024-05-10T06:47:22.111912Z TRACE eframe::native::glow_integration: request_repaint_callback: RequestRepaintInfo { viewport_id: "0000", delay: 0ns, current_frame_nr: 679 }
2024-05-10T06:47:22.112017Z INFO dreamer::widgets::mainpanel: rendering body
2024-05-10T06:47:22.112205Z INFO dreamer::widgets::mainpanel: inserted 5 rows (5 cache hits)
2024-05-10T06:47:22.121543Z TRACE eframe::native::run: UserEvent::RequestRepaint scheduling repaint at Instant { tv_sec: 1764533, tv_nsec: 525371083 }
2024-05-10T06:47:22.121568Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.121578Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.121586Z TRACE eframe::native::run: request_redraw for WindowId(WindowId(5787164400))
2024-05-10T06:47:22.121606Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.121616Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.121683Z TRACE winit::platform_impl::platform::window: Locked shared state in `fullscreen`
2024-05-10T06:47:22.121690Z TRACE winit::platform_impl::platform::window: Unlocked shared state in `fullscreen`
2024-05-10T06:47:22.123074Z TRACE eframe::native::glow_integration: request_repaint_callback: RequestRepaintInfo { viewport_id: "0000", delay: 0ns, current_frame_nr: 680 }
2024-05-10T06:47:22.123531Z INFO dreamer::widgets::mainpanel: rendering body
2024-05-10T06:47:22.123713Z INFO dreamer::widgets::mainpanel: inserted 5 rows (5 cache hits)
2024-05-10T06:47:22.125473Z TRACE eframe::native::run: UserEvent::RequestRepaint scheduling repaint at Instant { tv_sec: 1764533, tv_nsec: 536531541 }
2024-05-10T06:47:22.125492Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.125503Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.125512Z TRACE eframe::native::run: request_redraw for WindowId(WindowId(5787164400))
2024-05-10T06:47:22.125533Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.125542Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.125605Z TRACE winit::platform_impl::platform::window: Locked shared state in `fullscreen`
2024-05-10T06:47:22.125611Z TRACE winit::platform_impl::platform::window: Unlocked shared state in `fullscreen`
2024-05-10T06:47:22.126273Z INFO dreamer::widgets::mainpanel: rendering body
2024-05-10T06:47:22.126450Z INFO dreamer::widgets::mainpanel: inserted 5 rows (5 cache hits)
2024-05-10T06:47:22.176022Z TRACE winit::platform_impl::platform::view: Triggered `mouseUp:`
2024-05-10T06:47:22.176059Z TRACE winit::platform_impl::platform::view: Completed `mouseUp:`
2024-05-10T06:47:22.176133Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.176142Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.176153Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.176163Z TRACE eframe::native::run: request_redraw for WindowId(WindowId(5787164400))
2024-05-10T06:47:22.176189Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.176198Z TRACE eframe::native::run: WaitUntil 0ns
2024-05-10T06:47:22.176245Z TRACE winit::platform_impl::platform::window: Locked shared state in `fullscreen`
2024-05-10T06:47:22.176250Z TRACE winit::platform_impl::platform::window: Unlocked shared state in `fullscreen`
2024-05-10T06:47:22.177129Z INFO dreamer::widgets::mainpanel: rendering body
2024-05-10T06:47:22.232981Z TRACE eframe::native::glow_integration: request_repaint_callback: RequestRepaintInfo { viewport_id: "0000", delay: 0ns, current_frame_nr: 682 }
```

video of it:

https://github.com/dignifiedquire/dreamer/assets/18725968/01581265-d649-4824-a432-7c49bcf12cbb

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the lockup by building in release mode and switching chats rapidly, then inspect the logged dreamer::widgets::mainpanel rendering and eframe::native::run repaint activity. Compare the release and debug traces, including async_imap::imap_stream, and consider the issue done when rapid chat switching no longer leaves the UI with a spinning or waiting cursor.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.