[FIXED] popupmenu causes intuition freeze

This forum is for general developer support questions.
User avatar
abalaban
Beta Tester
Beta Tester
Posts: 456
Joined: Mon Dec 20, 2010 2:09 pm
Location: France
Contact:

Re: popupmenu causes intuition freeze

Post by abalaban »

chris wrote:I have been completely unable to create a test case for this, so there must be some other forces at play.
No signal available anymore ?
AmigaOne X1000 running AOS 4 beta
AmigaOne XE/G4
Amiga 1200/PPC 603e + BVision PPC
chris
Posts: 562
Joined: Sat Jun 18, 2011 11:05 am
Contact:

Re: popupmenu causes intuition freeze

Post by chris »

abalaban wrote:
chris wrote:I have been completely unable to create a test case for this, so there must be some other forces at play.
No signal available anymore ?
I had considered that possibility and allocated about ten signals so signal #21 was allocated (which my faulty app was allocating). Still no problem.

I had also previously tested allocating one extra signal in the faulting app, and that allocated fine.
chris
Posts: 562
Joined: Sat Jun 18, 2011 11:05 am
Contact:

Re: popupmenu causes intuition freeze

Post by chris »

Infurther developments it appears this is still occuring if ActivateGadget() is called before PMOPEN. If ActivateGdget() is called more than once before PMOPEN then the crash is not quite as serious, and the crashlog gives some offsets into popupmenu.library. I'm hoping these will provide some clues as to what is causing the crash.

This is one I was sent although I did manage to reproduce the crash on my machine too.
Hidden Text - Click to Show :
Crash log for task "NetSurf"
Generated by GrimReaper 53.2
Crash occured in module popupmenu.library at address 0x7FDC430C
Type of crash: DSI (Data Storage Interrupt) exception

Register dump:
GPR (General Purpose Registers):
0: 00000000 624C9330 00000000 00000001 049A4A11 0000006A 00000297 624C9068
8: 00000297 020A2AB4 00000000 00000000 28842022 63843AA8 6FFFF800 0199C568
16: 63FC126C 63FC1214 63FC1164 67E84050 6FFFF800 0199C568 00000000 624C9338
24: 00030D40 6807E3D8 6807D120 68010000 67E39098 00000001 67E39098 653E8970


FPR (Floating Point Registers, NaN = Not a Number):
0: nan 7.58303e-315 0 844
4: 626 861.8 684.8 9.27961e-315
8: 3.81962e-313 2.78132e-309 -2.56356e+203 0
12: 0 0 0 0
16: 0 0 0 0
20: 0 0 0 0
24: 0 0 0 0
28: 0 0 0 0

FPSCR (Floating Point Status and Control Register): 0x82004000


SPRs (Special Purpose Registers):
Machine State (msr) : 0x0200F030
Condition (cr) : 0x28842028
Instruction Pointer (ip) : 0x7FDC430C
Xtended Exception (xer) : 0x20000000
Count (ctr) : 0x0181C890
Link (lr) : 0x7FDC42B8
DSI Status (dsisr) : 0x40000000
Data Address (dar) : 0x0000000F



680x0 emulated registers:
DATA: 00000080 000000C2 00000000 00000000 00000000 00000000 00000000 00000000
ADDR: 00000000 60A0ACC0 00000000 00000000 00000000 00000000 00000000 624C9380
FPU0: 0 0 0 0
FPU4: 0 0 0 0



Symbol info:
Instruction pointer 0x7FDC430C belongs to module "popupmenu.library" (HUNK/Kickstart)

Stack trace:
module LIBS:popupmenu.library at 0x7FDC430C (section 5 @ 0x32EC)
module LIBS:popupmenu.library at 0x7FDC56D0 (section 5 @ 0x46B0)
module CLASSES:popupmenu.class at 0x7FF59354 (section 5 @ 0x2334)
native kernel module intuition.library.kmod+0x00018178
native kernel module intuition.library.kmod+0x0001839c
native kernel module intuition.library.kmod+0x00008424
native kernel module intuition.library.kmod+0x00008064
module NetSurf at 0x7F372740 (section 4 @ 0xB720)
module NetSurf at 0x7F37EAC8 (section 4 @ 0x17AA8)
module NetSurf at 0x7F380B68 (section 4 @ 0x19B48)
module NetSurf at 0x7F380D18 (section 4 @ 0x19CF8)
module NetSurf at 0x7F3E9458 (section 4 @ 0x82438)
module NetSurf at 0x7F37D62C (section 4 @ 0x1660C)
native kernel module newlib.library.kmod+0x0000204c
native kernel module newlib.library.kmod+0x00002ce0
native kernel module newlib.library.kmod+0x00002e5c
NetSurf:_start()+0x170 (section 9 @ 0x170)
native kernel module dos.library.kmod+0x00020a14
native kernel module kernel+0x000416f0
native kernel module kernel+0x00041770


PPC disassembly:
7fdc4304: 81490004 lwz r10,4(r9)
7fdc4308: 813b8700 lwz r9,-30976(r27)
*7fdc430c: 880b000f lbz r0,15(r11)
7fdc4310: 888a000f lbz r4,15(r10)
7fdc4314: 7d234b78 mr r3,r9

System information:

CPU
Model: Motorola MPC 7441/7451 Vger V2.1
CPU speed: 800 MHz
FSB speed: 133 MHz
Extensions: performancemonitor altivec

Machine
Machine name: AmigaOne
Memory: 1048576 KB
Extensions: bus.pci bus.agp

