Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#283 closed bug (fixed)

Scalos Prefs hang on AmiKit with MUI4

Reported by: Fernando Martín Morillo Owned by: Thore Böckelmann
Priority: normal Milestone: 4.0-2015R4
Component: Hyperlink.mcc Version: 4.0-2015R3
Severity: minor Keywords:
Cc: OS Platform: AmigaOS3
Blocked By: Blocking:
Release Notes:

Description

Hi:

Install Scalos as WB replacement in AmiKit. Then open the AmiKit volume seing it by icons, make a right click and select "Tools", "Scalos Prefs". The system will hang.

If you make the same but you click first in Tools, MUI prefs, they will open. Now if you close them and you click on Scalos Prefs they will also open without problems this time.

BTW MorpheuZ has to be fixed in the AmiKit version, because it doesn't work right to change MUI to MUI3.8. In AKReal it works right though.

If you use MUI 3.8 in AKReal the Scalos preferences work without problems.

Change History (15)

comment:1 Changed 5 years ago by Thore Böckelmann

It seems to be quite hard to track this down, because either the system hangs completely or the system crashes and reboots immediately. Hence any debug output is lost. So if you are able to provide some Enforcer logs or similar, then please go ahead. Any help is welcome.

If MorpheuZ does not work as expected for you then this is a bug of this specific application and must be fixed there. This is no general bug in MUI and I cannot do anything against that.

comment:2 Changed 5 years ago by Thore Böckelmann

I found out that replacing MUI4's reimplementation of Urltext.mcc by the original one from http://aminet.net/dev/mui/MCC_Urltext.lha fixes the freezes.

I cannot really tell what Scalos prefs is asking from Urltext.mcc to cause these problems. At least the public source code on sourceforge.net does not reveal anything special. In contrast, it just uses two Urltext.mcc objects with quite simple URLs and mail addresses.

comment:3 Changed 5 years ago by Fernando Martín Morillo

This is what appears when you open the Scalos prefs:

http://hostthenpost.org/uploads/c2e94c64fa3058e4093f56faa7df787c.png

comment:4 Changed 5 years ago by Fernando Martín Morillo

comment:5 Changed 5 years ago by Fernando Martín Morillo

Well, there isn't anything wrong with SnoopDos it seems to me, but the system is hanged.

comment:6 Changed 5 years ago by Fernando Martín Morillo

You can try also with WinUAEEnforcer if you run WinUAE windowed: http://eab.abime.net/showpost.php?p=832698&postcount=3

comment:7 Changed 5 years ago by Fernando Martín Morillo

When you get a guru or the output shell window scrolls up with hundreds of hits then use F12 to interrupt the emulation or click into the window.

comment:9 Changed 5 years ago by Thore Böckelmann

First of all, please refrain from uploading screenshots on external hosts and posting links here. Such images are subject to be deleted more sooner than later and hence becoming unavailable for later reference. This bugtracker offers the possibility to attach arbitrary files on this site directly. This ensures that attachments are available at any time.

Of course I know about the debugging facilities of WinUAE, but these are useless if the stack trace points anywhere except MUI. A screenshot of SnoopDOS is even more useless, because it contains a fraction of the log only. So please attach complete logs here. A screenshot of a log does not help a bit.

comment:10 Changed 5 years ago by Fernando Martín Morillo

I'm sorry the screenshot was just an example of how to debug it. If you already knew then I can not help. This is what I get anyway:

4241a8ba :   b481                 CMP.L D1,D2
4241a8bc :   6c02                 BGE.B #$00000002
4241a8be :   2202                 MOVE.L D2,D1
4241a8c0 :   204a                 MOVEA.L A2,A0
4241a8c2 :   5301                 SUB.B #$00000001,D1
4241a8c4 : * 10d9                 MOVE.B (A1)+,(A0)+
4241a8c6 :   51c9 fffc            DBF .W D1,#$fffc
4241a8ca :   4210                 CLR.B (A0)
4241a8cc :   220a                 MOVE.L A2,D1
4241a8ce :   2c6e 0022            MOVEA.L (A6, $0022) == $40f87f6e,A6
4241a8d2 :   4eae fc9a            JSR.L (A6, -$0366) == $40f87be6
4241a8d6 :   b5c0                 CMPA.L D0,A2
4241a8d8 :   670c                 BEQ.B #$0000000c
4241a8da :   2040                 MOVEA.L D0,A0
Name: "ramlib"

