Jump to content
Muxe Inc Forums
Sign in to follow this  
AdminZ

Critical bug in LFN support. Crash files structures.

Recommended Posts

AdminZ    0

Hello Stefan,

 

1. If use LFN then periodically crash FS FAT16 2GB (C:). So crash find operation on this partition with seek FDD and message "insert disk B:", or freeze without any messages. In 1 from 4 cases directory destroyed where writes data. Test http://irman.at.tut.by/ubd.uha.

 

2. How say FloX, under DOS NDN 2.30.4464 DPMI really work with disks very slow. Under DOS FW 1.35 copying files x2.9 fastest! This good see when work with flash disks. FW copying avi file ~600MB 67s from Handy Steno HT203 200X to HDD, NDN 2.30.4464 - 190s. So slow work navigate through files structures, when change directory.

Share this post


Link to post
Share on other sites

Hi again AdminZ.

 

1. you must be a bit mroe detailed.

When does this happen? How can I reproduce it?

Does this happen with or without DOSLFN?

What DOS?

 

2. i am not sure why this is the case.

Again, what DOS are we talking about?

 

Stefan / AH

Share this post


Link to post
Share on other sites
AdminZ    0

1. Yes, DOSLFN loaded. Under both DOS, M$ & EDR. Reproduced make errors in FS in this configuration http://irman.at.tut.by/ubd.uha 1.65MB. FW 1.35 in this configuration work good and fast. Some files from ubd.uha:

 

dconfig.sys

-------------

CLS

TIMEOUT=10

ECHO EDR-DOS Startup Menu

ECHO ════════════════════

ECHO 1. JEMM386

ECHO 2. UMBPCI

ECHO

ECHO Enter a choice (1 or 2) [default after 10 seconds - 1]:

SWITCH JEMM386,UMBPCI

COUNTRY=7,866,DRDOS\COUNTRY.SYS

INSTALLLAST=DOS\SHCDX33C.COM /D:QCDROM1 /~

HIINSTALLLAST=DOS\DOSLFN.COM -c+ -z=dos\cp866uni.tbl

SET OS=DRDOS

SHELL=DRDOS\COMMAND.COM /E:512 /P

EXIT

 

:SETUP

DOS=HIGH,UMB

DOSDATA=UMB

DDSCS=HIGH,UMB

XBDA=LOW,UMB

HIFCBS=8

HIFILES=40

HIBUFFERS=15

HISTACKS=9,512

HILASTDRIVE=Z

VERSION=7.10,7.10

RETURN

 

:JEMM386

SET CONFIG=Jemm386

DEVICE=DOS\QHIMEM.SYS /B /N32

DEVICE=DOS\JEMM386.EXE X=TEST I=TEST

GOSUB SETUP

HIDEVICE=DOS\QHIMEM.SYS

HIDEVICE=DOS\QCACHE.SYS

HIDEVICE=DOS\QCDROM.SYS /X

RETURN

 

:UMBPCI

SET CONFIG=UMBPCI

DEVICE=DOS\UMBPCI.SYS

DEVICE=DOS\QHIMEM.SYS /N32

GOSUB SETUP

HIDEVICE=DOS\QCACHE.SYS /L

HIDEVICE=DOS\QCDROM.SYS /L /X

RETURN

 

config.sys

------------

DOS=HIGH,UMB

LASTDRIVE=Z

FILES=40

STACKS=9,512

 

[MENU]

MENUITEM=JEMM386

MENUITEM=UMBPCI

MENUDEFAULT=JEMM386,10

 

[JEMM386]

SET CONFIG=Jemm386

DEVICE=DOS\QHIMEM.SYS /B /N32

DEVICE=DOS\JEMM386.EXE X=TEST I=TEST

DEVICEHIGH=/L:1 DOS\QHIMEM.SYS

DEVICEHIGH=/L:1 DOS\QCACHE.SYS

DEVICEHIGH=/L:1 DOS\QCDROM.SYS /X

 

[uMBPCI]

SET CONFIG=UMBPCI

DEVICE=DOS\UMBPCI.SYS

DEVICE=DOS\QHIMEM.SYS /N32 /W

DEVICEHIGH=DOS\QCACHE.SYS /L

DEVICEHIGH=DOS\QCDROM.SYS /L /X

 

[COMMON]

COUNTRY=007,866,DOS\COUNTRY.SYS

INSTALL=DOS\SHCDX33C.COM /D:QCDROM1 /~

INSTALLHIGH=DOS\DOSLFN.COM -c+ -z=dos\cp866uni.tbl

SET OS=MSDOS

SHELL=COMMAND.COM /E:512 /P

 

autoexec.bat

---------------

@echo off

dos\bootd.com

