Opened 8 years ago

Closed 4 months ago

Last modified 3 months ago

#8513 closed bug (fixed)

ProcessController not correctly handling item recycling with high amounts of concurrent team creation/destruction.

Reported by: anevilyak Owned by: nobody
Priority: normal Milestone: R1/beta2
Component: Kits/Interface Kit Version: R1/Development
Keywords: Cc:
Blocked By: Blocking: #3103, #11152, #13255
Platform: All

Description

To trigger this issue, a simple test case is: go into the haiku source tree and issue a jam -qj16. Now open up one of ProcessController's menus and simply observe activity. The menu will rapidly grow to the point where it requires scrollers. However, as teams exit, the menu doesn't appear to handle the case of resizing itself back properly, the observed behavior is that the menu rapidly becomes all white and completely unusable. Note that this problem is only observable when large numbers of add/removes like this that extend the menu to scrolling range occur. A smaller activity set like -j2 or -j4 doesn't appear to exhibit the issue.

The problem was observed on hrev44090 but after searching back for a while, does not appear to be new.

Change History (13)

comment:1 by anevilyak, 8 years ago

Component: Kits/Interface KitApplications/ProcessController
Owner: changed from axeld to nobody

Upon closer inspection this might actually be a ProcessController problem after all, it appears to try to recycle/reuse menu items when teams exit (by reassigning them to new teams), and some of the code there looks potentially a bit suspect.

comment:2 by anevilyak, 8 years ago

Summary: BMenu not handling certain cases of resizing on add/remove correctlyProcessController not correctly handling item recycling with high amounts of concurrent team creation/destruction.

comment:3 by humdinger, 6 years ago

Blocking: 11152 added

(In #11152) Duplicate. Sorry for the noise...

comment:4 by diver, 3 years ago

Blocking: 13255 added

comment:5 by X512, 7 months ago

Still present in hrev53618.

comment:6 by diver, 6 months ago

Blocking: 3103 added

comment:7 by X512, 4 months ago

I managed to reproduce and localize issue. Problem is in Interface Kit, not in Process Controller.

Steps to reproduce:

  1. Download https://github.com/X547/HaikuUtils/tree/32e05eec01542f124d87abadd16b139c1fe514fa/MenuDynItems.
  2. Open Terminal in MenuDynItems directory and call make run.
  3. Open "Long menu".
  4. Press and release shift key.
  5. White space appear above and below menu.

Menu relayouting code seems not taking scrolls arrow into account correctly.

comment:9 by X512, 4 months ago

Someone having permissions, please change component from ProcessController to Interface Kit.

comment:10 by vidrep, 4 months ago

Component: Applications/ProcessControllerKits/Interface Kit

comment:11 by waddlesplash, 4 months ago

Fix merged in hrev53941.

comment:12 by waddlesplash, 4 months ago

Resolution: fixed
Status: newclosed

comment:13 by nielx, 3 months ago

Milestone: R1R1/beta2

Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone

Note: See TracTickets for help on using tickets.