Paste in Rename causes abort on data transfer
dgr (375) 16 posts |
Using latest nightly build ROM (19 Dec 2019) and the latest HardDisc4 nightly build, trying to paste text when renaming a file/directory via the Filer causes an abort on data transfer. Steps to reproduce: 1. Open !Edit, type some text. Ctrl+A, Ctrl+C to copy text to clipboard. Internal error: abort on data transfer at &FC16CED0 *Where says that this is in WindowManager. Issue only appears to be with Rename. If I create a new Directory via the Filer and paste text it works as expected. |
dgr (375) 16 posts |
|
dgr (375) 16 posts |
*fx 0 RISC OS 5.27 (19 Dec 2019) *modules No. Position Workspace Name 1 FC02190C 00000000 UtilityModule 2 FC0474E0 20000014 PCI 3 FC0494FC 200001D4 FileSwitch 4 FC056370 20001694 ResourceFS 5 FC057070 200016D4 TerritoryManager 6 FC0595B4 00000000 Messages 7 FC14A564 200017D4 MessageTrans 8 FC14B954 20003614 UK 9 FC172924 00000000 SharedCLibrary 10 FC1D826C 20003EB4 BufferManager 11 FC1F05F0 20003F94 DeviceFS 12 FC1F521C 200040D4 RTSupport 13 FC1F85F0 20006A74 USBDriver 14 FC204DE4 2000B634 DWCDriver 15 FC280344 2001BF34 InternationalKeyboard 16 FC14D60C 2001DF54 WindowManager 17 FC16DD88 201EF794 TaskManager 18 FC171CBC 00000000 Desktop 19 FC1A710C 00000000 BASIC 20 FC1B84F8 00000000 BASIC64 21 FC1C7AAC 00000000 BASICVFP 22 FC1D7B74 2001BA14 BlendTable 23 FC1D94D4 20048C94 ColourTrans 24 FC1DE35C 2001B714 Debugger 25 FC1F2AFC 2001A454 BCMSupport 26 FC1F47A4 2001A174 Portable 27 FC21D460 200235D4 VCHIQ 28 FC2247F0 20019774 BCMSound 29 FC22517C 20044AD4 ScreenModes 30 FC22C638 20017F34 BCMVideo 31 FC22FC7C 201D0B14 DisplayManager 32 FC231E08 2004A354 DMAManager 33 FC234DC8 20047FB4 DragASprite 34 FC236584 00000000 DragAnObject 35 FC236AB0 2004A7D4 Draw 36 FC239DE8 201D41F4 FileCore%RAM FC239DE8 200A3F94 FileCore%SDFS FC239DE8 2005F674 FileCore%SCSI FC239DE8 00000000 FileCore%Base 37 FC24DE90 201F27D4 Filer 38 FC2570B0 2004A974 FilerSWIs 39 FC2573AC 2004AA74 FSLock 40 FC258500 2004ADD4 FontManager 41 FC26948C 2004BCB4 FPEmulator 42 FC26FA64 2004BE14 VFPSupport 43 FC277A14 2004BFD4 Free 44 FC279208 2004C8F4 Hourglass 45 FC279C64 2004C9F4 IIC 46 FC27A06C 2004CA14 International 47 FC293300 2004CA34 InverseTable 48 FC299F50 00000000 NetFiler 49 FC29E274 2004CE54 NetStatus 50 FC29E5D0 00000000 Obey 51 FC29EF80 2004CE74 Pinboard 52 FC2A4D34 2004DB54 PipeFS 53 FC2A60D4 201F60B4 RAMFSFiler 54 FC2A6FAC 201F5994 ResourceFiler 55 FC2A7778 00000000 ROMFonts 56 FC2FCB18 20048454 ScreenBlanker 57 FC2FD460 2004DBB4 ScrSaver 58 FC2FDD48 201B61B4 Serial%1 FC2FDD48 00000000 Serial%Base 59 FC2FF8D0 200481D4 SerialDeviceSupport 60 FC2FFFA8 00000000 ShellCLI 61 FC300618 2004EE74 SoundDMA 62 FC302988 2004F094 SoundControl 63 FC30407C 200504D4 SoundChannels 64 FC3058F0 20052694 SoundScheduler 65 FC306314 200546B4 SpriteExtend 66 FC32AEC8 00000000 SpriteUtils 67 FC32B4B8 20057854 Squash 68 FC32FB9C 00000000 SuperSample 69 FC3304C0 200576D4 SystemDevices 70 FC331540 20057694 TaskWindow 71 FC333BAC 00000000 WindowUtils 72 FC333C14 20058994 FilterManager 73 FC33509C 200589F4 WaveSynth 74 FC335C20 20059194 StringLib 75 FC336810 20059AD4 Percussion 76 FC337514 2005A534 SharedSound 77 FC338EDC 00000000 Filer_Action 78 FC34018C 2005B754 DOSFS 79 FC34BE2C 2005CAD4 SCSIDriver 80 FC34F4D8 2005E0F4 SCSISoftUSB 81 FC352E70 2005F3B4 SCSIFS 82 FC354690 201F66B4 SCSIFiler 83 FC358E08 200A0B74 SDIODriver 84 FC362B5C 200A25F4 SDFS 85 FC366F68 201F7794 SDFSFiler 86 FC36B1B8 201B1694 SDCMOS 87 FC36B4F8 200E56B4 ColourPicker 88 FC379390 200EB554 DrawFile 89 FC37EF20 200ED154 BootCommands 90 FC381644 00000000 AUNMsgs 91 FC381738 2004EE14 MbufManager 92 FC383E44 20137BF4 Internet 93 FC3A4C04 2013BC54 Resolver 94 FC3AF82C 00000000 BootNet 95 FC3C39E0 2013D674 MimeMap 96 FC3C4D68 2013E934 LanManFS 97 FC3DB0C4 20149734 EtherUSB 98 FC3E727C 2014B514 DHCP 99 FC3EBF48 2014E134 AcornURI 100 FC3EDCFC 202D83F4 !Edit 101 FC3F0A8C 00000000 !Draw 102 FC41DD40 00000000 !Paint 103 FC43D1FC 00000000 !Alarm 104 FC44A68C 00000000 !Chars 105 FC44E32C 00000000 !Help 106 FC450BE4 2014F554 Toolbox 107 FC455734 20150CF4 Window 108 FC46395C 20152854 ToolAction 109 FC465494 20153AB4 Menu 110 FC4694C4 20154FD4 Iconbar 111 FC46BE04 201564D4 ColourDbox 112 FC46EC24 201578F4 ColourMenu 113 FC4718AC 20158F74 DCS 114 FC473BB4 2015A374 FileInfo 115 FC47668C 2015B874 FontDbox 116 FC47A3B8 2015CEB4 FontMenu 117 FC47CC48 2015E394 PrintDbox 118 FC4808F8 2015F8B4 ProgInfo 119 FC4839B4 20160DD4 SaveAs 120 FC487290 20162434 Scale 121 FC489828 201637D4 TextGadgets 122 FC493CEC 201655B4 CDFSDriver 123 FC4951D8 201661F4 CDFSSoftSCSI 124 FC497718 20169474 CDFS 125 FC49B984 00000000 CDFSFiler 126 FC49E5E8 00000101 UnSqueezeAIF 127 FC49E900 201B02B4 GPIO 128 FC24D38C 201D2474 RamFS 129 201FE694 201FE934 StrongTask 130 20223B14 202229B4 SharedUnixLibrary 131 20228C94 20227934 NetTime 132 2022DCD4 202252D4 Tabs 133 2023ECB4 2023D9B4 ZLib 134 20250454 202643F4 vncserver 135 2023B594 2023A294 CPUClock 136 201EC494 201EC374 Dialogue 137 201EBF54 201EBDB4 BasicRunner 138 201EA7B4 201EA334 KeyExtend 139 20233E34 20277514 Tinct 140 2028ADF4 2029B0D4 Iconv 141 202A2034 202A5D34 CryptRandom 142 202C8854 202C61D4 SparkFS 143 202AE694 00000001 ImageFSFix 144 202DDC14 202C3174 Spark 145 202E8B34 202C1DB4 Tar 146 202F82B4 202DBA94 Zip 147 20308654 202DA894 Installer 148 2031C6D4 202BE934 OmniClient *where Address &FC16CED8 is at offset &0001F8CC in module 'WindowManager' *showregs Register dump (stored at &2001B7B0) is: R0 = FFFFFFFF R1 = 201F3284 R2 = 61003988 R3 = 3C6088D0 R4 = 00000104 R5 = 00000005 R6 = 00000001 R7 = 00000104 R8 = 202D7DD9 R9 = 00000001 R10 = 202D7DD8 R11 = 3C603000 R12 = 2001DF54 R13 = 3C60338C R14 = FC16CEB4 R15 = FC16CED8 Mode USR32 flags set: NzcvqjggggeAift PSR = 80000110 *memoryi pc-20 +40 FC16CEB8 : .@ á : E1A04007 : MOV R4,R7 FC16CEBC : .. á : E1A01002 : MOV R1,R2 FC16CEC0 : .+…â : E28C2B15 : ADD R2,R12,#&5400 FC16CEC4 : −/ŵâ : E2822F99 : ADD R2,R2,#&0264 ; =612 FC16CEC8 : . ‹å : E5922000 : LDR R2,[R2,#0] FC16CECC : ..Œå : E59A0004 : LDR R0,[R10,#4] FC16CED0 : .à†ç : E79CE000 : LDR R14,[R12,R0] FC16CED4 : .àfiå : E59EE000 : LDR R14,[R14,#0] FC16CED8 < ®ê á : E1A0EAAE : MOV R14,R14,LSR #21 FC16CEDC : ‰.€á : E1800A8E : ORR R0,R0,R14,LSL #21 FC16CEE0 : ñ..ï : EF0600F1 : SWI XWimp_TransferBlock FC16CEE4 : .Йb : 628DD004 : ADDVS R13,R13,#4 FC16CEE8 : :€½h : 68BD803A : LDMVSIA R13!,{R1,R3-R5,PC} FC16CEEC : . á : E1A02003 : MOV R2,R3 FC16CEF0 : ;€½è : E8BD803B : LDMIA R13!,{R0,R1,R3-R5,PC} FC16CEF4 : .@-é : E92D407F : STMDB R13!,{R0-R6,R14} *memoryi r14-20 +40 FC16CE94 : .p‘å : E590701C : LDR R7,[R0,#28] FC16CE98 : .. á : E1A00005 : MOV R0,R5 FC16CE9C : .. á : E1A01007 : MOV R1,R7 FC16CEA0 : ⇐ýÿë : EBFFFD88 : BL &FC16C4C8 FC16CEA4 : .Йb : 628DD004 : ADDVS R13,R13,#4 FC16CEA8 : :€½h : 68BD803A : LDMVSIA R13!,{R1,R3-R5,PC} FC16CEAC : .. á : E1A00005 : MOV R0,R5 FC16CEB0 : Týÿë : EBFFFD54 : BL &FC16C408 FC16CEB4 : .0 á : E1A03000 : MOV R3,R0 FC16CEB8 : .@ á : E1A04007 : MOV R4,R7 FC16CEBC : .. á : E1A01002 : MOV R1,R2 FC16CEC0 : .+…â : E28C2B15 : ADD R2,R12,#&5400 FC16CEC4 : −/ŵâ : E2822F99 : ADD R2,R2,#&0264 ; =612 FC16CEC8 : . ‹å : E5922000 : LDR R2,[R2,#0] FC16CECC : ..Œå : E59A0004 : LDR R0,[R10,#4] FC16CED0 : .à†ç : E79CE000 : LDR R14,[R12,R0] *spool |
Steve Pampling (1551) 8170 posts |
Initially not able to reproduce that with 19 Dec ROM in RPCEmu and then I realized you were using the Filer GUI route.
The sequence above works, but via the Filer menu it produces the error. Note The missing ^R in the Filer messages means most people don’t realize that keypress exists. |
Andy Vawer (5817) 28 posts |
Aha. That’s why I couldn’t replicate it here either, at first. However, further prodding shows that the issue applies to pasting to any writeable menu entry. At the moment it’s getting the wrong task handle for the window owner when trying to get the icon text for tweaking. For example, you can trigger it by pasting to the create menu in SrcEdit. I am looking into it! After the rather nasty error, the further paste attempts fail as the foreground task (Clipboard Manager) has died so all icon cut/paste is unavailable until it starts up again (eg a reboot). |
dgr (375) 16 posts |
I’ve not used RISC OS for many many years so my terminology was a little off when describing what to do. I’m amazed I remembered it was called the Filer if I’m honest. Thanks for the ^R tip. That’s very useful and I didn’t realise it was even a thing. And yes, using ^R you can’t reproduce the problem. You can’t reproduce this by, for example, opening the Filer menu > New directory and pasting text there. I’m assuming that’s a writable menu entry too? Is the bug only triggered when the writable menu entry is a sub-menu/child? |
Steve Pampling (1551) 8170 posts |
Not at all, I just had to shift from the mindset of using ^R that comes from playing with keyboard control. Note: You’re the normal one, I’m doing something slightly quirky. |
Steve Pampling (1551) 8170 posts |
On which note – Andy, while you’re doing things with key shortcut code could you give the Filer Messages source a tweak – specifically adding the ^R
|
Andy Vawer (5817) 28 posts |
I’ve submitted a fix for the ‘paste into writeable in a menu that’s not a window’ bug. Menu windows don’t have their task handle stored or available in the same way as ordinary windows do, so the foreground task wasn’t locating the icon properly for data transfer (and did some horrible things). The update should hopefully be out soon! I have also fixed the clipboard being released when receiving Message_ClaimEntity with flags having bit 2 clear. |
Steve Fryatt (216) 2105 posts |
I might have found another issue, although having rebooted RISC OS to try and get a clean report, I now can’t reproduce it. Playing around with Paint’s new sprite window (Select-click on iconbar), I was cutting and pasting into the Name icon. That worked fine, and then I dragged the selection out and dropped it into a filer window. Also OK. I then tried to drop a text file containing six characters into the field, and what I took to be the foreground clipboard task crashed out. Unfortunately, I now can’t reproduce it after a reboot, and everything seems fine. |
Sprow (202) 1158 posts |
I tripped up on a Wimp drag & drop bug yesterday. In the interests of saving paper, I’m going to reuse this thread, having reduced the operations to a minimal set with things everyone has:
I get the following abort (looks like an icon number of -2 involved?) *where Address &FC146490 is at offset &0001FFDC in module 'WindowManager' *showregs Register dump (stored at &20061D30) is: R0 = 00000008 R1 = 3C6031AC R2 = 79603988 R3 = 000003A2 R4 = 50000000 R5 = FFFFFFFE R6 = 000028A0 R7 = 3C6031C0 R8 = 00000000 R9 = 00000001 R10 = FFFFFFFE R11 = 3C603000 R12 = 200523F4 R13 = 3C6033A8 R14 = FC1465F0 R15 = FC146490 Mode USR32 flags set: nzCvqjggggeaift PSR = 20000010 *memoryi pc -20 +40 FC146470 : ÿ?.ã : E3003FFF : MOVW R3,#&0FFF ; ARMv6T2 or later FC146474 : . ã : E3A0A006 : MOV R10,#6 FC146478 : Öûÿê : EAFFFBD6 : B &FC1453D8 FC14647C : .à-å : E52DE004 : STR R14,[R13,#-4]! FC146480 : ¬¤œå : E59CA4AC : LDR R10,[R12,#1196] FC146484 : . Jâ : E24AA001 : SUB R10,R10,#1 FC146488 : .`šå : E59A601C : LDR R6,[R10,#28] FC14648C : .p ã : E3A07006 : MOV R7,#6 FC146490 < 2ýÿë : EBFFFD32 : BL &FC145960 FC146494 : Iûÿj : 6AFFFB49 : BVS &FC1451C0 FC146498 : .. ã : E3A00006 : MOV R0,#6 FC14649C : ˜úÿë : EBFFFA98 : BL &FC144F04 FC1464A0 : 0`šå : E59A6030 : LDR R6,[R10,#48] FC1464A4 : 4pšå : E59A7034 : LDR R7,[R10,#52] FC1464A8 : .`†à : E0866000 : ADD R6,R6,R0 FC1464AC : .p‡à : E0877000 : ADD R7,R7,R0 *help windowmanager ==> Help on keyword WindowManager Module is: Window Manager 5.70 (25 Jan 2020) Commands provided: IconSprites Pointer ToolSprites WimpMode WimpPalette WimpSlot WimpTask WimpWriteDir WimpKillSprite WimpVisualFlags Configuration keywords: WimpFlags WimpFont WimpDragDelay WimpDragMove WimpDoubleClickDelay WimpDoubleClickMove WimpAutoMenuDelay WimpMenuDragDelay WimpIconBarSpeed WimpIconBarAcceleration WimpSpritePrecedence WimpButtonType WimpIconiseButton WimpAutoFrontIconBar WimpAutoFrontDelay WimpAutoScrollDelay WimpClickSubmenu * I also note that the animated/dotty box round the text disappears mid drag which I don’t think the earlier beta versions did. I see a ghost caret when hovering over other text icons (sounds right), and the dotty box reappears when over the source icon, maybe I’m misremembering? |
David Pitt (3386) 1248 posts |
I cannot reproduce the crash using only the three steps given above, neither does the bounding box disappear in mid-drag. The box behaviour is a bit of a clue, what else is messing up the works. Having a Edit window open suffices, then I get both the crash and the disappearing box. Having crashed drag and drop doesn’t even start, a machine restart is needed. |
Dave Higton (1515) 3526 posts |
FC146480 : ¬¤œå : E59CA4AC : LDR R10,[R12,#1196] FC146484 : . Jâ : E24AA001 : SUB R10,R10,#1 FC146488 : .`šå : E59A601C : LDR R6,[R10,#28] That’s most suspicious-looking code to me, particularly as the register dump shows R10 = FFFFFFFE. First R10 is loaded from memory – OK. Then it’s decremented by 1. Really? Then it loads R6 from R10 + 28. Given that R10 is FFFFFFFE, that’s a load from page 0. And, since words stored are usually word-aligned, the decrement by 1 would result in a non-word-aligned access. That’s a jump to a shaky conclusion on my part, of course, since there’s a probability but no guarantee that the stored word should be word aligned. |
André Timmermans (100) 655 posts |
IIRC from the previous SetCaretPosition bug on this forum R10 may well be a window handle and the SUB 1 the conversion to the window’s structure (the Abs macro). So it sounds like the code is not checking foe the special handle -1. |
Andy Vawer (5817) 28 posts |
I’ve submitted a merge request with the fix for this. It used to work fine, but I seem to have broken it somewhere along the line since. There was a fault with handling of Message_Dragging. When the drag was supposed to be released, there was an incorrect check (due to register corruption) so the foreground task didn’t spot that it was supposed to notify itself of a bounced message internally. It would then do things to the caret/dragbox (as noted above). The second issue was that if the current selection window had disappeared mid-drag, an invalid window handle was used to request the icon data to copy (André’s guess was right – the SUB 1 normally converts a window handle to pointer). There’s now a sanity check around this bit. |
John Williams (567) 768 posts |
I have no idea if this belongs here, but, using the latest ROM image I was unable to edit an e-mail address in Pluto. Sensing a ROM error, I attempted to revert by editing a filename in my ROM image directory. The edit in the rename field didn’t work at all, so I had to revert by another method to an older image to do the editing, I suggest that the most recent version is broken wrt text field editing, particularly delete and arrow keys in the rename field – so I couldn’t just rename my ROMimage file! Catch 22 |
Andy Vawer (5817) 28 posts |
Sorry for the delay in replying; I’ve been trying to recreate this one. Using the latest ROM image (25/1/20) on my Raspberry Pi I can’t recreate the issue with Pluto or the Filer (or other apps). It’s a similar situation on my RPCemu install. The latest commits seem fine, too. So I’ve drawn a bit of a blank here unfortunately. Maybe there’s something else running that’s upsetting the new Wimp? Is anyone else out there having the same troubles? |
John Williams (567) 768 posts |
Unfortunately, after jumping through hoops to revert, that card ended up refusing to reboot, so had to be substituted and remade from back-up. I expect it was something else, but have no way of investigating further! As no-one else experienced problems, it must have been my installation somewhere. Pleased to report that today’s ROM seems fine so far on the substitute card! I am now saving the DOS partion as a separate file alongside my disc back-up to give me an additional revert option in case a silly situation presents itself again where Catch 22 applies! Thank you, BTW, for keeping us so informed about your work and its progress; I, for one, much appreciate that! |