This is the last major problem I have with the new cache build at this
time, you'll be pleased to know :)
Quite often llcache_object_notify_users will crash when loading pages,
unfortunately it's random and I can't get a reproduceable test case.
Top of the stack trace (line numbers are for r10286):
llcache_object_notify_users()+0x44 (section 10 @ 0x46dcc)
is content/llcache.c:1147
llcache_poll()+0x30 (section 10 @ 0x452cc)
is content/llcache.c:229
The only reason I can see for it crashing there, is user==NULL, but it
shouldn't be because the for loop is testing it - so maybe "user" is
being freed somewhere else?
Chris
Crash log for task "NetSurf"
Generated by GrimReaper 53.2
Crash occured in module NetSurf at address 0x6CCD072C
Type of crash: DSI (Data Storage Interrupt) exception
Register dump:
GPR (General Purpose Registers):
0: 00000001 563EDB60 00000000 00000000 563ED8F0 503DBD90 00000007 00000006
8: 00000001 73657400 563ED91C 563EDB60 563ED91C 584EABCC 00000000 00000000
16: 569BC680 6CC954BC 00000000 15BF4C26 01E60000 00340014 01E60000 00000014
24: 00000000 58C93682 00000000 00000000 00000000 584C37DC 24002024 563EDB60
FPR (Floating Point Registers, NaN = Not a Number):
0: nan 2.77323e-135 2.83039e+107 0
4: 0 23.8 23.8 0
8: 0 4.5036e+15 4.5036e+15 10
12: 2.83329e-14 0 0 0
16: 0 0 0 0
20: 1.26481e-321 4.34638e-311 0 0
24: 0 0 0 -2.97403e+284
28: 0 0 0 -2.22193e+193
FPSCR (Floating Point Status and Control Register): 0x82024000
SPRs (Special Purpose Registers):
Machine State (msr) : 0x0002F030
Condition (cr) : 0x24002024
Instruction Pointer (ip) : 0x6CCD072C
Xtended Exception (xer) : 0x20000002
Count (ctr) : 0x6CD2D478
Link (lr) : 0x6CCD0984
DSI Status (dsisr) : 0x00800000
Data Address (dar) : 0x73657414
680x0 emulated registers:
DATA: 00000080 000000C7 00000000 00000000 00000000 00000000 00000000 00000000
ADDR: 00000000 561437B0 00000000 00000000 00000000 00000000 00000000 563EE760
FPU0: 0 0 0 0
FPU4: 0 0 0 0
Symbol info:
Instruction pointer 0x6CCD072C belongs to module "NetSurf" (PowerPC)
Symbol: llcache_object_notify_users + 0x44 in section 10 offset 0x00046DCC
Stack trace:
llcache_object_notify_users()+0x44 (section 10 @ 0x46dcc)
llcache_poll()+0x30 (section 10 @ 0x452cc)
html_find_stylesheets()+0x878 (section 10 @ 0xa32d4)
html_convert()+0x628 (section 10 @ 0xa1ae4)
content_convert()+0x174 (section 10 @ 0x3b7f8)
content_llcache_callback()+0x188 (section 10 @ 0x3b2f0)
llcache_object_notify_users()+0x29C (section 10 @ 0x47024)
llcache_poll()+0x30 (section 10 @ 0x452cc)
html_find_stylesheets()+0x878 (section 10 @ 0xa32d4)
html_convert()+0x628 (section 10 @ 0xa1ae4)
content_convert()+0x174 (section 10 @ 0x3b7f8)
content_llcache_callback()+0x188 (section 10 @ 0x3b2f0)
llcache_object_notify_users()+0x29C (section 10 @ 0x47024)
llcache_poll()+0x30 (section 10 @ 0x452cc)
nscss_convert_css_data()+0x234 (section 10 @ 0x531ac)
nscss_convert()+0x28 (section 10 @ 0x52d9c)
content_convert()+0x174 (section 10 @ 0x3b7f8)
content_llcache_callback()+0x188 (section 10 @ 0x3b2f0)
llcache_object_notify_users()+0x29C (section 10 @ 0x47024)
llcache_poll()+0x30 (section 10 @ 0x452cc)
html_find_stylesheets()+0x878 (section 10 @ 0xa32d4)
html_convert()+0x628 (section 10 @ 0xa1ae4)
content_convert()+0x174 (section 10 @ 0x3b7f8)
content_llcache_callback()+0x188 (section 10 @ 0x3b2f0)
llcache_object_notify_users()+0x29C (section 10 @ 0x47024)
llcache_poll()+0x30 (section 10 @ 0x452cc)
html_find_stylesheets()+0x878 (section 10 @ 0xa32d4)
html_convert()+0x628 (section 10 @ 0xa1ae4)
content_convert()+0x174 (section 10 @ 0x3b7f8)
content_llcache_callback()+0x188 (section 10 @ 0x3b2f0)
llcache_object_notify_users()+0x29C (section 10 @ 0x47024)
llcache_poll()+0x30 (section 10 @ 0x452cc)
netsurf_main_loop()+0x30 (section 10 @ 0x6ed98)
main()+0x90 (section 10 @ 0xbbec)
native kernel module newlib.library.kmod+0x00001f4c
native kernel module newlib.library.kmod+0x00002be0
native kernel module newlib.library.kmod+0x00002d5c
_start()+0x170 (section 10 @ 0x170)
native kernel module dos.library.kmod+0x0001a228
native kernel module kernel+0x00036290
native kernel module kernel+0x00036310
PPC disassembly:
6ccd0724: 813f0014 lwz r9,20(r31)
6ccd0728: 38000001 li r0,1
*6ccd072c: 98090014 stb r0,20(r9)
6ccd0730: 813f0014 lwz r9,20(r31)
6ccd0734: 8009001c lwz r0,28(r9)
System information:
CPU
Model: AMCC PPC440EP V1.3
CPU speed: 599 MHz
FSB speed: 133 MHz
Extensions:
Machine
Machine name: Sam440EP
Memory: 524288 KB
Extensions: bus.pci
Expansion buses
PCI/AGP
00:00.0 Vendor 0x1014 Device 0x027F
00:0A.0 Vendor 0x12D8 Device 0x8150
00:0C.0 Vendor 0x1002 Device 0x4C66
Range 0: A8000000 - B0000000 (PREF.MEM)
Range 1: 00001000 - 00001100 (IO)
Range 2: B0000000 - B0010000 (MEM)
00:0E.0 Vendor 0x1095 Device 0x3114
Range 0: 00001100 - 00001108 (IO)
Range 1: 00001108 - 00001110 (IO)
Range 2: 00001110 - 00001118 (IO)
Range 3: 00001118 - 00001120 (IO)
Range 4: 00001120 - 00001130 (IO)
01:04.0 Vendor 0x1013 Device 0x6005
Range 0: A0000000 - A0001000 (MEM)
Range 1: A0010000 - A0020000 (MEM)
01:05.0 Vendor 0x1131 Device 0x1561
Range 0: A0020000 - A0021000 (MEM)
01:05.1 Vendor 0x1131 Device 0x1561
Range 0: A0021000 - A0022000 (MEM)
01:05.2 Vendor 0x1131 Device 0x1562
Range 0: A0022000 - A0022100 (MEM)
01:06.0 Vendor 0x1260 Device 0x3873
Range 0: A0023000 - A0024000 (PREF.MEM)