开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

OPERATOR task dies on Herc 4.2 and later


Matteo Panella
 

Hi,

recently I tried to play around with MTS again and I decided to set it up using Hercules 4.3. Long story short: after a few minutes the OPERATOR task on DS01 dies and asks for a 9-track tape for dumping (after cancelling the dump and restarting the task from CON1 it seems to work without too much trouble).

This only happens on Hercules 4.2 and later, so I went ahead and began bisecting the Hercules code until I landed on the commit that seems to trigger the task crash:?

The hard part now (for a complete MTS noob like me, anyway) is figuring out where the actual issue is:
a) Hercules
b) MTS
c) Vista TN3270 (it *seems* that it happens more often when using Vista for the virtual DS01, so far I failed to trigger the crash when using x3270)
d) all of the above

Has anybody experienced a similar issue?

Thanks,

Matteo Panella


 

On 1 Feb 2021, at 10:36, Matteo Panella wrote:

recently I tried to play around with MTS again and I decided to set it up using Hercules 4.3. Long story short: after a few minutes the OPERATOR task on DS01 dies and asks for a 9-track tape for dumping (after cancelling the dump and restarting the task from CON1 it seems to work without too much trouble).

This only happens on Hercules 4.2 and later, so I went ahead and began bisecting the Hercules code until I landed on the commit that seems to trigger the task crash:?
That commit makes a lot of changes to 3270 emulation so it seems likely that it is the cause of the problem. It turns out that I just started trying to get my MTS on Hercules setup back in shape so I could take care of some loose ends. I have work to do to add the MTS changes (mainly Him emulation) to SDL-Hyperion, but hopefully I'll get something working before too long. I'll keep my eyes open for this issue. Thanks for doing the work to find the commit that breaks things.

Mike


 

On 1 Feb 2021, at 10:36, Matteo Panella wrote:

recently I tried to play around with MTS again and I decided to set it up using Hercules 4.3. Long story short: after a few minutes the OPERATOR task on DS01 dies and asks for a 9-track tape for dumping (after cancelling the dump and restarting the task from CON1 it seems to work without too much trouble).
I finally ran into this myself. I took a look at the jobdump produced (it's the first time I've done that in over two decades) and I think I know what is happening. In some rare cases Hercules is returning zero bytes of data for a 3270 "read modified" command. This is not legal. A read modified should always return at least 3 bytes (an AID and two bytes of cursor location). The operator job crashes if a read modified returns zero bytes. So there are really two bugs here: Hercules shouldn't return zero bytes for read modified and the operator job shouldn't crash if it does. The fix for the operator job is simple, but I don't think it is easy (or even possible) for you to rebuild it. I'll see if I can find why Hercules is doing this and see if there is a simple fix.

Mike