Expansion buses
PCI/AGP
00:00.0 Vendor 0x10CC Device 0x0660
Range 0: 00000000 - 00400000 (PREF.MEM)
00:01.0 Vendor 0x10CC Device 0x0661
00:06.0 Vendor 0x10B7 Device 0x9200
Range 0: 00802000 - 00802080 (IO)
Range 1: 98100000 - 98100080 (MEM)
00:07.0 Vendor 0x1106 Device 0x0686
00:07.1 Vendor 0x1106 Device 0x0571
Range 4: 0000CC00 - 0000CC10 (IO)
00:07.2 Vendor 0x1106 Device 0x3038
Range 4: 00802080 - 008020A0 (IO)
00:07.3 Vendor 0x1106 Device 0x3038
Range 4: 008020A0 - 008020C0 (IO)
00:07.4 Vendor 0x1106 Device 0x3057
00:07.5 Vendor 0x1106 Device 0x3058
Range 0: 0000DC00 - 0000DD00 (IO)
Range 1: 0000E000 - 0000E008 (IO)
Range 2: 0000E400 - 0000E408 (IO)
00:07.6 Vendor 0x1106 Device 0x3068
Range 0: 00802300 - 00802400 (IO)
00:08.0 Vendor 0x1102 Device 0x0002
Range 0: 00802400 - 00802420 (IO)
00:08.1 Vendor 0x1102 Device 0x7002
Range 0: 00802420 - 00802428 (IO)
00:09.0 Vendor 0x1095 Device 0x0680
Range 0: 00802428 - 00802430 (IO)
Range 1: 00802430 - 00802438 (IO)
Range 2: 00802438 - 00802440 (IO)
Range 3: 00802440 - 00802448 (IO)
Range 4: 00802450 - 00802460 (IO)
00:0A.0 Vendor 0x1095 Device 0x3512
Range 0: 00802460 - 00802468 (IO)
Range 1: 00802468 - 00802470 (IO)
Range 2: 00802470 - 00802478 (IO)
Range 3: 00802478 - 00802480 (IO)
Range 4: 00802480 - 00802490 (IO)
01:00.0 Vendor 0x1002 Device 0x5960
Range 0: 80000000 - 88000000 (PREF.MEM)
Range 1: 00002000 - 00002100 (IO)
Range 2: 88000000 - 88010000 (MEM)
01:00.1 Vendor 0x1002 Device 0x5940
Range 0: 90000000 - 98000000 (PREF.MEM)
Range 1: 98000000 - 98010000 (MEM)

Libraries
0x680979e8: ISO-8859-15.charset V52.1
0x68097968: swedish_ISO-8859-15.language V52.1
0x021b6866: exec.library V53.22
0x6ff1f174: vilintuisup.library V0.9
0x6ff1f048: cgxvideo.library V42.1
0x6ff660e0: cybergraphics.library V43.0
0x6433a098: nsbmp.library V1.3
0x6433a118: nsgif.library V1.1
0x6518a298: hubbub.library V1.2
0x648b1948: parserutils.library V1.4
0x65898268: iconv.library V1.1
0x63e91e88: timesync.library V53.1
0x63f03700: datebrowser.gadget V53.6
0x63e915d0: getscreenmode.gadget V53.7
0x63e913f0: wav.datatype V53.5
0x63e910d0: 8svx.datatype V53.1
0x63e91210: sound.datatype V53.6
0x63e91030: NBitmap.mcc V15.14
0x6244e350: Poppen.mui V20.277
0x63f03b7c: muilocale.library V20.344
0x6244e670: Popimage.mui V20.278
0x62422860: Floattext.mui V20.206
0x62422720: Imagedisplay.mui V20.211
0x62422540: Pendisplay.mui V20.202
0x6226da4c: xpkSQSH.library V1.10 (Legacy)
0x6417c5cc: xpkSMPL.library V1.0 (Legacy)
0x6244fc6c: xpkSHRI.library V2.2 (Legacy)
0x6437ab7c: xpkRLEN.library V1.3 (Legacy)
0x6417cb4c: xpkRAKE.library V1.7 (Legacy)
0x6437a63c: xpkNUKE.library V1.7 (Legacy)
0x6417c6cc: xpkNONE.library V1.4 (Legacy)
0x6244eccc: xpkMASH.library V1.98 (Legacy)
0x6417c828: xpkLZMA.library V52.2
0x6244ea82: xpkIMPL.library V1.0 (Legacy)
0x6437a9fc: xpkIDEA.library V1.3 (Legacy)
0x6437a3fc: xpkHUFF.library V0.64 (Legacy)
0x6417ca4c: xpkHFMN.library V1.36 (Legacy)
0x6417cecc: xpkFRLE.library V1.0 (Legacy)
0x6437a1bc: xpkFEAL.library V1.5 (Legacy)
0x6437a33c: xpkFAST.library V1.10 (Legacy)
0x639acfac: xpkENCO.library V1.3 (Legacy)
0x639aceec: xpkDUKE.library V1.6 (Legacy)
0x642d6b8c: xpkDLTA.library V0.1 (Legacy)
0x6226d95c: xpkCBR0.library V1.0 (Legacy)
0x656ea33c: xpkBZP2.library V1.7
0x6244e030: TextEditor.mcc V15.36
0x63f39f20: NBalance.mcc V15.10
0x63f39e80: NListtree.mcc V18.36
0x63f39de0: NFloattext.mcc V19.65
0x63f39ca0: NListview.mcc V19.84
0x63f39b60: NList.mcc V20.129
0x63f39ac0: TheButton.mcc V26.7
0x63f39a20: TheBarVirt.mcc V26.7
0x63f39980: TheBar.mcc V26.7
0x64425b48: amissl_v097g.library V3.7
0x63f397b8: amisslmaster.library V3.7
0x63daa540: expat.library V53.3
0x63f395b8: xenbar.image V20.200
0x63f39480: Lamp.mcc V20.21
0x63f39340: Gauge.mui V20.236
0x63f39200: Dtpic.mui V20.201
0x63f39020: Popasl.mui V20.210
0x65217a50: BetterString.mcc V11.20
0x65217190: Listtree.mcc V20.105
0x644fa54c: codesets.library V6.12
0x639aed2c: muimaster.library V20.2328
0x63e58374: asyncio.library V50.3
0x658981e8: pthreads.library V53.7
0x65217d70: ascii.datatype V53.1
0x65217eb0: text.datatype V53.5
0x648add08: speedbar.gadget V53.10
0x65289900: fuelgauge.gadget V53.8
0x65217550: ilbm.datatype V53.1
0x648bd358: winbar.docky V50.14
0x68099b30: getcolor.gadget V53.9
0x65286c10: gradientslider.gadget V53.5
0x65286ad4: colorwheel.gadget V53.5
0x648b1c48: CPUTemp.docky V52.15
0x648b1dc8: SubDock.docky V53.1
0x648b1bc8: Separator.docky V53.2
0x652863f0: palette.gadget V53.6
0x6528a650: texteditor.gadget V53.18
0x655a8cf8: radiobutton.gadget V53.9
0x654aec00: slider.gadget V53.12
0x654aea20: getfont.gadget V53.8
0x654ae8e0: getfile.gadget V53.10
0x654ae840: arexx.class V53.3
0x659e4a44: device.audio V6.2
0x654535f0: requester.class V53.18
0x654ae520: space.gadget V53.6
0x654ae340: bitmap.image V53.9
0x654ae3e0: integer.gadget V53.10
0x655a67f8: emu10kx.audio V6.7
0x655a81b8: clicktab.gadget V53.38
0x67cce498: screenblanker.library V53.3
0x68099a48: chooser.gadget V53.18
0x659c1c30: penmap.image V53.5
0x659c1910: checkbox.gadget V53.9
0x68099884: filesave.audio V6.3
0x659b6234: asl.library V53.45
0x6fd1b1c8: listbrowser.gadget V53.49
0x68e8bc50: string.gadget V53.16
0x678955e0: scroller.gadget V53.11
0x67895860: jpeg.datatype V53.5
0x677ce388: emulation.library V41.446
0x67c62ae0: mathieeedoubbas.library V52.1
0x67aefaa4: usergroup.library V4.30
0x678e7ec0: bsdsocket.library V4.292
0x67c6167c: textclip.library V52.2
0x67b00878: usbhidgate.library V52.2
0x680750bc: xadmaster.library V13.1
0x67e308c4: xpkmaster.library V5.2
0x67e304bc: hid.usbfd V53.7
0x67f5b910: button.gadget V53.14
0x67f5ba50: glyph.image V53.3
0x67ee59b0: window.class V53.42
0x6807d068: popupmenu.class V53.2
0x67e39098: popupmenu.library V53.5
0x67f5b730: label.image V53.12
0x6ff1f9a8: layout.gadget V53.19
0x67ee9e60: bevel.image V53.6
0x67f5b4b0: drawlist.image V53.3
0x68045f40: png.datatype V53.6
0x67ee6524: picture.datatype V53.6
0x680984f8: timezone.library V53.6
0x68091898: application.library V53.12
0x6809924c: ft2.library V53.1
0x67ff608c: workbench.library V53.37
0x6809c4e0: Picasso96API.library V2.356
0x68040d00: gadtools.library V53.4
0x6ffa8cac: commodities.library V53.1
0x680cd140: datatypes.library V53.4
0x6ff90e44: png.iconmodule V53.1
0x688f60cc: icon.library V53.13
0x6fdc3558: version.library V53.7
0x680f4bc0: iffparse.library V53.1
0x6fdb20cc: locale.library V53.3
0x6ff6041c: diskfont.library V53.4
0x6fdc54a8: petunia.library V53.3
0x6fdc53e8: diskcache.library V3.30
0x6fd2e654: dos.library V53.76
0x6ff1f444: usbprivate.library V53.11
0x6fef433c: massstorage.usbfd V53.13
0x6fef42a8: bootkeyboard.usbfd V52.3
0x6fef4228: bootmouse.usbfd V53.1
0x6ff1f2fc: hub.usbfd V53.8
0x6ff1f24c: usbresource.library V53.11
0x6ff5f658: hunk.library V53.4
0x6ff94354: elf.library V53.14
0x6ff894d0: intuition.library V53.32
0x6ff33150: rtg.library V41.4355
0x6ff8f8a0: ATIRadeon.chip V53.23
0x6ff8f824: PCIGraphics.card V53.1
0x6ffaaa10: keymap.library V53.3
0x6ff85340: layers.library V53.6
0x6ffb8420: graphics.library V53.4
0x6ff5f0e4: nonvolatile.library V52.1
0x6ffab318: newlib.library V53.18
0x6ff951ac: utility.library V53.3
0x6ffaa0a8: expansion.library V53.1
0x67c6658e: rexxsyslib.library V45.7 (Legacy)

