Hi Jerzy,
how is your DOSEMU configured? Does it use partition access or
lredir to access the file systems?
Bye,
Steffen
> I noticed some bug, suuposedly in DosEmu. The problem:
> I tried some database program, and it was sometimes hanging.
> With some work I found it attempts to open some file, it
> fails, and it was repeated. During this, size of memory used
> by DosEmu was growing until it filled all available memory
> and causes Linux to crash. The open was by INT 21h, AX=3D41h
> (write-only deny-none), on normal DOS it succeed, on DosEmu
> it failed. I wrote simple TSR which converted the open code
> to 3D42h (read/write deny-none), and then the application
> signalled error - the file it attempted to open previously
> was errlog. I wrote TSR to trace DOS calls (previous error
> I diagnosed using dosdebug, it was easy since it was in loop,
> just I started dosdebug and asked what the application does)
> and found it uses INT 21h AX=3D22, it fails in case other
> terminal runs the application using same data - it is OK,
> since 3D22 is open read/write deny-write, and the other copy
> opens the same file read/write deny-none - accesses conflict,
> then the application tries 3D20 (open read-only deny-write),
> and it SUCCEEDS (in spite other has write access and write
> by others is denied in open function code) - the application
> assumes file is non-writable and refuses any modification.
>
> Summary: INT 21h function DosEmu DOS
> 3d41h Fails OK
> 3d20h OK Fails when other has write access
>
> I don't know, of course, which program works incorrectly:
> DosEmu or Linux filesystem, but at least the second is wrong.