Enforcer Hit! Bad program
Illegal BYTE READ from: eb7b7c15                PC: 4241a8c4
Data: 00000001 00000096 00000103 00000000 00000000 00000000 0000ffff 00000000
Addr: 428e3ff8 eb7b7c15 428e3fa0 400021ec 400022f6 4000be5c 40f87f4c 428e3f80
Stck: 00000104 40f6aae4 428e3fa0 00000000 00000000 40f87f4c 4241b976 efefefef
Stck: efefefef efefefef efefefef efefefef efefefef efefefef efefefef efefefef
Stck: efefefef efefefef efefefef efefefef efefefef efefefef efefefef efefefef
Stck: efefefef efefefef efefefef efefefef efefefef 11111111 11111111 11111111
Stck: 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
----> 4241a8c4 - "LIBS:reqchange.library" Hunk 0000 Offset 00000edc
----> 4241b976 - "LIBS:reqchange.library" Hunk 0000 Offset 00001f8e
----> 4243ebdc - "MCP" Hunk 0001 Offset 0000d9ec
----> 4241c7c4 - "LIBS:reqchange.library" Hunk 0000 Offset 00002ddc
----> 4241aab8 - "LIBS:reqchange.library" Hunk 0000 Offset 000010d0
4241a8b2 :   6100 ff12            BSR.W #$ff12
4241a8b6 :   c149                 EXG.L A0,A1
4241a8b8 :   6722                 BEQ.B #$00000022
4241a8ba :   b481                 CMP.L D1,D2
4241a8bc :   6c02                 BGE.B #$00000002
4241a8be :   2202                 MOVE.L D2,D1
4241a8c0 :   204a                 MOVEA.L A2,A0
4241a8c2 :   5301                 SUB.B #$00000001,D1
4241a8c4 : * 10d9                 MOVE.B (A1)+,(A0)+
4241a8c6 :   51c9 fffc            DBF .W D1,#$fffc
4241a8ca :   4210                 CLR.B (A0)
4241a8cc :   220a                 MOVE.L A2,D1
4241a8ce :   2c6e 0022            MOVEA.L (A6, $0022) == $40f87f6e,A6
4241a8d2 :   4eae fc9a            JSR.L (A6, -$0366) == $40f87be6
4241a8d6 :   b5c0                 CMPA.L D0,A2
4241a8d8 :   670c                 BEQ.B #$0000000c
4241a8da :   2040                 MOVEA.L D0,A0
Name: "ramlib"

comment:11 in reply to:  10 Changed 5 years ago by Thore Böckelmann

Replying to Retrofan:

This is what I get anyway:

Just take a look at your own log. It does not even mention MUI or one of its components in the stack trace. This makes it impossible to look for a possible bug in MUI.

But as I already pointed out the bug vanishes if my reimplementation of Urltext.mcc is replace by the original version. Hence there must be bug in MUI, but I have absolutely no clue where to start the search if anything except MUI is going nuts according to the logs.

comment:12 Changed 5 years ago by Fernando Martín Morillo

Yes, I know, and I'm not any debugger or related. It doesn't show any fail in MUI but MUI has to have changed something for the bug to appear in other libraries (the ones that Enforcer shows now). I only can show you what I find. For example that if you open first the MUI prefs and then you open the Scalos prefs then they don't hang.
And also that what it shows is some "ram lib" problem. If you found that changing Urltext.mcc fixes the problem then look into it is all I can say. Anyway if it has so few inside just use the older or try to build again the implementations over the former.

Edit: Also, does the Urltext.mcc somehow affect eb7b7c(XX)?
That's the constant in the hits.

Last edited 5 years ago by Fernando Martín Morillo (previous) (diff)

comment:13 Changed 5 years ago by Thore Böckelmann

Component: undefinedHyperlink.mcc
Milestone: future release4.0-2015R4
Owner: set to Thore Böckelmann
Priority: undecidednormal
Status: newassigned

I really cannot tell why, but opening openurl.library (and possibly workbench.library) during class initialization is causing the freeze, but only if this is done from within Scalos prefs. Starting MUI prefs first works around this, because then openurl.library is opened by MUI prefs instead of Scalos prefs.

comment:14 Changed 5 years ago by Thore Böckelmann

Resolution: fixed
Status: assignedclosed

In 5079:

  • mcc/Hyperlink.c: openurl.library and workbench.library are now opened on demand only instead during class initialization. This cures the system freezes when Hyperlink.mcc/Urltext.mcc is first used by Scalos prefs. This closes #283.

comment:15 Changed 5 years ago by Fernando Martín Morillo

Wonderful. Many thanks ;)

Note: See TracTickets for help on using tickets.