Devices
0x65248ed4: clipboard.device V53.2
0x6752e3e4: ahi.device V6.6
0x677c6194: eth3com.device V53.2
0x67ee4d44: diskimage.device V52.75
0x6ff95d10: usbsys.device V53.11
0x6ff5fcd0: ehci.usbhcd V53.15
0x6ff5fc30: ohci.usbhcd V53.18
0x6ff5fb90: uhci.usbhcd V53.7
0x6ff5fac4: sii3512ide.device V53.8
0x6ff5f8e4: sii0680ide.device V53.8
0x6ffa8628: console.device V53.1
0x6ff963f0: ramdrive.device V52.6
0x6ffaac5c: input.device V53.3
0x6ffa8314: keyboard.device V53.5
0x6ff962d0: timer.device V53.1

Tasks
DepthToFront (Waiting)
Stack: 0x651e1004 - 0x651f0ffc, pointer @ 0x651f09e0 (Cookie OK)
Signals: SigRec 0xc000d000, SigWait 0x00000100
State: Process (Waiting)
ClickToFront (Waiting)
Stack: 0x655ce004 - 0x655ddffc, pointer @ 0x655dda80 (Cookie OK)
Signals: SigRec 0xc000d000, SigWait 0x00000100
State: Process (Waiting)
input.device (Waiting)
Stack: 0x6ff3b000 - 0x6ff4b000, pointer @ 0x6ff4af00 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000000
State: Task (Waiting)
SFS DosList handler (Waiting)
Stack: 0x6fcd8004 - 0x6fcd9ffc, pointer @ 0x6fcd9f20 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000000
State: Process (Waiting)
USB stack (Waiting)
Stack: 0x6ff53000 - 0x6ff57000, pointer @ 0x6ff56f20 (Cookie OK)
Signals: SigRec 0xf8007000, SigWait 0x00000000
State: Task (Waiting)
UHCI Controller Task Unit 0 (Waiting)
Stack: 0x6fe02000 - 0x6fe0a000, pointer @ 0x6fe09f00 (Cookie OK)
Signals: SigRec 0xbe001000, SigWait 0x00000000
State: Task (Waiting)
sii0680ide.device - chip 0 port 0 (Waiting)
Stack: 0x6fe96000 - 0x6fe9e000, pointer @ 0x6fe9df20 (Cookie OK)
Signals: SigRec 0xc0000000, SigWait 0x20000000
State: Task (Waiting)
eth3com.device (Waiting)
Stack: 0x67506004 - 0x67515ffc, pointer @ 0x67515ef0 (Cookie OK)
Signals: SigRec 0xe0001000, SigWait 0x10000000
State: Process (Waiting)
sii0680ide.device - chip 0 port 1 (Waiting)
Stack: 0x6fe66000 - 0x6fe6e000, pointer @ 0x6fe6df20 (Cookie OK)
Signals: SigRec 0xc0000000, SigWait 0x00000000
State: Task (Waiting)
page_sweep (Waiting)
Stack: 0x6fe0e004 - 0x6fe15ffc, pointer @ 0x6fe15e70 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000000
State: Task (Waiting)
sii3512ide.device - chip 0 port 1 (Waiting)
Stack: 0x6fe3e000 - 0x6fe46000, pointer @ 0x6fe45f20 (Cookie OK)
Signals: SigRec 0xc0000000, SigWait 0x20000000
State: Task (Waiting)
HD0 (Waiting)
Stack: 0x6fcd2004 - 0x6fcd3ffc, pointer @ 0x6fcd3eb0 (Cookie OK)
Signals: SigRec 0xe0000100, SigWait 0x10000000
State: Process (Waiting)
reaper.task (Waiting)
Stack: 0x681d2004 - 0x681d9ffc, pointer @ 0x681d9ea0 (Cookie OK)
Signals: SigRec 0x00007000, SigWait 0x00000000
State: Process (Waiting)
hid.usbfd (Waiting)
Stack: 0x67b71004 - 0x67b78ffc, pointer @ 0x67b78ee0 (Cookie OK)
Signals: SigRec 0xe0000000, SigWait 0x00000100
State: Process (Waiting)
HID Mouse (Waiting)
Stack: 0x67b3d004 - 0x67b4cffc, pointer @ 0x67b4cf20 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000000
State: Process (Waiting)
hid.usbfd (Waiting)
Stack: 0x67b59004 - 0x67b60ffc, pointer @ 0x67b60ee0 (Cookie OK)
Signals: SigRec 0xe0000000, SigWait 0x00000100
State: Process (Waiting)
ICD0 (Waiting)
Stack: 0x67aa1004 - 0x67ab0ffc, pointer @ 0x67ab0f20 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x08000000
State: Process (Waiting)
RAM (Waiting)
Stack: 0x68373004 - 0x6837affc, pointer @ 0x6837ac90 (Cookie OK)
Signals: SigRec 0xc0000100, SigWait 0x00000000
State: Process (Waiting)
JXF:DH1 (Waiting)
Stack: 0x6928a004 - 0x6928bffc, pointer @ 0x6928bde0 (Cookie OK)
Signals: SigRec 0xc0000100, SigWait 0x20000000
State: Process (Waiting)
JXF:DH0 (Waiting)
Stack: 0x69284004 - 0x69285ffc, pointer @ 0x69285de0 (Cookie OK)
Signals: SigRec 0xc0000100, SigWait 0x20000000
State: Process (Waiting)
JXF:HD4 (Waiting)
Stack: 0x6927e004 - 0x6927fffc, pointer @ 0x6927fde0 (Cookie OK)
Signals: SigRec 0xc0000100, SigWait 0x20000000
State: Process (Waiting)
JXF:HD3 (Waiting)
Stack: 0x69278004 - 0x69279ffc, pointer @ 0x69279de0 (Cookie OK)
Signals: SigRec 0xc0000100, SigWait 0x20000000
State: Process (Waiting)
JXF:HD2 (Waiting)
Stack: 0x69272004 - 0x69273ffc, pointer @ 0x69273de0 (Cookie OK)
Signals: SigRec 0xc0000100, SigWait 0x20000000
State: Process (Waiting)
JXF:HD1 (Waiting)
Stack: 0x6fcea004 - 0x6fcebffc, pointer @ 0x6fcebde0 (Cookie OK)
Signals: SigRec 0xc0000100, SigWait 0x20000000
State: Process (Waiting)
JXF:DH6 (Waiting)
Stack: 0x6fce4004 - 0x6fce5ffc, pointer @ 0x6fce5de0 (Cookie OK)
Signals: SigRec 0xc0000100, SigWait 0x20000000
State: Process (Waiting)
CD0 (Waiting)
Stack: 0x6fcde004 - 0x6fcdfffc, pointer @ 0x6fcdff20 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x30000000
State: Process (Waiting)
hid.usbfd (Waiting)
Stack: 0x67b65004 - 0x67b6cffc, pointer @ 0x67b6cee0 (Cookie OK)
Signals: SigRec 0xe0000000, SigWait 0x00000100
State: Process (Waiting)
HID Keyboard (Waiting)
Stack: 0x67a22004 - 0x67a31ffc, pointer @ 0x67a31f20 (Cookie OK)
Signals: SigRec 0x90001000, SigWait 0x00000000
State: Process (Waiting)
dos_filedir_notify (Waiting)
Stack: 0x6fd06004 - 0x6fd09ffc, pointer @ 0x6fd09ae0 (Cookie OK)
Signals: SigRec 0x10000000, SigWait 0x20000000
State: Process (Waiting)
hid.usbfd (Waiting)
Stack: 0x67b7d004 - 0x67b84ffc, pointer @ 0x67b84ee0 (Cookie OK)
Signals: SigRec 0xe0000000, SigWait 0x00000100
State: Process (Waiting)
HID Consumer (Waiting)
Stack: 0x67976004 - 0x67985ffc, pointer @ 0x67985f20 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000000
State: Process (Waiting)
hid.usbfd (Waiting)
Stack: 0x67bb6004 - 0x67bbdffc, pointer @ 0x67bbdee0 (Cookie OK)
Signals: SigRec 0xe0000000, SigWait 0x00000100
State: Process (Waiting)
HID Joystick (Waiting)
Stack: 0x67b89004 - 0x67b98ffc, pointer @ 0x67b98f20 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000000
State: Process (Waiting)
HID Consumer (Waiting)
Stack: 0x67b05004 - 0x67b14ffc, pointer @ 0x67b14f20 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000000
State: Process (Waiting)
HID Keyboard (Waiting)
Stack: 0x67b19004 - 0x67b28ffc, pointer @ 0x67b28f20 (Cookie OK)
Signals: SigRec 0x90001000, SigWait 0x00000000
State: Process (Waiting)
pager (Waiting)
Stack: 0x681ae004 - 0x681cdffc, pointer @ 0x681cdf00 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000000
State: Process (Waiting)
ENV (Waiting)
Stack: 0x682ff004 - 0x68300ffc, pointer @ 0x68300e00 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000100
State: Process (Waiting)
IDF0 (Waiting)
Stack: 0x67c73004 - 0x67c82ffc, pointer @ 0x67c82ed0 (Cookie OK)
Signals: SigRec 0xa8000100, SigWait 0x00000000
State: Process (Waiting)
URL (Waiting)
Stack: 0x6799b004 - 0x67a15ffc, pointer @ 0x67a11a90 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000100
State: Process (Waiting)
CON (Waiting)
Stack: 0x63c84004 - 0x63c93ffc, pointer @ 0x63c93de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x5d2f4004 - 0x5d303ffc, pointer @ 0x5d303de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
console.device (Waiting)
Stack: 0x6fe9e000 - 0x6fea6000, pointer @ 0x6fea5f70 (Cookie OK)
Signals: SigRec 0xf0000000, SigWait 0x00000000
State: Task (Waiting)
CON (Waiting)
Stack: 0x62371004 - 0x62380ffc, pointer @ 0x62380de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x65205004 - 0x65214ffc, pointer @ 0x65214de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x652eb004 - 0x652faffc, pointer @ 0x652fade0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x65376004 - 0x65385ffc, pointer @ 0x65385de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x654f1004 - 0x65500ffc, pointer @ 0x65500de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x65471004 - 0x65480ffc, pointer @ 0x65480de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x65571004 - 0x65580ffc, pointer @ 0x65580de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x655ea004 - 0x655f9ffc, pointer @ 0x655f9de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x65668004 - 0x65677ffc, pointer @ 0x65677de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x657f7004 - 0x65806ffc, pointer @ 0x65806de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
AUDIO (Waiting)
Stack: 0x67933004 - 0x67942ffc, pointer @ 0x67942ec0 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x68317004 - 0x6831effc, pointer @ 0x6831ede0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
RAW (Waiting)
Stack: 0x6837f004 - 0x68386ffc, pointer @ 0x68386de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
CON (Waiting)
Stack: 0x6838b004 - 0x68392ffc, pointer @ 0x68392de0 (Cookie OK)
Signals: SigRec 0x80000100, SigWait 0x00000000
State: Process (Waiting)
dos_nbmd_process (Waiting)
Stack: 0x6ff0f004 - 0x6ff10ffc, pointer @ 0x6ff10f20 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000000
State: Process (Waiting)
dos_lock_handler (Waiting)
Stack: 0x6ff09004 - 0x6ff0affc, pointer @ 0x6ff0af00 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000000
State: Process (Waiting)
RexxMaster [] (Waiting)
Stack: 0x67762004 - 0x67771ffc, pointer @ 0x67771f50 (Cookie OK)
Signals: SigRec 0xc0000000, SigWait 0x00000100
State: Process (Waiting)
diskimage.device unit 4 (Waiting)
Stack: 0x67a62004 - 0x67a75ffc, pointer @ 0x67a75c30 (Cookie OK)
Signals: SigRec 0xc0000000, SigWait 0x00000100
State: Process (Waiting)
diskimage.device unit 0 (Waiting)
Stack: 0x67abd004 - 0x67ad0ffc, pointer @ 0x67ad0c30 (Cookie OK)
Signals: SigRec 0xc0000000, SigWait 0x00000100
State: Process (Waiting)
TEXTCLIP (Waiting)
Stack: 0x67962004 - 0x67971ffc, pointer @ 0x67971eb0 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000100
State: Process (Waiting)
compose.task (Ready)
Stack: 0x66382000 - 0x6638a000, pointer @ 0x66389f30 (Cookie OK)
Signals: SigRec 0x00000021, SigWait 0x00000020
State: Task (Ready)
Workbench [Workbench] (Waiting)
Stack: 0x6751a004 - 0x67529ffc, pointer @ 0x67529ea0 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000000
State: Process (Waiting)
LimpidClock.os4 (Waiting)
Stack: 0x648c9004 - 0x648f9ffc, pointer @ 0x648f95c0 (Cookie OK)
Signals: SigRec 0xf0001000, SigWait 0x00000000
State: Process (Waiting)
ramlib (Waiting)
Stack: 0x68114004 - 0x6812cffc, pointer @ 0x6812cf20 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000100
State: Process (Waiting)
Workbench DosList Notify (Waiting)
Stack: 0x650eb004 - 0x650faffc, pointer @ 0x650faf40 (Cookie OK)
Signals: SigRec 0x00003000, SigWait 0x00000100
State: Process (Waiting)
MUI imagespace screen notify (Waiting)
Stack: 0x637e0004 - 0x637efffc, pointer @ 0x637efd70 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000100
State: Process (Waiting)
ContextMenus Command Dispatcher [ContextMenus Command Dispatcher] (Waiting)
Stack: 0x65730004 - 0x6573fffc, pointer @ 0x6573ff40 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000000
State: Process (Waiting)
BetterString.mcc clipboard server (Waiting)
Stack: 0x658a5004 - 0x658a6ffc, pointer @ 0x658a6ed0 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000000
State: Process (Waiting)
TextEditor.mcc clipboard server (Waiting)
Stack: 0x637b7004 - 0x637b8ffc, pointer @ 0x637b8f00 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000100
State: Process (Waiting)
NListtree.mcc clipboard server (Waiting)
Stack: 0x637b1004 - 0x637b2ffc, pointer @ 0x637b2f00 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000100
State: Process (Waiting)
NList.mcc clipboard server (Waiting)
Stack: 0x658b7004 - 0x658b8ffc, pointer @ 0x658b8f00 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000100
State: Process (Waiting)
texteditor.gadget Clipboard Server (Waiting)
Stack: 0x6485f004 - 0x6488fffc, pointer @ 0x6488ff00 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000100
State: Process (Waiting)
string.gadget server (Waiting)
Stack: 0x659ca004 - 0x659d9ffc, pointer @ 0x659d9db0 (Cookie OK)
Signals: SigRec 0x40000000, SigWait 0x00000100
State: Process (Waiting)
Workbench Clipboard Server (Waiting)
Stack: 0x65a3f004 - 0x65a4effc, pointer @ 0x65a4ef00 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000100
State: Process (Waiting)
Background CLI [] (Ready)
Stack: 0x595ef004 - 0x595feffc, pointer @ 0x595fe8b0 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000100
State: Process (Ready)
AmiDock (Ready)
Stack: 0x65813004 - 0x65822ffc, pointer @ 0x65822930 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00400100
State: Process (Ready)
windowfade.task (Ready)
Stack: 0x5cbcf000 - 0x5cbd7000, pointer @ 0x5cbd6e50 (Cookie OK)
Signals: SigRec 0x00000020, SigWait 0x00000000
State: Task (Ready)
RinghioServer (Ready)
Stack: 0x6548d004 - 0x654acffc, pointer @ 0x654ac370 (Cookie OK)
Signals: SigRec 0xd8001000, SigWait 0x10000100
State: Process (Ready)
TCP/IP Control (Waiting)
Stack: 0x6780b004 - 0x6781affc, pointer @ 0x6781adc0 (Cookie OK)
Signals: SigRec 0xf8009080, SigWait 0x00000000
State: Process (Waiting)
Winbar.docky (Notify) (Waiting)
Stack: 0x64496004 - 0x644a5ffc, pointer @ 0x644a5e90 (Cookie OK)
Signals: SigRec 0xe0001000, SigWait 0x00000100
State: Process (Waiting)
TCP/IP Superserver [TCP/IP Superserver] (Waiting)
Stack: 0x6781f004 - 0x6782effc, pointer @ 0x6782ea00 (Cookie OK)
Signals: SigRec 0xd0000080, SigWait 0x00000000
State: Process (Waiting)
Background CLI [FilerCX] (Waiting)
Stack: 0x653be004 - 0x653cdffc, pointer @ 0x653cdca0 (Cookie OK)
Signals: SigRec 0x40001000, SigWait 0x00000000
State: Process (Waiting)
screenblanker.library timing dispatcher (Waiting)
Stack: 0x65519004 - 0x65528ffc, pointer @ 0x65528ea0 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000000
State: Process (Waiting)
SabreMSN (Waiting)
Stack: 0x60f99004 - 0x61037ffc, pointer @ 0x61035f50 (Cookie OK)
Signals: SigRec 0x7c001080, SigWait 0x00000100
State: Process (Waiting)
WookieChat_OS4 (Waiting)
Stack: 0x5dc3e004 - 0x5dcc4ffc, pointer @ 0x5dcc2b20 (Cookie OK)
Signals: SigRec 0x4f401080, SigWait 0x20000100
State: Process (Waiting)
Background CLI [Workbench:samba/bin/nmbd] (Waiting)
Stack: 0x5e7fe004 - 0x5e80dffc, pointer @ 0x5e80d450 (Cookie OK)
Signals: SigRec 0x00001080, SigWait 0x00000100
State: Process (Waiting)
ContextMenus [] (Waiting)
Stack: 0x6558d004 - 0x6559cffc, pointer @ 0x6559cc50 (Cookie OK)
Signals: SigRec 0xe0001000, SigWait 0x0c000000
State: Process (Waiting)
YAM (Waiting)
Stack: 0x6094f004 - 0x6095effc, pointer @ 0x6095e9b0 (Cookie OK)
Signals: SigRec 0xffb4b000, SigWait 0x00000100
State: Process (Waiting)
TCP/IP Configuration (Waiting)
Stack: 0x67833004 - 0x67842ffc, pointer @ 0x67842de0 (Cookie OK)
Signals: SigRec 0xf8003000, SigWait 0x00000100
State: Process (Waiting)
application.library messageserver (Waiting)
Stack: 0x67f5a000 - 0x67f5afa0, pointer @ 0x67f5af10 (Cookie OK)
Signals: SigRec 0xc0000000, SigWait 0x00000000
State: Task (Waiting)
DiskImageGUI (Waiting)
Stack: 0x63dc6004 - 0x63dd5ffc, pointer @ 0x63dd5dc0 (Cookie OK)
Signals: SigRec 0xd7409000, SigWait 0x00000102
State: Process (Waiting)
Wet (Waiting)
Stack: 0x65307004 - 0x65316ffc, pointer @ 0x653131e0 (Cookie OK)
Signals: SigRec 0x6e001000, SigWait 0x00000100
State: Process (Waiting)
ScreenBlankerEngine (Waiting)
Stack: 0x655fe004 - 0x6560dffc, pointer @ 0x6560dbe0 (Cookie OK)
Signals: SigRec 0xd8001000, SigWait 0x00000000
State: Process (Waiting)
YAM thread [4] (Waiting)
Stack: 0x60245004 - 0x60254ffc, pointer @ 0x60254f30 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000080
State: Process (Waiting)
YAM thread [3] (Waiting)
Stack: 0x640e2004 - 0x640f1ffc, pointer @ 0x640f1f30 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000080
State: Process (Waiting)
YAM thread [2] (Waiting)
Stack: 0x67a4e004 - 0x67a5dffc, pointer @ 0x67a5df30 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000080
State: Process (Waiting)
YAM thread [1] (Waiting)
Stack: 0x6399c004 - 0x639abffc, pointer @ 0x639abf30 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000080
State: Process (Waiting)
« IPrefs » (Waiting)
Stack: 0x68057004 - 0x68066ffc, pointer @ 0x68066530 (Cookie OK)
Signals: SigRec 0x0000f000, SigWait 0x20000100
State: Process (Waiting)
DST watcher (Waiting)
Stack: 0x67f24004 - 0x67f33ffc, pointer @ 0x67f33f20 (Cookie OK)
Signals: SigRec 0xc0000000, SigWait 0x00000000
State: Process (Waiting)
Mixer (Waiting)
Stack: 0x6538a004 - 0x65399ffc, pointer @ 0x65399c70 (Cookie OK)
Signals: SigRec 0x78001000, SigWait 0x00000100
State: Process (Waiting)
ASYNCWB (Waiting)
Stack: 0x656ac004 - 0x656bbffc, pointer @ 0x656bbe70 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000100
State: Process (Waiting)
winbar.docky (Waiting)
Stack: 0x64823004 - 0x64832ffc, pointer @ 0x64832f30 (Cookie OK)
Signals: SigRec 0x00001000, SigWait 0x00000000
State: Process (Waiting)
MouseBlanker (Waiting)
Stack: 0x65272004 - 0x65281ffc, pointer @ 0x65281a00 (Cookie OK)
Signals: SigRec 0xc000d000, SigWait 0x00000100
State: Process (Waiting)
AllKeys (Waiting)
Stack: 0x6522e004 - 0x6523dffc, pointer @ 0x6523d810 (Cookie OK)
Signals: SigRec 0xf0001000, SigWait 0x00000100
State: Process (Waiting)
RAWBInfo (Waiting)
Stack: 0x65622004 - 0x65631ffc, pointer @ 0x65631ec0 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000000
State: Process (Waiting)
DefIcons (Waiting)
Stack: 0x65684004 - 0x65693ffc, pointer @ 0x65693dc0 (Cookie OK)
Signals: SigRec 0x80009000, SigWait 0x00000100
State: Process (Waiting)
ConClip (Waiting)
Stack: 0x6785f004 - 0x6786effc, pointer @ 0x6786eeb0 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000000
State: Process (Waiting)
TCP/IP Log (Waiting)
Stack: 0x67873004 - 0x67882ffc, pointer @ 0x67882f00 (Cookie OK)
Signals: SigRec 0x80003000, SigWait 0x00000000
State: Process (Waiting)
USB stack Process (Waiting)
Stack: 0x67cd5004 - 0x67ce4ffc, pointer @ 0x67ce4ee0 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000100
State: Process (Waiting)
datatypes.library (Waiting)
Stack: 0x67e10004 - 0x67e1fffc, pointer @ 0x67e1ff10 (Cookie OK)
Signals: SigRec 0x00001100, SigWait 0x00000000
State: Process (Waiting)
hub.usbfd (Waiting)
Stack: 0x6fd9e004 - 0x6fda5ffc, pointer @ 0x6fda5f00 (Cookie OK)
Signals: SigRec 0x30000000, SigWait 0x00000000
State: Task (Waiting)
hub.usbfd (Waiting)
Stack: 0x6fdba004 - 0x6fdc1ffc, pointer @ 0x6fdc1f00 (Cookie OK)
Signals: SigRec 0x30000000, SigWait 0x00000000
State: Task (Waiting)
NetSurf (Crashed)
Stack: 0x624ba004 - 0x624c9ffc, pointer @ 0x624c9330 (Cookie OK)
Signals: SigRec 0x00000020, SigWait 0x05000180
State: Process (Crashed)
ramlib.support (Waiting)
Stack: 0x68131004 - 0x68149ffc, pointer @ 0x68149f00 (Cookie OK)
Signals: SigRec 0x80005000, SigWait 0x00000100
State: Process (Waiting)
dos_signal_server (Waiting)
Stack: 0x6ff15004 - 0x6ff16ffc, pointer @ 0x6ff16e90 (Cookie OK)
Signals: SigRec 0x00000100, SigWait 0x00000000
State: Process (Waiting)
Picasso96 (Waiting)
Stack: 0x6802f004 - 0x6803effc, pointer @ 0x6803eda0 (Cookie OK)
Signals: SigRec 0x80000000, SigWait 0x00000000
State: Process (Waiting)
Sound_ObjectHandler (Waiting)
Stack: 0x60ef6004 - 0x60f94ffc, pointer @ 0x60f94eb0 (Cookie OK)
Signals: SigRec 0x4000f000, SigWait 0x00000000
State: Process (Waiting)
Sound_ObjectHandler (Waiting)
Stack: 0x5d943004 - 0x5d9e1ffc, pointer @ 0x5d9e1eb0 (Cookie OK)
Signals: SigRec 0x4000f000, SigWait 0x00000100
State: Process (Waiting)
Sound_ObjectHandler (Waiting)
Stack: 0x5e528004 - 0x5e5c6ffc, pointer @ 0x5e5c6eb0 (Cookie OK)
Signals: SigRec 0x4000f000, SigWait 0x00000100
State: Process (Waiting)
Sound_ObjectHandler (Waiting)
Stack: 0x5e19c004 - 0x5e222ffc, pointer @ 0x5e222eb0 (Cookie OK)
Signals: SigRec 0x4000f000, SigWait 0x00000100
State: Process (Waiting)
Sound_ObjectHandler (Waiting)
Stack: 0x5e2ce004 - 0x5e354ffc, pointer @ 0x5e354eb0 (Cookie OK)
Signals: SigRec 0x4000f000, SigWait 0x00000100
State: Process (Waiting)
Sound_ObjectHandler (Waiting)
Stack: 0x5e435004 - 0x5e4bbffc, pointer @ 0x5e4bbeb0 (Cookie OK)
Signals: SigRec 0x4000f000, SigWait 0x00000100
State: Process (Waiting)
dos_appdir_server (Waiting)
Stack: 0x6ff1b004 - 0x6ff1cffc, pointer @ 0x6ff1cd40 (Cookie OK)
Signals: SigRec 0x80001000, SigWait 0x00000100
State: Process (Waiting)
idle.task (Ready)
Stack: 0x6ff86000 - 0x6ff87000, pointer @ 0x6ff86fd0 (Cookie OK)
Signals: SigRec 0x00000000, SigWait 0x00000000
State: Task (Ready)
chris
Posts: 562
Joined: Sat Jun 18, 2011 11:05 am
Contact:

