Author Topic: USBMSD.ADD broken (in all 10.2xx versions, possibly also in IBM 10.162)  (Read 5768 times)

Lars

  • Hero Member
  • *****
  • Posts: 1271
  • Karma: +65/-0
    • View Profile
Hallo,
a word of warning:
there was a serious bug in USBMSD.ADD which might lead to data corruption on USB media (clipped files, corrupted files etc.).
It only happens under very specific conditions but unfortunately it will not show up immediately (no trap or the like).

I am not sure if that error also exists in IBM original 10.162 as I am building upon the DDK code which was pretty much outdated compared to the 10.162 binary. I have now reworked the relevant code but it needs more testing ...

I will prepare 10.205 if time comes.


Lars

Joop

  • Hero Member
  • *****
  • Posts: 633
  • Karma: +5/-0
    • View Profile
Hello Lars,

Thanks for your contribution. I use USBMSD.ADD version 10.162 and have no problems with my backup on a separate USB harddisk. Can read and write the disk, copy programs from it. I use HPFS layout. I have a single processor system, don't know if this has any influence on the driver.

Lars

  • Hero Member
  • *****
  • Posts: 1271
  • Karma: +65/-0
    • View Profile
It rather depends on what bulk amounts of data you copy. I have observed this when using the WPS to copy back a whole stick's contents. In that case, the WPS (or rather, the underlying copy mechanism) tries to optimize copy speed by combining copy operations into one several large data movement operations. When that happens the driver can fail and I think this is also true for 10.162.
It occured to me when I ran a program (dskxtrt.exe) to view a fixpak file's contents on a USB stick and for one file the CRC would fail but not for the others. I suspect that in the past I had copied this file to the hard disk and now back onto the USB stick and this file has been corrupted already in the past. I cannot remember if at that time I had 10.162 in use.

Lars

Joop

  • Hero Member
  • *****
  • Posts: 633
  • Karma: +5/-0
    • View Profile
The only thing I can do is copy back big files (but what's big?) and I had backupped the database with pictures, about 71Mb in 1064 files. Copy it to a new directory and then verify with the original. I had a restore once, got it all back as far as I can remember.

Lars

  • Hero Member
  • *****
  • Posts: 1271
  • Karma: +65/-0
    • View Profile
This is difficult to say:
The DDK code that we have available is not up to date. Things might have been fixed in 10.162 that are broken in the DDK code (in short: I can never trust the DDK code).
Additionally even a large file can be transferred in small chunks.
The error case is very specific.
I am on my way of getting the issue fixed. Needs more testing.
« Last Edit: June 11, 2016, 07:24:07 pm by Lars »