I released a small update for the Rave audio editor yesterday night...
Unless I'm doing something wrong, there seems to be a bug in the new version of Rave. If I bring up the Settings requester and then click on either "File Requester" or "Advanced" the program stops responding, along with much of the OS. I have to reboot to recover.
If I bring up the Settings requester and then click on either "File Requester" or "Advanced" the program stops responding, along with much of the OS.
Hmm, sorry about that, but this is strange because I haven't touched this part of the program since the previous version at all.
I test Rave on three different systems: X5000/020, Sam440ep-Flex, and WinUAE running AmigaOS4 FE for Classic. All of these machines are at Update 3, and none of them shows the problem you've described. So I don't know what to say
We may be getting a bit off-topic here, but this thread has become kind of a place to discuss Rave in particular, as well as the blog in general. So...
Quote:
I test Rave on three different systems: X5000/020, Sam440ep-Flex, and WinUAErunning AmigaOS4 FE for Classic. All of these machines are at Update 3, and none of them shows the problem you've described.
I was afraid of that- you do quality work, and it was hard to imagine you missing something like this. Nonetheless, it's entirely repeatable on my system (which is an X1000 running Update 3 and Enhancer 2.2).
I spent some time investigating the problem today, and it's rather bizarre.
First, I booted up my Update 2 partition -- which I made for just such a purpose prior to installing Update 3 -- and confirmed that Rave 1.9 works fine under Update 2- clicking on "File Requester" or "Advanced" just brings up the expected page of controls.
Back under Update 3, I unpacked the Rave 1.9 archive into RAM:, and discovered that Rave 1.9 works properly when run from the RAM disk, even under Update 3.
Thinking that perhaps my hard disk installation got corrupted somehow, I then drug the Rave drawer from RAM: to the hard drive (a different partition than my normal installation), and when run from the hard drive Rave once again hung when I tried to display the same two settings pages.
I next (after rebooting) installed Rave 1.8 to the same partition on the hard drive, and confirmed that it worked properly, even when run from the hard disk.
So, to summarize:
- Rave 1.8 works properly under Update 2 and Update 3, from RAM: or from the hard drive.
- Rave 1.9 works properly under Update 2 from the hard drive (I didn't try RAM:), and works properly under Update 3 when run from RAM:.
- Rave 1.9 does not work properly under Update 3 when run from the hard drive. (I use SFS2 on my hard drive partitions, not that the file system should make any difference.)
Some experimentation with Sashimi revealed that there is in fact a GR when Rave crashes, but due to side effects of the crash the GR window never appears. I was able to capture the crash log to disk:
AmigaOne X1000 release
Machine model: 6 (AmigaOne X1000)
Dump of context at 0xdfa92ba0
Trap type: DSI exception
Current kernel stack pointer: 0x296ff00
DSISR: 08000000 DAR: 63ae5520
Page: 0xdffb3b10 (Virtual: 0x63ae5000, Physical: 0x88a6000, Flags: 0x 102)
Machine State (raw): 0x100000000200f030
Machine State (verbose): [Hyper] [ExtInt on] [User] [IAT on] [DAT on]
Instruction pointer: in module kernel+0x5474c (0x205474c)
Crashed process: Rave (0x5e1f6480)
DSI verbose error description: Access to address 0x63ae5520 not allowed by page or BAT protection (protection violation)
Access was a load operation
0: 02054960 5de607b0 00000000 029724f0 61173030 00000019 00000014 5de60838
8: 02032544 63ae551c 029724f0 00000020 84400000 5e8ea0e0 5d574124 5de60c90
16: 5e257d50 00560001 51eb851f 60fcaf02 00000000 00000001 00000004 5de62190
24: 61173010 61324730 61324730 5d594ea4 00000001 00000020 61173010 6117300c
CR: 28224228 XER: 20000000 CTR: 02032544 LR: 02054960
It looks like the crash occurs while setting up the gadgets for the selected page, which makes sense. No idea why it occurs when run from the hard disk and not when run from RAM:.
At this point I'll toss the ball back to you, and see if the crash log provides any clues.
I hadn't realized there was still a need for Sashimi (or even an OS4 port) in the era of Grim Reapers and serial output.
The crash prevented the Grim Reaper window from opening, and I don't have another machine handy to capture serial debug output. So I use Sashimi to redirect the serial output to a console window, or in this case a disk file. That won't work if the system goes down completely, but that wasn't the case here.
The latest version of AmigaDiskBench (v. 2.5.3) seems to have a very similar bug as Rave: When I run the program, select the Disk Info tab, and then click on "Fixed Drives/sb600sata.device" in the listview the program stops responding, along with much of the OS. (There is a recoverable DSI when I first run the program; that DSI doesn't seem related to the lockup bug.)
Like Rave, the crash happens when the program is working with ReAction gadgets, and the stack trace shows the crash occurs during a series of nested calls to the layout.gadget, followed by a call to the button.gadget. The first part of the crash log, including the general info and the register dump, seems to go missing. But what remains is enough to get an idea what was happening when the crash occurred:
Disassembly of crash site:
02009dac: 7c641b78 mr r4,r3
02009db0: 3c600200 lis r3,512
02009db4: 60639dd4 ori r3,r3,40404
02009db8: 44000022 .word 0x44000022
>02009dbc: 4e800020 blr
02009dc0: 7c641b78 mr r4,r3
02009dc4: 3c600200 lis r3,512
02009dc8: 60639f3c ori r3,r3,40764
02009dcc: 44000022 .word 0x44000022
02009dd0: 4e800020 blr
Stack pointer (0x5e456660) is inside bounds
Redzone is OK (4)
The exact code where the crash occurs is different than Rave. There are some other differences as well: unlike Rave, the crash occurs under FE Update 2, as well as under Update 3. And unlike Rave, the crash occurs even if AmigaDiskBench is run from the RAM disk. While the crash occurs most of the time, it occasionally doesn't, unlike Rave where it is always repeatable. Since I have only an X1000, I can't say if the crash only occurs on the X1000, as it does with Rave.
AmigaDiskBench isn't your responsibility, but the fact that a very similar bug occurs there is some evidence that it's not caused by your code doing anything wrong, and may in fact be a system problem of some sort. And perhaps the differences between the Rave crash and the AmigaDiskBench crash provide some clues as to where the problem lies.