Re: popupmenu causes intuition freeze

Post by chris »

Nobody can trace this crashlog through popupmenu.library/class and give an indication of what is causing the crash?
chris
Posts: 562
Joined: Sat Jun 18, 2011 11:05 am
Contact:

Re: popupmenu causes intuition freeze

Post by chris »

This has reared its head again.

If I call AllocSignal(), ActivateLayoutGadget(), ActivateGadget() or Trixies AmigaGuide class initialisation function (which I think just opens amigaguide.library and creates a class), popupmenu.class will then crash and deadlock Intuition the next time it is called.

It seems to be related to the particular window that I'm attaching popupmenu.class to, as if I ActivateLayoutGadget() on a different window, popupmenu.class continues to function as it should.

I'm using window.class to create the window, and my hunch is that popupmenu.class is trying to allocate something, which is failing due to something common the other calls have done, and it isn't checking the return code and ploughing on regardless.

Can somebody please look at the crashlog I posted previously and see where in popupmenu.class it is crashing?
User avatar
trixie
Posts: 409
Joined: Thu Jun 30, 2011 2:54 pm
Location: Czech Republic

Re: popupmenu causes intuition freeze

Post by trixie »

@chris
chris wrote:This has reared its head again.

If I call AllocSignal(), ActivateLayoutGadget(), ActivateGadget() or Trixies AmigaGuide class initialisation function (which I think just opens amigaguide.library and creates a class), popupmenu.class will then crash and deadlock Intuition the next time it is called.
If you mean the initAGClass() function then yes - all it does is open the AmigaGuide.library and then create the class:

