Opened 6 years ago

Closed 5 years ago

#10209 closed bug (fixed)

[Message] crashes in BFont::StringWidth

Reported by: diver Owned by: korli
Priority: normal Milestone: R1
Component: Add-Ons/Screen Savers Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by diver)

This is hrev46374.

I was trying to reproduce #4260 by going up and down the screensaver list when I hit another crash. I think it might have something to do with Message screensaver as it was the last screen saver selected before the crash 3 times I reproduced it.

Frame       IP          Function Name
16	        -----------------------------------------------
17	        0x72882d28  0x1a63d89   BFont::StringWidth(BFont, char*) + 0x25
18	    Disassembly:
19	        BFont::StringWidth(BFont, char*):
[...]
39	        0x72882f68  0x15c55f6   Message::Draw(BView*, int32) + 0x8de
40	        0x72882fb8  0x11ec085   ScreenSaverRunner::_Run() + 0x1d9
41	        0x72882fe8  0x11ec10a   ScreenSaverRunner::_ThreadFunc(void*) + 0x1a
42	        0x72883010  0x25b316d   thread_entry + 0x21
43	        00000000    0x6034c250  commpage_thread_exit + 0

Attachments (2)

ScreenSaver-1424-debug-16-11-2013-07-15-15.report (65.3 KB) - added by diver 6 years ago.
ScreenSaver-695-debug-23-01-2014-03-57-16.report (19.8 KB) - added by diver 5 years ago.
hrev46746

Download all attachments as: .zip

Change History (15)

comment:1 Changed 6 years ago by diver

Component: Preferences/ScreenSaverAdd-Ons/Screen Savers
Description: modified (diff)
Owner: changed from jscipione to leavengood
Status: newassigned
Summary: [ScreenSaver] crashes in BFont::StringWidth[Message] crashes in BFont::StringWidth

Seems the crash happens somewhere in Message::Draw.

comment:2 Changed 6 years ago by korli

BTW it seems the "Legacy Software Rasterizer" addon images are happily leaked.

94	    5917    0x4c49e000  0x4c6f1000  0x4c6f1000  0x4c706000  add-on  /boot/system/add-ons/opengl/Legacy Software Rasterizer
95	    5921    0x5ddaf000  0x5e002000  0x5e002000  0x5e017000  add-on  /boot/system/add-ons/opengl/Legacy Software Rasterizer
96	    5919    0x5e24d000  0x5e4a0000  0x5e4a0000  0x5e4b5000  add-on  /boot/system/add-ons/opengl/Legacy Software Rasterizer
97	    5932    0x5f083000  0x5f2d6000  0x5f2d6000  0x5f2eb000  add-on  /boot/system/add-ons/opengl/Legacy Software Rasterizer
98	    5930    0x5f314000  0x5f567000  0x5f567000  0x5f57c000  add-on  /boot/system/add-ons/opengl/Legacy Software Rasterizer
99	    5934    0x5f678000  0x5f8cb000  0x5f8cb000  0x5f8e0000  add-on  /boot/system/add-ons/opengl/Legacy Software Rasterizer

comment:3 Changed 6 years ago by diver

Actually, going through the list of screensavers back and forth (and thus, presumably leaking "Legacy Software Rasterizer" addon) quickly exhausts virtual memory to a point where kernel cannot recover itself and eventually hangs.

Maybe we should open another ticket with this issue or fix this ticket and create a test case for the kernel? Reproducible in VirtualBox with 512Mb of ram allocated to the VM. Thoughts?

comment:4 Changed 5 years ago by jscipione

Owner: changed from leavengood to jscipione

I believe that the crash in StringWidth() is caused by the view being disconnected from it's window at the time of the crash and should be fixed by hrev46570. I'll have to look into why the Legacy Software Rasterizer add-on is being leaked. I wonder if this also is the cause of the Flurry screensaver crashing.

comment:5 Changed 5 years ago by korli

Please check with hrev46751. Thanks!

I'll look into the addon problem later.

comment:6 Changed 5 years ago by jscipione

Owner: changed from jscipione to korli

You can have this ticket :)

comment:7 Changed 5 years ago by diver

The crash is gone now, thanks! Haiku still freezes though.

comment:8 Changed 5 years ago by korli

The add-on leak should be fixed in hrev46861.

comment:9 Changed 5 years ago by diver

Still here in gcc2 hybrid.

comment:10 in reply to:  9 Changed 5 years ago by korli

Replying to diver:

Still here in gcc2 hybrid.

Yeah only fixed for gcc4.

comment:11 Changed 5 years ago by korli

The add-on leak should be fixed in hrev46872 for gcc2.

While the add-on seems to be now loaded/unloaded correctly according to listimage, the VM crash still comes after 14 iterations on Qemu 512MB... I have no idea, this probably ends with a dedicated bug report.

comment:12 Changed 5 years ago by pulkomandy

Can't reproduce either issue here, is this stil valid?

comment:13 Changed 5 years ago by diver

Resolution: fixed
Status: assignedclosed

The crash is fixed. Should probably open another ticket regarding VM crash.

Note: See TracTickets for help on using tickets.