if errorlevel 0 set bd=A

if errorlevel 1 set bd=B

if errorlevel 2 set bd=C

if errorlevel 3 set bd=D

if errorlevel 4 set bd=E

if errorlevel 5 set bd=F

if errorlevel 6 set bd=G

if errorlevel 7 set bd=H

if errorlevel 8 set bd=I

if errorlevel 9 set bd=J

if errorlevel 10 set bd=K

if errorlevel 11 set bd=L

if errorlevel 12 set bd=M

if errorlevel 13 set bd=N

if errorlevel 14 set bd=P

if errorlevel 15 set bd=Q

set bootd=%bd%:\

%bootd%dos\xmsdsk.exe 65536 /y

%bootd%dos\mb.exe rd=dos(check ld)

md %rd%:\Temp

set ramd=%rd%:\

set tmp=%ramd%Temp

set temp=%tmp%

set vc=%ramd%vc

set ndn=%ramd%ndn

SET HDPMI=32

SET DPMILDR=8

SET TZ=CET+2

if "%bcdw_cdrom%"=="" %bootd%dos\bcdw_pth.com

set path=%ramd%bt;%ramd%;%ramd%hx;%ramd%ifs;%ramd%usb;%ramd%ndn;%ramd%vc;%temp%;%bootd%;%bootd%dos

if "%bcdw_cdrom%"=="" goto l1

set bcd=%bcdw_cdrom%:\

set path=%path%;%bcd%dos\arc;%bcd%dos\util

:l1

if "%OS%"=="DRDOS" goto l2

copy %bootd%command.com %ramd%>nul

goto l3

:l2

copy %bootd%drdos\command.com %ramd%>nul

:l3

set comspec=%ramd%command.com

copy %bootd%dos\mb.exe %ramd%>nul

copy %bootd%dos\dos.com %ramd%>nul

copy %bootd%dos\uharcd.exe %ramd%>nul

%rd%:

uharcd.exe x %bootd%vdisk.uha

copy %bootd%ndn\*.* %ramd%ndn>nul

call %ramd%bt\m.bat

Share this post


Link to post
Share on other sites

Hi!

 

And when does this happen?

What actions are you taking before the system is damaged?

 

I remember little files with strange names (random hi ascii characters) in several accessed

directories. Are you talking about this phenomenon?

 

I don't know when I will be able to test this out myself.

 

Stefan / AH

Share this post


Link to post
Share on other sites
AdminZ    0

Hi Stefan,

 

1. FS broken when write files to root of the partition for example.

 

2. NDN crash or freeze when run search from root partition.

Share this post


Link to post
Share on other sites
AdminZ    0

IMHO bug in LFN support - when disable LFN support in NDN then work Ok. I run about 20 times search string like "bla-bla-bla" in files from root dir in recursive mode. Possible NDN have little buffer for path string? DOSLFN loaded. FW 1.35 search without errors. What interested error in NDN when executed search appear randomly.

Share this post


Link to post
Share on other sites
AdminZ    0

Hi Stefan!

 

This bug keep in new 5713 version. What interesting if LFN support disable in settings NDN, do search string "XXXXX" in files from root directory, after enable LFN, and search string again, then search finished ok. If string or start search directoty changed then search crashed. May be in first situation search use cached file structures from QCache?

Share this post


Link to post
Share on other sites

Hello AdminZ!

 

A bug is fixed if it appears in the whatsnew list, else the chance that it still exists is almost 100%.

 

DOSLFN:

Let me start with the fact, that DOSLFN's LFN implementation is NOT M$ compatible.

 

Do you remember your reported (and fixed!) CD-LFN bug:

although LFN were enabled, DOSLFN aborted the LFN call on CD-ROM, where LFN were not supported.

So i had to implement a fallthrough mechanism which calls the SFN call when the LFN call fails.

This is definietely a wrong behaviour by DOSLFN.

 

Now, I tihnk that this is part of the problems you have reported (root dir entries):

DOSLFN probably fails a LFN call and creates random entries in the root dir.

It probably expects me to check something before i do the call...

 

I am not sure what causes the LFN search to fail. But I will find it as soon as i start working on it.

Does the search also fail in W9x with the original M$ LFN implementation?

 

Bye,

Stefan / AH

Share this post


Link to post
Share on other sites
AdminZ    0

Hi Stefan!

 

Under Win98 with LFN enable in NDN settings search freeze like in DOS. Before freeze (NDN?) randomly try access to floppy A: Behaviour search in NDN under DOS and Win98 equivalent. With disable LFN in NDN search work ok. Scandisk reported disk C: don't have errors. File Wizard always search ok and quickly. May be you try search in internet source FW and look it? I try search file FW135SRC.ZIP but don't find it :(

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×