Code: Select all

Class *initAGClass(void)
{
 Class *cl = NULL;


 // Open amigaguide.library and its interface.
 if ( (AmigaGuideBase = IExec->OpenLibrary("amigaguide.library", 52)) )
  {
   if ( (IAmigaGuide  = (struct AmigaGuideIFace *)IExec->GetInterface(AmigaGuideBase, "main", 1L, NULL)) )
    {
     if ( (cl = IIntuition->MakeClass(NULL, "rootclass", NULL, sizeof(struct localObjectData), 0)) )
      {
       cl->cl_Dispatcher.h_Entry = (HOOKFUNC)dispatchAGClass;
       IIntuition->AddClass(cl);
      }
     else freeAGClass(NULL);
    }
   else freeAGClass(NULL);
  }

 return cl;

}
The class does not reference any window, window object or any other BOOPSI class anywhere in its code so it's strange the popupmenu.class should crash after just initializing the amigaguide class. But it does allocate a signal, by calling IAmigaGuide->AmigaGuideSignal() - though the signal allocation is part of the OM_NEW method, not the initAGClass() call.

It's all really strange. I think Rigo should take a good look at the popupmenu stuff. It's been used relatively rarely in OS4 software so some bug may have escaped attention.
The Rear Window blog

AmigaOne X5000 @ 2GHz / 4GB RAM / Radeon RX 560 / ESI Juli@ / AmigaOS 4.1 Final Edition
SAM440ep-flex @ 667MHz / 1GB RAM / Radeon 9250 / AmigaOS 4.1 Final Edition
chris
Posts: 562
Joined: Sat Jun 18, 2011 11:05 am
Contact:

Re: popupmenu causes intuition freeze

Post by chris »

trixie wrote:The class does not reference any window, window object or any other BOOPSI class anywhere in its code so it's strange the popupmenu.class should crash after just initializing the amigaguide class. But it does allocate a signal, by calling IAmigaGuide->AmigaGuideSignal() - though the signal allocation is part of the OM_NEW method, not the initAGClass() call.
My mistake, it's actually my init function, which also calls OM_NEW after initAGClass().

Anyway, behold the power of example code, as I've managed to get some failing code, which is in the below attachment (as an aside, I find it rather strange that an Amiga-orientated forum doesn't allow the extension "lha" for attachments). It's the vanilla Reaction popupmenu.class example, with one change - an AllocSignal(-1) before the "sticky menu" is displayed. The right-click menu is not affected.

Click on Sticky menu and it will display which signal has been allocated before opening the menu. It crashed here on 18. You will see the right-click menu (which doesn't allocate any extra signals) works infinitely.

Maybe we can finally get this fixed!
Attachments
popupbug.zip
popup signal crash problem
(10.4 KiB) Downloaded 452 times
kas1e
Beta Tester
Beta Tester
Posts: 542
Joined: Sat Jun 18, 2011 7:56 am
Contact:

Re: popupmenu causes intuition freeze

Post by kas1e »

@Chris
Tested test case, and yes, on latest beta the same problem : on 18 everything going to deadlock (no 3 buttons works), and together with deadlock sometime bring GR with 80000003 crash.

Is such a BZ will be ok ? :

----------------
BOOPSI Classes / popupmenu class
popupmenu causes intuition freeze/deadlock and sometime 80000003 crash

Problem caused by a simple AllocSignal(-1) before popupmenu.class even opened. I.e. AllocSignal() followed by the empty menu creation seems the problem. The signal does not need to be used, just allocated!

Test case attached. It is just a vanilla Reaction popupmenu.class example, with one change - an AllocSignal(-1) before the "sticky menu" is displayed. The right-click menu is not affected.

To see problem click on Sticky menu and it will display which signal has been allocated before opening the menu. Click at that Sticky menu, untill you will not reach value 18 in output window : thats where deadlock/crash happens.

You also can see the right-click menu (which doesn't allocate any extra signals) works infinitely.
----------------

That is BZ #8227
User avatar
trixie
Posts: 409
Joined: Thu Jun 30, 2011 2:54 pm
Location: Czech Republic

Re: popupmenu causes intuition freeze

Post by trixie »

@chris

Yes, the thing crashes and locks up the system as soon as signal number 18 becomes allocated.

Just out of curiosity - what happens if you comment out the AmigaGuideSignal() / Wait() section in amigaguide_class.c? I mean this particular piece of the OM_SET method function:

Code: Select all

     if ( (lod->agSignal = IAmigaGuide->AmigaGuideSignal(lod->agHandle)) )
      {
       // Wait until the help system is up and running.
       IExec->Wait(lod->agSignal);
       while ( !(lod->agActive) )
        {
         while ( (lod->agm = IAmigaGuide->GetAmigaGuideMsg(lod->agHandle)) )
          {
           // The AmigaGuide process started OK.
           if ( lod->agm->agm_Type == ActiveToolID ) lod->agActive = TRUE;

           // Opening the guide file failed for some reason, continue as usual.
           if ( lod->agm->agm_Type == ToolStatusID && lod->agm->agm_Pri_Ret ) lod->agActive = TRUE;

           IAmigaGuide->ReplyAmigaGuideMsg(lod->agm);
          }
        }
      }  
The class will work without it - the code just ensures that the asynschronously-started AmigaGuide document has fully been loaded and displayed.

If you get no crashes then you have another test case showing that it is signal allocation that causes the popupmenu crashes.
The Rear Window blog

AmigaOne X5000 @ 2GHz / 4GB RAM / Radeon RX 560 / ESI Juli@ / AmigaOS 4.1 Final Edition
SAM440ep-flex @ 667MHz / 1GB RAM / Radeon 9250 / AmigaOS 4.1 Final Edition
chris
Posts: 562
Joined: Sat Jun 18, 2011 11:05 am
Contact:

Re: popupmenu causes intuition freeze

Post by chris »

kas1e wrote:@Chris
Tested test case, and yes, on latest beta the same problem : on 18 everything going to deadlock (no 3 buttons works), and together with deadlock sometime bring GR with 80000003 crash.

Is such a BZ will be ok ? :

----------------
BOOPSI Classes / popupmenu class
popupmenu causes intuition freeze/deadlock and sometime 80000003 crash

Problem caused by a simple AllocSignal(-1) before popupmenu.class even opened. I.e. AllocSignal() followed by the empty menu creation seems the problem. The signal does not need to be used, just allocated!

Test case attached. It is just a vanilla Reaction popupmenu.class example, with one change - an AllocSignal(-1) before the "sticky menu" is displayed. The right-click menu is not affected.

To see problem click on Sticky menu and it will display which signal has been allocated before opening the menu. Click at that Sticky menu, untill you will not reach value 18 in output window : thats where deadlock/crash happens.

You also can see the right-click menu (which doesn't allocate any extra signals) works infinitely.
----------------

That is BZ #8227
Yes, perfect, thanks!
Post Reply