[prev in list] [next in list] [prev in thread] [next in thread] 

List:       haiku-bugs
Subject:    [haiku-bugs] Re: [Haiku] #18868: Desktop becomes unusable after updating noto package
From:       Haiku <trac () haiku-os ! org>
Date:       2024-03-29 22:23:52
Message-ID: 062.73b95ae7ffb816ab48c5ae7e4717b16c () haiku-os ! org
[Download RAW message or body]

--===============3293804719747353945==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

#18868: Desktop becomes unusable after updating noto package
---------------------------------+----------------------------
  Reporter:  davidkaroly         |      Owner:  axeld
      Type:  bug                 |     Status:  new
  Priority:  critical            |  Milestone:  Unscheduled
 Component:  Servers/app_server  |    Version:  R1/Development
Resolution:                      |   Keywords:
Blocked By:                      |   Blocking:
  Platform:  All                 |
---------------------------------+----------------------------
Comment (by madmax):

 Replying to [comment:1 waddlesplash]:
 > [...] guess that, since the font files got deleted, their mmap areas
 were trashed.

 That shouldn't happen, like deleting a file doesn't really remove it until
 all references are closed? I did a quick mmap test and to my limited
 knowledge I could access the data until the call to munmap, even if the
 file came from a package and I uninstalled or updated it while reading.

 There are probably quite a few issues here.

 For starters, as far as I know, a BFont doesn't pin a server font (I
 *think* setting it as a view's font does). So using BFont's
 TruncateString, StringWidth and company will pass the app server a font id
 that may not exist anymore, an error is returned, the arrays are not
 touched and havoc ensues.

 In fact, you don't even need to delete a font to see some client effects:
 open a bunch of windows for an expanded deskbar view and change the menu
 font size in appearance. The font doesn't change, as the BMenu sets it on
 init (you can also see that in other already open apps vs new ones). The
 space each window item takes does change, though, as it is recalculated
 when drawn using the desktop settings and not the font really used. And
 the total height taken by all the items is updated somewhere else, so
 you'll get empty space at the bottom if you reduced font size or lose
 entries if you increased it, until that update is triggered.

 And then there may be problems in app_server. If a style is still
 referenced, it will not be removed on uninstall. Then the insertion would
 fail on installation of the new version, as we already have it. And I
 guess (but will have to check it) the references may later disappear
 taking the style with them.

 With respect to be_plain_font and friends, the client BFont is initialized
 on app initialization. The server does get a reference too, so I think
 those should continue working, unless there's some AS_SET_SYSTEM_FONT
 message involved.
--=20
Ticket URL: <https://dev.haiku-os.org/ticket/18868#comment:2>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.

--===============3293804719747353945==--

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic