Opened 3 months ago

Closed 6 weeks ago

Last modified 6 weeks ago

#30 closed defect (fixed)

epm crash when scrolling

Reported by: abwillis Owned by: Andreas Schnellbacher
Priority: major Milestone: Unsorted
Component: Other Version: 1.19
Keywords: SMP Cc:


This is not an nepmd issue, it occurs in epm with or without nepmd. When scrolling up and down epm/nepmd will crash. I am hopeful that the crash can be overcome in nepmd:

03-30-2020 20:52:50 SYS3175 PID 03c5 TID 0001 Slot 00de
P1=00000001 P2=019a37c8 P3=XXXXXXXX P4=XXXXXXXX
EAX=00418010 EBX=019a0003 ECX=00000000 EDX=00000000
ESI=019a37e0 EDI=019a37c8
DS=0053 DSACC=d0f3 DSLIM=bfffffff
ES=0053 ESACC=d0f3 ESLIM=bfffffff
FS=150b FSACC=00f3 FSLIM=00000030
CS:EIP=005b:0f890ea0 CSACC=d0df CSLIM=bfffffff
SS:ESP=0053:00089fd0 SSACC=d0f3 SSLIM=bfffffff
EBP=00418010 FLG=00010246

ETKE603.DLL 0008:00000ea0

Change History (12)

comment:1 Changed 3 months ago by Andreas Schnellbacher

I'd seen something similar when I'd tested Pasha's ACPI versions on a Thinkpad R61i. Whenever I reached the bottom of a file, EPM crashed. I couldn't believe that it was ACPI-related, but it was. I couldn't reproduce that with newer ACPI drivers.

Patching ETKE603.DLL without having the sources is beyond my knowledge.

I remember my workaround from many years ago for this: I've changed AMouse to use keyboard instead of scroll messages. Another option was it to use only the keyboard instead of the scroll wheel. This may apply to your issue as well.

Last edited 3 months ago by Andreas Schnellbacher (previous) (diff)

comment:2 Changed 3 months ago by Andreas Schnellbacher

With AMouse, it should be possible to limit the exception to an app or window class. That can be configured on page 5/5 of the Wheel tab.

The class name of the EMLE window is "NewEditWndClass?". (I remember that I'd experimented with that, but unfortunately no more details.)

comment:3 Changed 3 months ago by abwillis

I find that Amouse does not work well with Thinkpad tracpoints, so I use the Single Mouse driver package. Anyhow, while I knew it was a long shot, I was hoping it could be fixed in NEPMD.

comment:4 Changed 3 months ago by Andreas Schnellbacher

OK, If you already use SMouse (which uses keyboard messages), then your issue must be different from mine. I've no idea then.

comment:5 Changed 3 months ago by erdmann

I can reproduce this bug even with the latest ACPI Version. It is unlikely to be ACPI related.

comment:6 Changed 3 months ago by Andreas Schnellbacher

This may be related to #25. Unfortunately scroll problems are EPM bugs.

comment:7 Changed 3 months ago by Andreas Schnellbacher

I can reproduce it know:

  • I see this only with large files.
  • It doesn't happen here with the mouse.
  • I have to grab the vertical slider and move it up and down, faster than the screen is repainted.

The good message is that apparently there exists a workaround. With 'Keep cursor on screen' disabled, I can't reproduce it anymore:

Edit -> Preferences -> Special keys -> Cursor and margins -> [ ] Keep cursor on screen

Background: There exist two callbacks in STDPROCS.E: ProcessBeginScroll? and ProcessEndScroll?. ProcessBeginScroll? is called when a scroll action with a slider begins or when mouse wheel scrolling starts or changes its direction. ProcessEndScroll? is only called when the slider is released. Probably ProcessEndScroll? causes the crash, if the amount of pending calls reaches a limit. Both calls itself can't be disabled, but their effect can.

The NEPMD version is nearly unchanged compared to the EPMBBS version. A difference is that 'Keep cursor on screen' can be configured by an ini setting. The behavior is the same for me, if I comment the code of both commands out.

comment:8 Changed 7 weeks ago by Andreas Schnellbacher

I could reproduce the crashes. It's not limited to scrolling, but sometimes it takes a few hours to reproduce it. Forget about 'Keep cursor on screen'. That won't change anything.

I had to change to an SMP system on 2020-04-04. My main machine before was 15 years old. Since then, I noticed many EPM traps with entries in epm.log and some go to popuplog.os2.

I'm now testing with the EPM executable changed to single-processor mode and had no crashes so far.

markexe [[no] mpunsafe] c:\os2\apps\epm.exe
execmode [-l] [(-sp|-mp)] c:\os2\apps\epm.exe

comment:9 Changed 7 weeks ago by Andreas Schnellbacher

OK, the single-processor mode fixes all these issues for me. Great! Refresh on very fast scrolling is not improved, but there are no traps anymore.

I've a script almost ready that will be added to the installation.

comment:10 Changed 7 weeks ago by Andreas Schnellbacher

Owner: set to Andreas Schnellbacher
Status: newaccepted
Type: enhancementdefect

The script was checked in. It can be downloaded here. In the 'Configuration' part, one can change -sp to -mp for testing. When being executed in an EPM shell, the current EPM window is restarted.

For me, this issue is fixed. Andy and Lars, please try it out.

comment:11 Changed 6 weeks ago by Andreas Schnellbacher

Keywords: SMP added
Resolution: fixed
Status: acceptedclosed

Fixed with changeset r4008.

comment:12 Changed 6 weeks ago by abwillis

Thank you for finding that, I have not had much chance to test it but what little I have played with it, I have not had the crash.

Note: See TracTickets for help on using tickets.